Choose a Node Role
Compare full, archive, validator, observer, and private time-service roles.
Choose a ROKO node role
One process can technically combine roles, but separation limits failure and attack impact.
| Role | Keeps | Publishes | Authors blocks | Typical use |
|---|---|---|---|---|
| full/pruned | current state plus bounded history | P2P; local RPC | no | independent wallet/app RPC, network peer |
| archive | all retained block state | P2P; local or deliberately protected RPC | no | indexer, historical queries |
| validator | state needed to validate/author | private/reserved P2P only | yes, after activation | block production |
| PTP² observer | full or archive data by choice | P2P clock announcement | no | contribute measurements, lab/home time node |
| public boot/RPC sentry | full or archive by policy | public P2P and safe RPC | preferably no | external gateway |
Full versus archive
A full node is the default for most users. Pruning bounds historical state growth, but old state queries may not work.
An archive node uses `--pruning archive`. Capacity is an ongoing commitment: chain data grows, compaction needs temporary headroom, and indexers add their own database. Prefer a dedicated SSD/NVMe volume, monitor both bytes and inodes, and intervene before utilization reaches 80%. Do not place a growing archive on a small system/root volume.
Verify an archive by successfully querying old state after synchronization. The process flag alone is not evidence.
Validator separation
A validator should not be the public bootnode, archive gateway, explorer RPC, or public time server. Put public peers and clients on full/sentry nodes and connect the validator through reserved/private P2P paths.
Chrony is suitable for bootstrap, testnet validation, and edge systems. Eligibility for the maximum validator payout tier requires the endorsed licensed Timebeat profile and participation in the Timebeat PTP² Mesh, subject to measured performance and current program rules.
See Run a validator.
Observer separation
An observer has a dedicated `ptp2` identity and advertises clock measurements, but it is not a validator and does not enter authority convergence. It can separately serve NTP to a private LAN if Chrony is configured as a server.
See PTP² observer.