run-node.sh now actually sets the five post-4-September properties, and both it and RUN-A-NODE.md are generated from the live archive node
On 2026-09-05 the five properties a follower needs past blocks 17,047,600 and 17,225,968 were added to RUN-A-NODE.md but not to run-node.sh, while the document already claimed the script set them. Our own from-genesis import proof, built from the published revision, synced to block 17,047,400 and then rejected every hybrid anchor 12,352 times: the v2 activation height stayed at Long.MAX_VALUE. Anyone following this package could not pass 17,047,600. Both blocks are now derived from the BESU_OPTS of the network's archive node, whose role is exactly a follower's, with the two public reading nodes as witnesses that must agree on the anchor set; only the signing keys are removed and the registry paths rewritten. Re-measured on the same node and database after the fix: past 17,047,600 with zero rejections.
This commit is contained in:
parent
75be84f043
commit
54e256786e
@ -163,32 +163,51 @@ the network's reading nodes, and validates every hybrid anchor there, since 2026
|
||||
The Aere fork reads its per-node configuration from JVM system properties passed through the
|
||||
`BESU_OPTS` environment variable, not from the genesis file. `run-node.sh` sets these for you; this
|
||||
is what it sets, and what a manual operator must export before the `besu` command below, or the node
|
||||
will refuse the first anchor at block 13,014,000. Revised 2026-09-05: the five properties added that
|
||||
day are the ones without which a node stops at block 17,047,600 (the first hybrid, v2 certificate) or at
|
||||
the first anchor after 17,225,968 (the interval change): `anchorV2Block`, `schemeSchedule`,
|
||||
`hybridRegistry` (the SLH-DSA-SHA2-128s public keys, `registries/hibrid-1.properties`),
|
||||
`anchorIntervalSchedule`, and the two dated steps in `anchorMinSeals` (see `anchor/README.md`, scope
|
||||
item 3). The set below is the one the network's own public reading node runs with, measured that day.
|
||||
will refuse the first anchor at block 13,014,000. Five of them are the ones without which a node stops
|
||||
at block 17,047,600 (the first hybrid, v2 certificate) or at the first anchor after 17,225,968 (the
|
||||
interval change): `anchorV2Block`, `schemeSchedule`, `hybridRegistry` (the SLH-DSA-SHA2-128s public
|
||||
keys, `registries/hibrid-1.properties`), `anchorIntervalSchedule`, and the two dated steps in
|
||||
`anchorMinSeals` (see `anchor/README.md`, scope item 3).
|
||||
|
||||
> **Correction, 2026-09-06.** On 2026-09-05 those five properties were added to THIS DOCUMENT and not
|
||||
> to `run-node.sh`, while the sentence above already claimed the script set them. It did not. A node
|
||||
> started with the published script therefore ran the pre-hybrid configuration, and the v2 activation
|
||||
> height stayed at `Long.MAX_VALUE`: our own from-genesis import proof, built from the published
|
||||
> revision, synced honestly to block 17,047,400 and then rejected every hybrid anchor 12,352 times
|
||||
> (`REJECTED - carries a v2 (scheme-tagged) certificate below the v2 activation height
|
||||
> 9223372036854775807`). Anyone following this package could not pass block 17,047,600. Since
|
||||
> 2026-09-06 the block below and the one inside `run-node.sh` are both GENERATED from the live
|
||||
> `BESU_OPTS` of the network's archive node, which has exactly a follower's role, with the two public
|
||||
> reading nodes as witnesses that must agree on the anchor set; a gate refuses any divergence between
|
||||
> the chain, the script and this page. Re-measured after the fix on the same node and database: past
|
||||
> 17,047,600 with zero rejections.
|
||||
|
||||
The set below is the one the network's own archive node runs with, minus the signing keys.
|
||||
|
||||
```bash
|
||||
REG=/path/to/aere-node/registries
|
||||
export BESU_OPTS="\
|
||||
-Daere.basefee.floor.forkBlock=10141734 \
|
||||
-Daere.basefee.floor.value=1000000000 \
|
||||
-Daere.pq.chainId=2800 \
|
||||
-Daere.falcon.anchor.address=0x5214F0e53899Dad805ef3AdF0624F5e49d2a5EB5 \
|
||||
-Daere.falcon.anchor.block=13889290 \
|
||||
-Daere.falcon.attachBlock=13889296 \
|
||||
-Daere.falcon.attachInterval=32 \
|
||||
-Daere.falcon.forkBlock=14050000 \
|
||||
-Daere.falcon.manifest=$REG/manifest-13600000.json \
|
||||
-Daere.falcon.minAttachFutureMargin=5 \
|
||||
-Daere.falcon.registry.history=$REG/manifest-13014000.json,$REG/registru-2800-v2-13600000.properties \
|
||||
-Daere.falcon.validatorCount=9 \
|
||||
-Daere.pq.anchorBlock=13014000 \
|
||||
-Daere.pq.anchorInterval=32 \
|
||||
-Daere.pq.anchorIntervalSchedule=17225968:128 \
|
||||
-Daere.pq.anchor.maxSeals=9 \
|
||||
-Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6 \
|
||||
-Daere.pq.anchor.minSealsCeiling=1 \
|
||||
-Daere.pq.anchorV2Block=17047600 \
|
||||
-Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s \
|
||||
-Daere.pq.chainId=2800 \
|
||||
-Daere.pq.hybridRegistry=$REG/hibrid-1.properties \
|
||||
-Daere.falcon.anchor.address=0x5214F0e53899Dad805ef3AdF0624F5e49d2a5EB5 \
|
||||
-Daere.falcon.anchor.block=13889290 \
|
||||
-Daere.falcon.manifest=$REG/manifest-13600000.json \
|
||||
-Daere.falcon.registry.history=$REG/manifest-13014000.json,$REG/registru-2800-v2-13600000.properties"
|
||||
-Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s \
|
||||
-Daere.pq.anchor.minSealsCeiling=1"
|
||||
```
|
||||
|
||||
### Why the seal-threshold ceiling, for a from-genesis node
|
||||
|
||||
25
run-node.sh
25
run-node.sh
@ -244,19 +244,30 @@ mkdir -p "$DATA_PATH"
|
||||
# proposes, does not set this.
|
||||
ANCHOR_MIN_SEALS_CEILING="${AERE_ANCHOR_MIN_SEALS_CEILING:-1}"
|
||||
REG="$REG_DIR"
|
||||
# >>> OPTIUNI DERIVATE DIN LANTUL VIU (aduce-optiunile-urmaritorului.sh) - nu se scriu de mana
|
||||
export BESU_OPTS="\
|
||||
-Daere.basefee.floor.forkBlock=10141734 \
|
||||
-Daere.basefee.floor.value=1000000000 \
|
||||
-Daere.pq.chainId=2800 \
|
||||
-Daere.pq.anchorBlock=13014000 \
|
||||
-Daere.pq.anchorInterval=32 \
|
||||
-Daere.pq.anchor.maxSeals=9 \
|
||||
-Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6 \
|
||||
-Daere.pq.anchor.minSealsCeiling=$ANCHOR_MIN_SEALS_CEILING \
|
||||
-Daere.falcon.anchor.address=0x5214F0e53899Dad805ef3AdF0624F5e49d2a5EB5 \
|
||||
-Daere.falcon.anchor.block=13889290 \
|
||||
-Daere.falcon.attachBlock=13889296 \
|
||||
-Daere.falcon.attachInterval=32 \
|
||||
-Daere.falcon.forkBlock=14050000 \
|
||||
-Daere.falcon.manifest=$REG/manifest-13600000.json \
|
||||
-Daere.falcon.registry.history=$REG/manifest-13014000.json,$REG/registru-2800-v2-13600000.properties"
|
||||
-Daere.falcon.minAttachFutureMargin=5 \
|
||||
-Daere.falcon.registry.history=$REG/manifest-13014000.json,$REG/registru-2800-v2-13600000.properties \
|
||||
-Daere.falcon.validatorCount=9 \
|
||||
-Daere.pq.anchorBlock=13014000 \
|
||||
-Daere.pq.anchorInterval=32 \
|
||||
-Daere.pq.anchorIntervalSchedule=17225968:128 \
|
||||
-Daere.pq.anchor.maxSeals=9 \
|
||||
-Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6 \
|
||||
-Daere.pq.anchorV2Block=17047600 \
|
||||
-Daere.pq.chainId=2800 \
|
||||
-Daere.pq.hybridRegistry=$REG/hibrid-1.properties \
|
||||
-Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s \
|
||||
-Daere.pq.anchor.minSealsCeiling=$ANCHOR_MIN_SEALS_CEILING"
|
||||
# <<< OPTIUNI DERIVATE
|
||||
|
||||
note "BESU_OPTS (follower subset):"
|
||||
printf '%s\n' "$BESU_OPTS" | tr ' ' '\n' | sed 's/^/ /'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user