Apply review feedback
And take a stab at clarifying some other sections too.
This commit is contained in:
parent
56ffb4385d
commit
a20c1b4547
|
@ -1,21 +1,21 @@
|
||||||
# The Network Control Plane
|
# The Network Control Plane
|
||||||
|
|
||||||
The Network Control Plane (NCP) is the gateway to the control plane. Any node
|
The Network Control Plane (NCP) acts as a gateway to nodes in the control
|
||||||
may join the control plane. It is when nodes need to ensure information is
|
plane. Fullnodes use the NCP to ensure information is available to all other
|
||||||
available to *all* nodes in a Solana cluster. The control plane is implemented
|
nodes in a cluster. The NCP broadcasts information using a gossip protocol.
|
||||||
using a gossip protocol.
|
|
||||||
|
|
||||||
## Gossip Overview
|
## Gossip Overview
|
||||||
|
|
||||||
Nodes continuously share signed data objects among themselves in order to find
|
Nodes continuously share signed data objects among themselves in order to
|
||||||
each other, structure the network data plane, prevent censoring, etc.
|
manage a cluster. For example, they share their contact information, ledger
|
||||||
|
height, and votes.
|
||||||
|
|
||||||
The basic mechanism is a 10Hz loop wherein every node sends a push message
|
Every tenth of a second, each node sends a "push" message and/or a "pull"
|
||||||
and/or a pull message. Push and pull messages may elicit responses, and push
|
message. Push and pull messages may elicit responses, and push messages may be
|
||||||
messages may be forwarded on to others in the network.
|
forwarded on to others in the cluster.
|
||||||
|
|
||||||
Gossip runs on a well-known UDP/IP port or a port in a well-known range. Once
|
Gossip runs on a well-known UDP/IP port or a port in a well-known range. Once
|
||||||
a network is bootstrapped, nodes advertise to each other where to find their
|
a cluster is bootstrapped, nodes advertise to each other where to find their
|
||||||
gossip endpoint (a socket address).
|
gossip endpoint (a socket address).
|
||||||
|
|
||||||
## Gossip Records
|
## Gossip Records
|
||||||
|
@ -29,7 +29,7 @@ record with the most recent timestamp.
|
||||||
|
|
||||||
### Push Message
|
### Push Message
|
||||||
|
|
||||||
A node sends a push message to tells the network it has information to share.
|
A node sends a push message to tells the cluster it has information to share.
|
||||||
Nodes send push messages to `PUSH_FANOUT` push peers.
|
Nodes send push messages to `PUSH_FANOUT` push peers.
|
||||||
|
|
||||||
Upon receiving a push message, a node examines the message for:
|
Upon receiving a push message, a node examines the message for:
|
||||||
|
@ -60,7 +60,7 @@ The set of push peers is kept fresh by rotating a new node into the set every
|
||||||
|
|
||||||
### Pull Message
|
### Pull Message
|
||||||
|
|
||||||
A node sends a pull message to ask the network if there is any new information.
|
A node sends a pull message to ask the cluster if there is any new information.
|
||||||
A pull message is sent to a single peer at random and comprises a Bloom filter
|
A pull message is sent to a single peer at random and comprises a Bloom filter
|
||||||
that represents things it already has. A node receiving a pull message
|
that represents things it already has. A node receiving a pull message
|
||||||
iterates over its values and constructs a pull response of things that miss the
|
iterates over its values and constructs a pull response of things that miss the
|
||||||
|
|
Loading…
Reference in New Issue