A CometBFT network is composed of multiple CometBFT instances, hereafter called
nodes
, 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:
The specification the p2p layer is a work in progress, tracked by issue #19. The current content is organized as follows:
implementation
: documents the current state
of the implementation of the p2p layer, covering the main components of the
p2p
package. 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 the Reactor
abstraction.
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.In addition to this content, some unfinished, work in progress, and auxiliary
material can be found in the
knowledge-base repository,
and on the legacy-docs
section on Github (see issue #981).