Besu Certified Professional study materials
Besu Certified Professional study resources

Besu Certified Professional: Network Configuration and Genesis Files

Besu Certified Professional · Work through your exam, one topic at a time.

All guide sections

Network Configuration and Genesis Files

Genesis defines the chain. Every node must load a byte-identical file; a single differing field breaks peering or block acceptance. The exam probes field semantics, consensus configuration and how genesis is generated for a new network.

Core rules

  • Top-level fields include config, nonce, timestamp, gasLimit, difficulty, mixHash, coinbase, alloc and extraData. alloc maps addresses to a balance in hex wei and can also carry code and storage for predeployed contracts.
  • config.chainId must be unique per network. It drives EIP-155 replay protection and is compared by wallets, libraries and other clients.
  • Consensus sits under config as ethash, clique, ibft2 or qbft, with lowercase keys such as blockperiodseconds, epochlength and requesttimeoutseconds. Fork activation blocks and times (londonBlock, shanghaiTime) also live here.
  • extraData is consensus-specific. Clique concatenates 32 vanity bytes, the signer addresses and a 65-byte signature (zeros in genesis). IBFT 2.0 and QBFT encode a vanity value plus the validator address list in an RLP structure.
  • Generate the file with besu operator generate-blockchain-config --config-file=config.json --to=networkFiles rather than hand-building hex.

Worked example

A four-validator QBFT network: the operator config lists four validator keys and a qbft block with blockperiodseconds: 5, epochlength: 30000 and requesttimeoutseconds: 4. The command emits genesis.json and per-node key files. You verify that extraData decodes to exactly four addresses matching the generated validator addresses, set a unique chainId, and distribute the same file to all nodes. A wrong count or order leaves the chain unable to reach quorum.

Traps

  • Writing balances as decimal or omitting the 0x prefix.
  • Forgetting difficulty: 0x1 and a zero mixHash on PoA networks.
  • Hand-editing extraData to add a validator instead of using a proposal vote.
  • A future timestamp or a gas limit below what contracts need.