From 184ec23cd417b6baa4c5d1d792236e6afdc72df5 Mon Sep 17 00:00:00 2001 From: Aere Network Date: Tue, 25 Aug 2026 01:11:25 +0300 Subject: [PATCH] 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. --- RUN-A-NODE.md | 22 ++++++++++++++-------- run-node.sh | 12 ++++++------ 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/RUN-A-NODE.md b/RUN-A-NODE.md index 024a245..2a363be 100644 --- a/RUN-A-NODE.md +++ b/RUN-A-NODE.md @@ -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, diff --git a/run-node.sh b/run-node.sh index 6a98ca1..de399ed 100644 --- a/run-node.sh +++ b/run-node.sh @@ -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 [options] +# ./run-node.sh [options] (the two published bootnodes are used unless --bootnode is given) # # Options: -# --bootnode Peer to dial for discovery. Required to actually sync (see "Bootnode" below). +# --bootnode Override the published bootnodes with your own peer for discovery. # --data-path Node data directory. Default: ./aere-data next to this script. # --build-dir Where upstream Besu is cloned and built. Default: ./.besu-build next to this script. # --p2p-port 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 " + # 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"