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.legacy-docs
: We keep older documentation in
the legacy-docs
directory, 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).In addition to this content, some unfinished, work in progress, and auxiliary material can be found in the knowledge-base repository.