> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cosmos.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Peer to Peer

# Peer-to-Peer Communication

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:

1. establishes connections between nodes in a CometBFT network
2. manages the communication between a node and the connected peers
3. intermediates the exchange of messages between peers in CometBFT protocols

The specification the p2p layer is a work in progress,
tracked by [issue #19](https://github.com/cometbft/cometbft/issues/19).
The current content is organized as follows:

* [`implementation`](/cometbft/next/spec/p2p/Implementation-of-the-p2p-layer): 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`](/cometbft/next/spec/p2p/reactor-api/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`](/cometbft/next/spec/p2p/legacy-docs/Overview): 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](https://github.com/cometbft/cometbft/issues/981)).

In addition to this content, some unfinished, work in progress, and auxiliary
material can be found in the
[knowledge-base](https://github.com/cometbft/knowledge-base/tree/main/p2p) repository.
