Genesis file
A complete mainnet genesis lives atconfigs/mainnet/genesis.json. The fields specific to Quantum Chain are:
| Field | Type | Required | Notes |
|---|---|---|---|
config.chainId | int | yes | 20803 for mainnet |
config.quantumVerificationBlock | int | yes | Block height at which post-quantum signature verification activates |
config.clique.period | int | yes | Block time in seconds (mainnet: 15) |
config.clique.epoch | int | yes | Validator change epoch (mainnet: 30000) |
publicKey | hex string | yes | Post-quantum public key bound to the genesis block |
extraData | hex string | yes | Encoded list of initial sealers |
alloc | map | no | Pre-funded balances |
homesteadBlock, byzantiumBlock, … londonBlock) work as in upstream geth.
Geth flags
The most common production flags are listed below. Rungeth --help for the full list.
Networking
| Flag | Default | Purpose |
|---|---|---|
--networkid <int> | 1 | Set to 20803 for Quantum Chain mainnet |
--datadir <path> | ~/.ethereum | Storage location |
--syncmode snap|full|light | snap | Snap sync recommended for full nodes |
--port <int> | 30303 | P2P listen port |
--bootnodes <enode,...> | — | Override default bootnodes |
--maxpeers <int> | 50 | Peer cap |
JSON-RPC
| Flag | Default | Purpose |
|---|---|---|
--http | off | Enable HTTP RPC |
--http.addr <ip> | 127.0.0.1 | Bind address (use 0.0.0.0 only behind a proxy) |
--http.port <int> | 8545 | HTTP port |
--http.api <list> | eth,net,web3 | API namespaces |
--http.corsdomain <list> | — | Allowed CORS origins |
--ws | off | Enable WebSocket RPC |
--ws.addr, --ws.port, --ws.api | — | WebSocket binding |
--rpc.gascap <int> | 50000000 | Gas cap on eth_call and gas estimation |
--rpc.txfeecap <float> | 1.0 | Cap on transaction fees in QRC |
Mining (Clique sealer)
| Flag | Default | Purpose |
|---|---|---|
--mine | off | Run as a Clique sealer |
--miner.etherbase <addr> | — | Sealer address |
--miner.gaslimit <int> | 30000000 | Block gas target |
--miner.gasprice <int> | 1000000000 | Minimum gas price (wei) |
Account unlocking
| Flag | Notes |
|---|---|
--unlock <addr> | Unlock a keystore account at startup |
--password <file> | Path to a passphrase file |
--allow-insecure-unlock | Required when HTTP RPC is enabled and accounts are unlocked. Do not use in production. |
Storage and pruning
| Flag | Default | Purpose |
|---|---|---|
--gcmode archive|full | full | archive keeps every state trie node forever |
--cache <MB> | 1024 | LRU cache size; raise for archive nodes |
--state.scheme path|hash | hash | Path-based pruning is faster but newer |
TxPool
| Flag | Default |
|---|---|
--txpool.pricelimit <wei> | 1000000000 |
--txpool.accountslots <int> | 16 |
--txpool.accountqueue <int> | 64 |
--txpool.globalslots <int> | 5120 |
Runtime configuration via JSON-RPC
Some parameters are runtime-tunable through theadmin_*, miner_*, and debug_* namespaces:
--http.api admin,miner,debug and should never be exposed publicly.
Recommended profiles
Validator (Clique sealer)
--http.addr 0.0.0.0. Expose only on localhost.