From 44eecf5aa665eda7dd1f3f0d26fef491655a2d4d Mon Sep 17 00:00:00 2001 From: Aere Network Date: Thu, 22 Oct 2026 02:23:41 +0300 Subject: [PATCH] T4 on chain 2800 at block 24,300,000: from that height every block is final post-quantum (the anchor that covers it decides it, not ECDSA); run-node.sh and the runbooks carry aere.pq.finalityBlock with the four post-quantum layers it requires --- RUN-A-NODE.md | 10 ++++++++-- SPEC.md | 1 + run-node.sh | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/RUN-A-NODE.md b/RUN-A-NODE.md index 7c9ac17..63e977c 100644 --- a/RUN-A-NODE.md +++ b/RUN-A-NODE.md @@ -273,8 +273,9 @@ rule that refused it. Since 2026-10-05 the Besu nodes of chain 2800 run a distribution built from the tree of patch 0008 plus two changes; `patches/0009-aere-pq-seal-judge-snap-cap.patch` brings the recipe to that exact tree. **A node built from patches 0001 and 0003 to 0008 still follows the chain**: neither change -alters what a node accepts below the AIP-22 stage 4 height (`aere.pq.finalityBlock`), which is not -set on chain 2800 and which `run-node.sh` does not set. The two changes: +alters what a node accepts below the AIP-22 stage 4 height (`aere.pq.finalityBlock`), which is +set on chain 2800 from block 24,300,000 (armed 2026-10-21); `run-node.sh` sets it from that date, together with the four +message-seal layers it requires at startup (AERE-PQC-FIN-02). The two changes: - the heard-seal store and commit messages that arrive before the proposal: from the stage 4 height a seal that does not verify never displaces one that does, and an early commit waits in a bounded @@ -427,6 +428,11 @@ export BESU_OPTS="\ -Daere.pq.anchor.maxSeals=9 \ -Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6,20715632:7 \ -Daere.pq.anchorV2Block=17047600 \ +-Daere.pq.proposalPq.forkBlock=17400000 \ +-Daere.pq.preparePq.forkBlock=17700000 \ +-Daere.pq.commitPq.forkBlock=17250000 \ +-Daere.pq.roundChangePq.forkBlock=17550000 \ +-Daere.pq.finalityBlock=24300000 \ -Daere.pq.commitRoundBlock=24148752 \ -Daere.pq.chainId=2800 \ -Daere.pq.commitPq.forkBlock=17250000 \ diff --git a/SPEC.md b/SPEC.md index abde98b..654c275 100644 --- a/SPEC.md +++ b/SPEC.md @@ -638,6 +638,7 @@ passes"): -Daere.pq.anchor.maxSeals=9 -Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6,20715632:7 -Daere.pq.anchorV2Block=17047600 +-Daere.pq.finalityBlock=24300000 -Daere.pq.commitRoundBlock=24148752 -Daere.pq.chainId=2800 -Daere.pq.commitPq.forkBlock=17250000 diff --git a/run-node.sh b/run-node.sh index d280d75..c880310 100755 --- a/run-node.sh +++ b/run-node.sh @@ -286,6 +286,11 @@ export BESU_OPTS="\ -Daere.pq.anchor.maxSeals=9 \ -Daere.pq.anchorMinSeals=13014000:0,13034000:3,14961456:6,17102384:0,17102416:6,20715632:7 \ -Daere.pq.anchorV2Block=17047600 \ +-Daere.pq.proposalPq.forkBlock=17400000 \ +-Daere.pq.preparePq.forkBlock=17700000 \ +-Daere.pq.commitPq.forkBlock=17250000 \ +-Daere.pq.roundChangePq.forkBlock=17550000 \ +-Daere.pq.finalityBlock=24300000 \ -Daere.pq.commitRoundBlock=24148752 \ -Daere.pq.chainId=2800 \ -Daere.pq.commitPq.forkBlock=17250000 \