Publish the two bootnodes; run-node.sh works with zero arguments now

Founder approved publishing the network entry points. Both are public read hosts
outside the validator set, so their downtime cannot cost consensus, and their
addresses were already public through the services they serve. One runs Besu and
one runs Nethermind, so a new node's first two peers are two independent
implementations. run-node.sh uses both by default; --bootnode still overrides.
The mail path stays as fallback for the day both are down.

This closes the last gap between "one command plus an email" and one command.
This commit is contained in:
Aere Network 2026-08-25 01:11:25 +03:00
parent 44dbc1bc06
commit 184ec23cd4
2 changed files with 20 additions and 14 deletions

View File

@ -49,7 +49,7 @@ audit each step rather than run it.
|---|---|
| `genesis.json` | The genesis file, byte for byte as it sits on the Foundation nodes. sha256 `361709dccec4e9fc85be5aec33b30b58a55dc53424087d84c1ad11bd1d944c24` (of the published file with LF line endings, exactly as `curl` fetches it; a Windows checkout that converts line endings will hash differently) |
| `registries/` | The public Falcon validator registries. Without them a node imports fine to block 13,014,000 (the first anchor) and then refuses every anchor block, because it cannot map a certificate's seal indices to validator addresses. See `registries/README.md`; sha256 of each below. |
| a bootnode enode | requested by mail for now; see the bootnodes section below |
| a bootnode enode | two published in the bootnodes section below; run-node.sh uses them by default |
| `patches/`, `precompiles/` | The Besu fork, see `README.md`. Needed to sync past block 9,189,161 |
The registries are public (Falcon public keys and validator addresses, each carrying a proof of
@ -219,13 +219,19 @@ besu \
--min-gas-price=0
```
Bootnodes are deliberately NOT published in this repository yet. The network entry points
available today are consensus or origin hosts, and this project does not print the addresses
of its own machines in public documents; a dedicated public bootnode, on a host that serves
nothing else, is the planned replacement, and this paragraph will then carry its enode. Until
then, write to office@aere.network with the subject "bootnode" and you will receive a current
enode by return. Everything else on this page works without one; discovery is the only step
that needs it.
Two bootnodes are published here since 2026-08-25. Both are public read hosts that are NOT in
the validator set, so taking them down cannot cost the network consensus; their addresses were
already public through the services they serve. The first runs Besu, the second runs Nethermind,
so your first two peers are also two independent implementations:
```
enode://7e8ff740b79bf28a6d7e46ea8d2317cea4a223e7af60be36e91e13dc7051f4cb29077631452e699a5e18e640a94fd6e370e9e51dd91ecba1f2ba9666e07ff01b@37.27.216.110:30303
enode://a4b90d4f5fc7758814d41acfe00f6a2516683f3d3052410091b894d014dbb2184d6158da76f72e84ca268c2ccde3590d5686f978868f3b6ad6af87e398179fb8@157.180.67.185:30303
```
`run-node.sh` uses both by default when `--bootnode` is not given. A written address is not a
live address: only your own `net_peerCount` proves they are up. If both are unreachable, write
to office@aere.network with the subject "bootnode" for a current enode by return.
`--sync-mode=FULL` is deliberate. Chain 2800 runs QBFT with a half second block period, so the head
was about 12.2 million blocks when this was written (2026-08-03), passed 14.6 million on 2026-08-19,

View File

@ -15,10 +15,10 @@
# Re-running it does not rebuild what is already built or re-apply patches already applied.
#
# Usage:
# ./run-node.sh --bootnode <enode://...@host:port> [options]
# ./run-node.sh [options] (the two published bootnodes are used unless --bootnode is given)
#
# Options:
# --bootnode <enode> Peer to dial for discovery. Required to actually sync (see "Bootnode" below).
# --bootnode <enode> Override the published bootnodes with your own peer for discovery.
# --data-path <dir> Node data directory. Default: ./aere-data next to this script.
# --build-dir <dir> Where upstream Besu is cloned and built. Default: ./.besu-build next to this script.
# --p2p-port <n> P2P (TCP+UDP) port. Default: 30303.
@ -207,10 +207,10 @@ fi
# --- 6. start ----------------------------------------------------------------------------------
say "6/6 Starting the node"
if [ -z "$BOOTNODE" ]; then
die "no --bootnode given. A node with no peers cannot sync.
Chain 2800 does not publish a public bootnode in this repository yet. Request a current enode by
mail (office@aere.network, subject \"bootnode\") and re-run with:
./run-node.sh --bootnode <enode://...@host:port>"
# The two published bootnodes (RUN-A-NODE.md, bootnodes section): both public read hosts,
# neither in the validator set, one Besu and one Nethermind. --bootnode overrides them.
BOOTNODE="enode://7e8ff740b79bf28a6d7e46ea8d2317cea4a223e7af60be36e91e13dc7051f4cb29077631452e699a5e18e640a94fd6e370e9e51dd91ecba1f2ba9666e07ff01b@37.27.216.110:30303,enode://a4b90d4f5fc7758814d41acfe00f6a2516683f3d3052410091b894d014dbb2184d6158da76f72e84ca268c2ccde3590d5686f978868f3b6ad6af87e398179fb8@157.180.67.185:30303"
say " no --bootnode given; using the two published bootnodes from RUN-A-NODE.md"
fi
mkdir -p "$DATA_PATH"