aere-research/aips/AIP-10.md

87 lines
3.4 KiB
Markdown

# 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.