87 lines
3.4 KiB
Markdown
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.
|