aere-research/aips/AIP-10.md

4.0 KiB

AIP-10: Execution Client: Forked Besu with Nethermind as the Second Client, not Reth

Note added 2026-10-28. Where this document says that Besu is the sole live mainnet producer and that Nethermind is not yet a live producer on chain 2800, it describes the network until 2026-09-11. Since that date the tenth validator runs the Nethermind-derived client and proposes and seals blocks on mainnet; nine of the ten validators still run the Besu-derived client, so a fault in that client can still stop the chain, and two clients do not yet give the fault tolerance this document aims at. The decision it records is unchanged.

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.

Released to the public domain (CC0). No rights reserved.