A full node is a server running a chain's binary (its software) that fully validates transactions and blocks of a blockchain and keeps a complete record of all historic activity. A full node is distinct from a pruned node that processes only block headers and a small subset of transactions. Running a full node requires more resources than a pruned node.
Validators can decide to run either a full node or a pruned node, but they need to retain enough blocks to validate new blocks.
Of course, it is possible and encouraged for users to run full nodes even if they do not plan to be validators.
- Endpoints: publicly available endpoints are available for anyone to use. An endpoint's prinicipal purpose is to allow users to query data, perform transactions, and other commands. Types of endpoints: RPC, REST, gRPC and WSS.
- Snapshots: nodes running the chain's software can save its state at a certain point in time. Snapshots assist other nodes in joining the network.
- Archival Nodes: these nodes save all the chain's data (transactions, addresses, etc.), thus are more resource-intensive and expensive to run. Archival nodes aid the retrieval of historical data.
- State Sync: an alternative to snapshots, state sync is a quicker way for nodes to join the network.
- Seeds: nodes can make their address book availble to other nodes to aid with a node's network integration.
- Peers: every public node is identifiable by other nodes using its peer address.