Network
The network layer is responsible of implementing the Node-To-Node interface of a node, for transmitting data between nodes.
The network protocols consist of a multiplexing layer which carries one or more mini-protocols, according to the type of connection - for example:
graph TB HS(Handshake) CS(ChainSync) BF(BlockFetch) Mux[Multiplexing] Con([Raw Connection]) HS <--> Mux CS <--> Mux BF <--> Mux Mux <--> Con
tip
Nodes usually have a separate interface to provide information to local clients. Such interface is up to the node implementation to decide which protocols to use. It often times is convenient to group this interface under the networking layer of a node but it is not mandatory. For more information see Client interfaces.
Node-to-node mini-protocols
Current node-to-node protocol version: v14
The set of Node-To-Node mini-protocols needed for participating in the Cardano network (combined by the multiplexing wrapper) is:
- Handshake - for connection and version negotiation
- Chain Sync - for synchronization of changes to the Cardano chain
- Block Fetch - for transferring blocks between nodes
- TxSubmission2 - for propagating transactions between nodes
- Keep Alive - for maintaining and measuring timing of the connection
- Peer Sharing - for exchanging peer information to create the peer-to-peer (P2P) network