3.4 KiB
AIP-10: Execution Client: Forked Besu with Nethermind as the Second Client, not Reth
Preamble
| Field | Value |
|---|---|
| AIP | 10 |
| Title | Execution Client: Forked Besu with Nethermind as the Second Client, not Reth |
| Author | Aere Network Foundation |
| Type | Informational |
| Category | (none) |
| Status | Final |
| Created | 2026-07-19 |
| Requires | 7, 9 |
| Supersedes | None |
| Superseded-By | None |
| Ratification | Foundation-ratified (pre-decentralization) |
Abstract
This AIP records the decision to run a fork of Hyperledger Besu as the sole live mainnet producer and a patched Nethermind as the second, independent client, rather than adopting Reth. It backfills a decision already live on chain 2800.
Motivation
A production chain needs a producing client and, to retire single-implementation risk, a second independent client. Aere already ships QBFT (AIP-9), which is Besu-specific: no off-the-shelf Geth, Reth, Erigon, or stock Nethermind produces QBFT-compatible blocks.
Specification
- Producer: a fork of Hyperledger Besu v26.4.0 (Java, base commit
d2032017, JDK 21 toolchain), the sole live mainnet producer. The fork carries the native post-quantum precompiles and the EIP-2935 write path (live from block 9,189,161, AIP-7) and the 1-Gwei base-fee floor (live from block 10,141,734, AIP-17). - Second client: a patched Nethermind 1.39.0 (.NET), which validates the live chain and runs the five live PQC precompiles byte-for-byte identically (27 of 27 NIST KAT vectors, measured).
Rationale
Besu already carries QBFT and already carries the codebase into which the PQC precompile fork and base-fee changes were integrated. Nethermind was chosen as the second client specifically for implementation diversity: a different codebase in a different language (.NET versus Java), so a consensus-relevant bug in one is unlikely to exist in the other. On an isolated test network the patched Nethermind produces byte-identical QBFT blocks that stock Besu accepts through full BFT validation, with a one-byte-tampered seal rejected.
Alternatives rejected. Reth (Rust) as the base client: it has no notion of QBFT, so it would require building QBFT production into a client that lacks it before producing a single block; and the September 2025 Reth halt is the reference case for why depending on one producing implementation is a systemic risk. A second Besu instance instead of Nethermind: that is not client diversity, since it shares every bug with the first.
Backwards Compatibility
None. This records the existing topology.
Security Considerations
Cross-client production is proven on an isolated testnet (offline import and, later, live devp2p between test nodes), and a listen-only Nethermind follower has run against the live network. Nethermind is not yet a live gossiping producer on chain 2800. Besu remains the sole live producer, so single-implementation risk is mitigated as a cross-check and fail-safe, not eliminated. Making Nethermind a live producer is a founder-supervised change, because a producer bug on a live chain can halt or fork it.
Reference Implementation and On-Chain Deployment
Chain ID 2800; live producer Besu only. Client fork sources and the Nethermind
patch live in the consensus and client work trees; the base-fee floor diff is at
aerenew/basefee-floor-dryrun/basefee-floor.diff.
Errata
None.
Copyright
Released to the public domain (CC0). No rights reserved.