54 lines
2.9 KiB
Markdown
54 lines
2.9 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
|
|
|
|
Chain 2800 produces every block with Hyperledger Besu today. A consensus bug in Besu would produce a
|
|
wrong block and nothing in the validator set would stop it, because every validator runs the same
|
|
code. A second implementation is the only thing that can disagree.
|
|
|
|
That is the whole point of this repository, and it is also the honest limit of what it achieves so
|
|
far: **this client follows and validates, it does not produce blocks on mainnet.** Client diversity
|
|
in production does not exist on chain 2800 yet.
|
|
|
|
## 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: no
|
|
- reached consensus with Besu as an equal validator: on an isolated testnet only
|
|
- audited by a third party: no
|