Configure

The options a follower needs, derived from a live node rather than written by hand.

Docs / Run a node / Configure

AERE rules are delivered as node options, not through genesis. A follower that is missing one of them does not crash: it rejects blocks, or accepts blocks the fleet rejects.

Take the options from a live node, not from a page

The option block a follower needs is derived from a running archive node and shipped inside the package, in run-node.sh and in RUN-A-NODE.md. Use those. This page explains what the options mean; it deliberately does not restate the values, because a list retyped into a web page is a list that goes stale in silence.

What the options cover

GroupWhy a follower needs it
Base fee floor and its fork blockWithout it the client computes a different base fee from block 10,141,734, therefore a different state root, and rejects every block after it
Anchor activation and chain idWhich heights carry a certificate, and the domain the digest is computed under
Interval scheduleWhich heights are anchors. The grid is offset, not height % 128
Minimum seal scheduleHow many valid seals a certificate must carry at a given height
Scheme scheduleWhich signature families are required from the hybrid activation onward
Registry pathsWhere the validator public keys live, and which registry epoch applies

The rule that is not obvious

Two nodes with different values do not agree on what a valid header is. There is no consensus binding on these options: they are per-node system properties. A node configured with an older interval sees a valid anchor as an invalid one and stalls, while its neighbours continue.

A rule change therefore ships as the same build to every node that judges headers, and the check compares the build stamp rather than the option strings. Two nodes can hold identical options and still disagree if their builds interpret them differently.

Check you are on the right chain before trusting anything

curl -s -X POST -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",false]}' \
  http://127.0.0.1:8545

The hash must be 0xd86d57a899cbfa580669f0e1c7cd4ae5f525247c3c823f8f75df176a0c5d7f1a. Then check peers:

curl -s -X POST -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"net_peerCount","params":[]}' \
  http://127.0.0.1:8545

A non-zero answer means discovery worked. Zero after a few minutes means your UDP port is closed or you have no bootnode.

A node that does not answer is not a node reporting zero. While a node is catching up it may not answer RPC at all, and reading that silence as a zero produces confident, wrong conclusions. When the node may be down, read the log.