70 lines
4.0 KiB
Markdown
70 lines
4.0 KiB
Markdown
# AERE Network, second execution client
|
|
|
|
These are the AERE Network additions to [Nethermind](https://github.com/NethermindEth/nethermind),
|
|
the second execution client for AERE chain 2800. They are not a complete client: they are the files
|
|
that had to be added or changed so that an independent implementation, written in a different
|
|
language on a different codebase, can follow chain 2800 and reach the same state.
|
|
|
|
## Why a second client exists
|
|
|
|
Until block 18,083,403 chain 2800 produced every block with one client, derived from Hyperledger
|
|
Besu. A consensus bug in that client would have produced a wrong block and nothing in the validator
|
|
set would have stopped it, because every validator ran the same code. A second implementation is
|
|
the only thing that can disagree.
|
|
|
|
Since block 18,083,404 (2026-09-11) the tenth validator of chain 2800 runs the client these
|
|
additions belong to: it proposes its share of mainnet blocks and validates every block the other
|
|
nine produce. Nine of the ten seats still run the first client, so the second adds an independent
|
|
check, not yet fault tolerance.
|
|
|
|
**What this repository holds, and what it does not yet hold.** The files here are the validation
|
|
side, first published in August 2026 and brought to the production tree on 2026-10-14 (the same
|
|
bytes the tenth validator runs for these files: the strict extraData decoder, header hashing and
|
|
validation, the second window of the base-fee floor): the precompiles, the QBFT header decoding and
|
|
hashing, header and seal validation, and the base-fee floor. The block-producing consensus engine and the post-quantum
|
|
message layers that run on the tenth validator today (AIP-20, AIP-21 and the active stages of
|
|
AIP-22) are not in this repository yet. Until they are, this repository is not the complete source
|
|
of what runs on mainnet.
|
|
|
|
## What is here
|
|
|
|
- **`Nethermind.AerePqc/Precompiles/`** — the five post-quantum verifiers live on chain 2800 since
|
|
block 9,189,161: Falcon-512, Falcon-1024, ML-DSA-44, SLH-DSA-128s and SHAKE256. They wrap the
|
|
Bouncy Castle implementations already on the client classpath; no cryptography is hand-rolled here.
|
|
- **`Nethermind.AerePqc/Qbft/`** — QBFT header decoding, extra-data handling and the header hashing
|
|
rule, written independently rather than ported, so that agreement between the two clients is
|
|
evidence rather than a shared assumption.
|
|
- **`Nethermind.AerePqc/Consensus/`** — header and seal validation for the AERE variant of QBFT.
|
|
- **`src/Nethermind/Nethermind.Consensus.Ethash/AereBaseFeeCalculator.cs`** — the AERE base-fee floor, active from
|
|
block 10,141,734 with a 1 Gwei floor.
|
|
- **`src/Nethermind/Nethermind.Core/AereFloorLapse.cs`** — the one historical range in which chain 2800 did not
|
|
apply its own floor. Read that file: it explains what happened, why the exception belongs at
|
|
validation rather than in the calculation, and how the bounds were measured.
|
|
- **tests** — including the two that matter most, the follower proof against real chain-2800 headers
|
|
and the base-fee floor fork tests.
|
|
|
|
## What this repository does not contain
|
|
|
|
The full Nethermind client. Get it from upstream and apply these files on top. Nothing here is
|
|
useful on its own.
|
|
|
|
It also contains no keys, no node addresses, and no operational configuration, by design.
|
|
|
|
## Licence
|
|
|
|
The files carry `SPDX-License-Identifier: LGPL-3.0-only`, inherited from the Nethermind sources they
|
|
derive from. See `LICENSE`. Upstream Nethermind is the authority on its own licensing; if you are
|
|
redistributing, check the upstream terms as well as these.
|
|
|
|
## Status, stated plainly
|
|
|
|
- follows and validates chain 2800: yes
|
|
- produces mainnet blocks: yes, as the tenth validator, since block 18,083,404 (2026-09-11); the
|
|
engine that does so is not yet published in this repository
|
|
- reached consensus with Besu as an equal validator: on the public testnet (chain 28001) first, on
|
|
mainnet since that block
|
|
- audited by a third party: no
|
|
|
|
Until 2026-10-05 this section said "produces mainnet blocks: no" and "on an isolated testnet only",
|
|
which had been out of date since 2026-09-11.
|