Single Node Consensus
single_node is the default NOOSChain consensus mode. It is intended for local development, isolated demos, and closed single-instance deployments where one node is responsible for building blocks from its local mempool.
Use it when you want the full deterministic chain execution path without a multi-node ordering layer.
Configuration
NOOS_CONSENSUS_MODE=single_node
SINGLE_NODE_AUTO_BUILD_BLOCKS=false
SINGLE_NODE_BLOCK_INTERVAL_MS=5000
SINGLE_NODE_MAX_TRANSACTIONS_PER_BLOCK=100If NOOS_CONSENSUS_MODE is unset, the node starts in single_node mode.
SINGLE_NODE_AUTO_BUILD_BLOCKS=false means pending transactions are committed only when an operator or test calls the block proposal path. When it is true, the adapter periodically builds blocks from pending mempool transactions.
Behavior
The adapter does not skip the normal chain rules:
- Signed transactions are validated and stored in the mempool.
- The single-node adapter selects pending transactions.
- The chain builder creates a block candidate.
- The block executor applies deterministic domain handlers.
- The state-root pipeline updates and verifies the resulting state root.
Permissions, nonce consumption, key rotation, replay behavior, and state-root updates are the same execution path used by Raft-committed blocks.
What It Is Not
single_node does not provide leader election, replication, quorum commit, or crash-fault tolerance. It is not a multi-validator consensus network.
For multi-node development clusters, use:
Useful Checks
npm run noos -- raft status
npm run verify:chain
npm run verify:replayraft status uses the historical CLI namespace for consensus status, but in single_node mode it reports the active single-node adapter status rather than a Raft leader or voter set.