Handles the acceptance of inbound socket connections.
Used to start listening on a local socket, to accept incoming connections,
and to handle network errors.
Async channel that handles the sending of messages across the network.
Public interface is used to create new channels, to stop and start a
channel, and to send messages.
Defines how to decode generic messages as well as implementing the
common network messages that are sent between nodes as described
by the protocol submodule.
Defines the networking protocol used at each stage in a connection.
Consists of a series of messages that are sent across the network at
the different connection stages.