NetZero Chain

Run a Full Node

A full node verifies every block, follows finality, and serves RPC. It is what an agent runs next to itself and what a public RPC provider runs.

Requirements

MinimumRecommended
CPU1 core2 cores
RAM1 GB2 GB
Disk10 GB SSD50 GB SSD
ClockNTP-synchronisedNTP-synchronised (blocks more than 2 s in the future are rejected)

Build from source

git clone <repository>  netzero-chain
cd netzero-chain/chain
go build -o build/bin/netzero ./cmd/geth

Go 1.20+ and a C compiler (the tree still carries the RandomY library planned for mainnet shares) are required. On Windows use MinGW-w64.

Start

./build/bin/netzero --http

Defaults:

  • Genesis compiled in; no init step.
  • Bootnodes built in; the node finds the public testnet on its own. For a local testnet pass --bootnodes.
  • Data in ~/.netzero (%APPDATA%\NetZero on Windows). Back this directory up if you create agent wallets: it is the wallet.
  • HTTP RPC on 127.0.0.1:8545 with eth,net,web3,txpool,nzc,agent.

Watch for Block synchronisation started and Imported new chain segment. eth_syncing returns false when caught up.

Serve RPC publicly

./build/bin/netzero --http --http.addr 0.0.0.0 --http.api eth,net,web3,nzc --http.vhosts "*"

Only these namespaces. The node refuses to start if agent, personal, miner, admin or debug would be served on a non-loopback address:

Fatal: refusing to serve [agent] over HTTP on 0.0.0.0: ...

--agent.allow-remote overrides the check for private networks you control.

Stop

Ctrl-C, SIGTERM, or agent_shutdown over RPC. All three flush state to disk. A node killed with kill -9 (or Windows task manager) rewinds to its last flushed state on restart and re-syncs the rest; nothing is lost, but it takes a moment. If your environment may kill the process, add --gcmode archive to persist state every block; the chain state is small.

Useful checks

# role, head, finalized, finality lag
curl -s -X POST http://127.0.0.1:8545 -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"nzc_status","params":[],"id":1}'
 
# validator set
curl -s -X POST http://127.0.0.1:8545 -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"nzc_validators","params":[],"id":1}'