Docs
v1

Reference

node.json settings

Every field of the tenraid settings file with its default and limit. API, rpc lanes, public P2P, validator, storage, TenQ and logging.

On this page

tenraid reads node.json from its data directory, or the file given with --config. The first start creates it with the default settings. Unknown fields are refused. Nothing in this file changes the chain or its rules.

Top level

FieldDefaultMeaning
rpc_bind127.0.0.1:28701HTTP API and WebSocket events. An IP alone keeps the port
mining_bind127.0.0.1:28702Mining control. Loopback only
browser_origins[]Web pages admitted to the API, such as ["https://explorer.example"]
api_landing_pagetrueOverview page of routes and limits at /
mine_when_not_syncedfalseHands out mining work while the node is not synchronized, for a new chain or a lone test node
metrics_bindoffAddress of the Prometheus listener, port 28790 unless given

The ports are those of mainnet; see Default ports for the other networks.

rpc

Each lane bounds how many requests of one kind run at once, so expensive reads cannot crowd out the rest. Lane values are 1 to 256.

FieldDefaultLane
status_slots64Status and head reads
state_query_slots16State reads such as balances and outputs
proof_query_slots2Proof generation
stake_query_slots2Large staking enumerations
submit_slots8Transaction submission
mining_slots8Mining templates and candidates
event_stream_slots128Event sockets
event_replay_slots4Event replays after a reconnect
transaction_status_stream_slots64Transaction status sockets
FieldDefaultMaximumMeaning
per_ip_requests_per_second1,00010,000Requests per second from one address, 0 is off
per_ip_request_burst2,00020,000Burst for that limit
per_ip_bucket_entries16,38465,536Addresses the limiter tracks
per_ip_stream_slots3264Sockets from one address, 0 is off
max_connections2,04865,536Open connections in total
per_ip_connections256max_connectionsOpen connections from one address; IPv6 counts per /64
worker_threads264Threads of the API's own runtime
blocking_threads32512Threads for storage reads and the address index

public_p2p

FieldDefaultMeaning
listen_addrs["0.0.0.0"]Addresses to listen on, QUIC and TCP: an IP, IP:PORT or a multiaddr
bootstrap_peers[]Peers to connect to, written like --peer: a host, HOST:PORT or IDENTITY@MULTIADDR. Mainnet adds its built-in peers
sync_peerOne peer the node prefers to sync from, written the same way
relay_peers[]Peers that relay for nodes behind NAT, as IDENTITY@MULTIADDR
rolestandardstandard or bootstrap
enable_upnpfalseAsk the router to forward the P2P port, and on a validator the overlay port
relay_servicetrueRelay for validators behind NAT once other nodes reach this node
allow_private_discoveryfalseAccept private addresses learned from peers. For an isolated test network only
max_inbound_connections24, bootstrap 64Inbound peers
max_outbound_connections8, bootstrap 16Outbound peers
connections_per_ip8Connections from one network: an IPv4 /24 or an IPv6 /64
relay_fanout6Peers each new block and transaction is pushed to
quic_congestion_controlcubiccubic or bbr on QUIC connections, the validator overlay's included. bbr keeps its rate on long links that lose packets now and then
JSON
{
  "public_p2p": {
    "listen_addrs": ["0.0.0.0:28700"],
    "bootstrap_peers": ["198.51.100.7", "node.example.org:28700"]
  }
}

A missing section means the defaults on a public network and no P2P on the development network. A peer named by address is bound to the identity it shows at the first contact until the node restarts; IDENTITY@MULTIADDR, with the address ending in the /p2p/ ID of the peer, accepts only that node. Other peers take over from the sync peer when it fails.

validator and validator_overlay

FieldMeaning
validator.consensus_key_fileEncrypted validator key exported by the wallet
validator.password_filePassword of that key
validator.heartbeat.validator_idID of the registered validator, 96 hex characters
validator.heartbeat.fee_key_fileEncrypted heartbeat fee key exported by the wallet
validator.heartbeat.fee_key_password_filePassword of that key
validator.heartbeat.max_fee_atomsHighest fee of one heartbeat in atoms, larger than 0
validator.heartbeat.fee_rate_per_massOptional; default the network minimum
validator_overlay.listen_addrsWhere the validator overlay listens, TCP and QUIC: an IP, IP:PORT or up to eight multiaddrs. Missing means 0.0.0.0 on port 28704

validator_overlay needs the validator section. With validator.heartbeat the node publishes the validator's heartbeat once per epoch over its normal P2P connections; no port has to be open, and it cannot be combined with --validator-key-file. Key and password files must be readable by the node's user only. A validator or automatic heartbeat needs every block body since genesis, so pruned and snapshot-started databases are refused. Run a validator shows a complete setup.

storage

FieldDefaultMeaning
modefullfull, archive or pruned
prune_days2Days of block bodies a pruned node keeps, 1 to 100
peer_snapshot_bootstrapfalseStart a fresh pruned mainnet node from the checkpoint built into the release
peer_snapshot_replace_existingfalseWith peer_snapshot_bootstrap: replace an existing older database once the snapshot is verified; the old data is kept aside
disk_pressure.modeenforce or observe. Public networks require enforce
disk_pressure.hard_free_bytes1 GiBFree space at which the node stops writing cuts
disk_pressure.soft_free_bytes2.5 GiBFree space at which the node refuses new transactions and work and the address index pauses
disk_pressure.recovery_free_bytes5 GiBFree space at which the node returns to normal
disk_pressure.poll_seconds10Seconds between checks, 1 to 300

A disk_pressure section needs all five fields, with hard < soft < recovery.

tenq

FieldDefaultMeaning
full_dataset.build_threadsThreads that build the 2 GiB dataset
full_dataset.prefetch_heights1024Cuts before an epoch at which its dataset is built ahead; 0 turns it off
lightfalseCheck blocks from the 32 MiB cache instead. Excludes full_dataset

log

FieldDefaultMeaning
debugfalseDetail for developers
fileAlso append the log to this file

Type to search guides, concepts and reference pages.