interledgerjs / ilp-connector

Reference implementation of an Interledger connector.
Other
136 stars 53 forks source link

Improve possible states of a peer connection #456

Open kruisdraad opened 6 years ago

kruisdraad commented 6 years ago

When a WS is connect for a peering, the status goes from false -> true under status. However even though you might think a peering is fully operational, BTP might having issues and the routes are never synced.

I would sugguest changing this reflecting a full peer status, based on the BGP model, for example:

Idle = first stage, start event, tries to initiate a TCP connection to the peer (plugin starts?) Connect = WS connecting is being fired up Active = WS connected and ping send (session is up, nothing done yet) OpenSent = WS connected and capabilities are exchanges (should match versions, XRP addresses, etc) OpenConfirm = WS connected and remote side confirmed capilities too Established = WS connected AND routes are exchanges and in SYNC

Full docs here: http://www.ciscopress.com/articles/article.asp?p=2756480&seqNum=4

It would give a single view and better understandig whats going on with the router.

adrianhopebailie commented 6 years ago

Assuming that the connector and plugin are separate processes I think it would be sufficient for the connector to simply know if the connection is up or down?

Perhaps the plugin should be responsible for moving through these various states and only when the connection to the remote peer is established will it notify the connector that it is ready.