elixir-node icon indicating copy to clipboard operation
elixir-node copied to clipboard

Channel connector

Open cytadela8 opened this issue 7 years ago • 1 comments

Epoch implements a network protocol for Channel negotiation and handling. We want to create a ChannelConnector whose role will be to implement that protocol.

ChannelConnector should:

  • take advantage of implemented Channel.Worker for storing of the channel state and managing channel safety.
  • follow the epoch protocol for channel negotiation
  • handle timeouts properly

Relevant docs:

  • https://github.com/aeternity/protocol/blob/master/channels/OFF-CHAIN.md
  • Overview graph at: https://github.com/aeternity/protocol/tree/master/channels

cytadela8 avatar Jul 20 '18 01:07 cytadela8

I realize now that some reasearch into what exactly epoch does is required. There is probably some significant split between Initiator and Responder. We probably want to implement separate ChannelResponder and ChannelInitiator modules. Where ChannelResponder imlements some server and ChannelInitiator implements some client.

Details of epoch channel network protocol aren't documented so a lot of referencing epoch code will be probably required.

cytadela8 avatar Jul 20 '18 01:07 cytadela8