Understanding nodes
This section describes the multiple node types on the CUDOS network and the Ports used by them.
- | NODE TYPE | DESCRIPTION |
---|---|---|
![]() | Full Node | A full node is a node that participates in the network but does not help secure it. |
![]() | Seed Node | A Seed node provides a node with a list of peers which a node can connect to. |
![]() | Validator Node | Validator Nodes participate in the consensus and produce blocks. |
![]() | Sentry Node | Sentry nodes are Full Nodes used to isolate Validator nodes from public access. |
Full nodesβ
A Full node is a node that participates in the network but does not help secure it. Full nodes can be used to store the entire state of a blockchain.
Seed nodeβ
When you first start a node you must provide the address of one or more seed nodes to connect to from the desired network. This allows the node to connect to the rest of the network. By providing a seed node you can populate your address quickly. A Seed node is not kept as a peer, it disconnects from your node after it has provided a list of peers.
Validator clusterβ
The Validator Cluster is your implementation of Sentry node architecture.
It consists of:
- Validator node - one
- Sentry node - one or many
- Seed node - one or many
Validator nodeβ
A Validator node within a cluster only connects to a Sentry node(s). It has no other connections. It can be run as a solo node but this is not advised except for test purposes.
Seed nodeβ
A Seed node generates a list of peers to which the Sentry node can connect to. The Seed node proactively learns about nodes on the external CUDOS network by a process of βcrawlingβ whereby it connects to other nodes, learns their address book, then disconnects and repeats the process. The Seed node feeds the list of addresses to the Sentry node(s). The seed node is a mandatory requirement for a Validator Cluster.
Sentry nodeβ
The Sentry node is an application layer proxy for the Validator nodes. Any communication the Validator node has with the outside CUDOS network consists of application messages to/from the Sentry node. These are then relayed to/from nodes on the CUDOS network.
Additional Validator nodes in a cluster do not provide redundancy as there is an increased possibility of a double signing event and losing the stake.
For security reasons, CUDOS nodes are configured to reject connections from multiple peers with the same IP address. Therefore each public facing node must have its own public IP address.
Portsβ
Nodes use the following tcp ports:
- 1317: API port.
- 9090: gRPC port.
- 26656: P2P port used by transferring internal data between nodes.
- 26657: Tendermint RPC server. Reference: https://docs.tendermint.com/master/rpc/
- 26660: Port for Prometheus monitoring.
Full/Seed nodes use the following ports: 26656, 26657, 26660.
Sentry nodes use the following ports: 1317, 9090, 26656, 26657, 26660.