2.8 KiB
aere-devnet: AERE on your machine in one command
The same binary the nine mainnet validators run (the Besu fork with the AERE base-fee floor, the
post-quantum message layers and the post-quantum precompiles), started as a local
single-validator chain: chain id 28002, one block every 500 ms, ten funded accounts, every read
AND debug API open (DEBUG, TRACE, TXPOOL). Nothing here connects to mainnet 2800: different
chain id, different genesis, no peer-to-peer outside the container.
docker run --rm -p 8545:8545 -p 8546:8546 git.aere.network/aere-network/devnet:latest
Then point Hardhat, Foundry, MetaMask or cast at http://127.0.0.1:8545 (chain id 28002).
web3_clientVersion returns the fleet's own version stamp, so you can see exactly which build you run.
Accounts
The ten accounts are derived from the public Hardhat test mnemonic (test test test test test test test test test test test junk, paths m/44'/60'/0'/0/{0..9}), 10,000 AERE each. Account #0 is
also the validator. Anyone can derive these keys: never use them on a real network.
What is real and what is not
- Real: the execution engine, the AERE base-fee floor fork, the post-quantum precompiles at
0x0AE1..0x0AE6from genesis,debug_traceTransaction/trace_*on every block, 500 ms blocks. - Not real: consensus security. One validator, no Falcon registry, no post-quantum anchor, no
post-quantum message enforcement (those need a registry of Falcon keys; the public testnet 28001
has all of that, this image deliberately does not). Empty blocks are still produced every 500 ms,
so a long-running devnet grows its
/datavolume; use--rmor mount a volume you can delete.
Options
-v aere-devnet:/datapersists the chain between runs.-e AERE_DEVNET_LOG=DEBUGfor verbose node logs.- Extra Besu flags can be appended after the image name.
How the image is built
From the fleet image's /opt/besu directory, copied unchanged onto a jlinked JRE 25 on Ubuntu 24.04
(about 300 MB). Every layer stays under 100 MB because the registry sits behind an edge that refuses
larger uploads; the build script measures the layers and refuses to publish otherwise. Before
publishing, the build starts the image, checks that blocks advance, sends a real transfer, and runs
trace_transaction, debug_traceTransaction, trace_block and a call to the Falcon precompile on it.
Trace on the public read node
rpc2.aere.network also answers the read-only debug and trace methods (debug_traceTransaction,
debug_traceBlockByNumber, debug_traceBlockByHash, debug_traceCall, debug_getRaw*,
trace_transaction, trace_block, trace_call, trace_replayBlockTransactions). It is a full node
with a 512-block state window, so traces are available for recent blocks; write-capable methods of
those namespaces are refused at the edge.