Peer-to-Peer Communication
A CometBFT network is composed of multiple CometBFT instances, hereafter callednodes, that interact by exchanging messages.
The CometBFT protocols are designed under the assumption of a partially-connected network model.
This means that a node is not assumed to be directly connected to every other
node in the network.
Instead, each node is directly connected to only a subset of other nodes,
hereafter called its peers.
The peer-to-peer (p2p) communication layer is then the component of CometBFT that:
- establishes connections between nodes in a CometBFT network
- manages the communication between a node and the connected peers
- intermediates the exchange of messages between peers in CometBFT protocols
implementation: documents the current state of the implementation of the p2p layer, covering the main components of thep2ppackage. The documentation covers, in a fairly comprehensive way, the items 1. and 2. from the list above.reactor-api: specifies the API offered by the p2p layer to the protocol layer, through theReactorabstraction. This is a high-level specification (i.e., it should not be implementation-specific) of the p2p layer API, covering item 3. from the list above.legacy-docs: We keep older documentation in thelegacy-docsdirectory, as overall, it contains useful information. However, part of this content is redundant, being more comprehensively covered in more recent documents, and some implementation details might be outdated (see issue #981).