DEVNET.md: aere-devnet in one command (public image), read-only trace on the public read node
This commit is contained in:
parent
4043e5114f
commit
83a453a075
51
DEVNET.md
Normal file
51
DEVNET.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# 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..0x0AE6` from 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 `/data` volume; use `--rm` or mount a volume you can delete.
|
||||||
|
|
||||||
|
## Options
|
||||||
|
|
||||||
|
- `-v aere-devnet:/data` persists the chain between runs.
|
||||||
|
- `-e AERE_DEVNET_LOG=DEBUG` for 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.
|
||||||
Loading…
Reference in New Issue
Block a user