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
|
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
|
`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
|
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
|
will refuse the first anchor at block 13,014,000. Five of them are the ones without which a node stops
|
||||||
day are the ones without which a node stops at block 17,047,600 (the first hybrid, v2 certificate) or at
|
at block 17,047,600 (the first hybrid, v2 certificate) or at the first anchor after 17,225,968 (the
|
||||||
the first anchor after 17,225,968 (the interval change): `anchorV2Block`, `schemeSchedule`,
|
interval change): `anchorV2Block`, `schemeSchedule`, `hybridRegistry` (the SLH-DSA-SHA2-128s public
|
||||||
`hybridRegistry` (the SLH-DSA-SHA2-128s public keys, `registries/hibrid-1.properties`),
|
keys, `registries/hibrid-1.properties`), `anchorIntervalSchedule`, and the two dated steps in
|
||||||
`anchorIntervalSchedule`, and the two dated steps in `anchorMinSeals` (see `anchor/README.md`, scope
|
`anchorMinSeals` (see `anchor/README.md`, scope item 3).
|
||||||
item 3). The set below is the one the network's own public reading node runs with, measured that day.
|
|
||||||
|
> **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
|
```bash
|
||||||
REG=/path/to/aere-node/registries
|
REG=/path/to/aere-node/registries
|
||||||
export BESU_OPTS="\
|
export BESU_OPTS="\
|
||||||
-Daere.basefee.floor.forkBlock=10141734 \
|
-Daere.basefee.floor.forkBlock=10141734 \
|
||||||
-Daere.basefee.floor.value=1000000000 \
|
-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.anchorBlock=13014000 \
|
||||||
-Daere.pq.anchorInterval=32 \
|
-Daere.pq.anchorInterval=32 \
|
||||||
-Daere.pq.anchorIntervalSchedule=17225968:128 \
|
-Daere.pq.anchorIntervalSchedule=17225968:128 \
|
||||||
-Daere.pq.anchor.maxSeals=9 \
|
-Daere.pq.anchor.maxSeals=9 \
|
||||||
-Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6 \
|
-Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6 \
|
||||||
-Daere.pq.anchor.minSealsCeiling=1 \
|
|
||||||
-Daere.pq.anchorV2Block=17047600 \
|
-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.pq.hybridRegistry=$REG/hibrid-1.properties \
|
||||||
-Daere.falcon.anchor.address=0x5214F0e53899Dad805ef3AdF0624F5e49d2a5EB5 \
|
-Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s \
|
||||||
-Daere.falcon.anchor.block=13889290 \
|
-Daere.pq.anchor.minSealsCeiling=1"
|
||||||
-Daere.falcon.manifest=$REG/manifest-13600000.json \
|
|
||||||
-Daere.falcon.registry.history=$REG/manifest-13014000.json,$REG/registru-2800-v2-13600000.properties"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Why the seal-threshold ceiling, for a from-genesis node
|
### 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.
|
# proposes, does not set this.
|
||||||
ANCHOR_MIN_SEALS_CEILING="${AERE_ANCHOR_MIN_SEALS_CEILING:-1}"
|
ANCHOR_MIN_SEALS_CEILING="${AERE_ANCHOR_MIN_SEALS_CEILING:-1}"
|
||||||
REG="$REG_DIR"
|
REG="$REG_DIR"
|
||||||
|
# >>> OPTIUNI DERIVATE DIN LANTUL VIU (aduce-optiunile-urmaritorului.sh) - nu se scriu de mana
|
||||||
export BESU_OPTS="\
|
export BESU_OPTS="\
|
||||||
-Daere.basefee.floor.forkBlock=10141734 \
|
-Daere.basefee.floor.forkBlock=10141734 \
|
||||||
-Daere.basefee.floor.value=1000000000 \
|
-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.address=0x5214F0e53899Dad805ef3AdF0624F5e49d2a5EB5 \
|
||||||
-Daere.falcon.anchor.block=13889290 \
|
-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.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):"
|
note "BESU_OPTS (follower subset):"
|
||||||
printf '%s\n' "$BESU_OPTS" | tr ' ' '\n' | sed 's/^/ /'
|
printf '%s\n' "$BESU_OPTS" | tr ' ' '\n' | sed 's/^/ /'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user