From c3e0bd3858da5f95c32fbabba421b97dc83f3b8d Mon Sep 17 00:00:00 2001 From: Aere Network Date: Mon, 26 Oct 2026 14:25:13 +0200 Subject: [PATCH] RUN-A-NODE: AIP-22 stage R is in force on chain 2800 since block 24,148,752 (reached 2026-10-24); dated note, four rules, the certificate forms before H_r named as such --- RUN-A-NODE.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/RUN-A-NODE.md b/RUN-A-NODE.md index 5b1f4c6..ef79476 100644 --- a/RUN-A-NODE.md +++ b/RUN-A-NODE.md @@ -303,12 +303,12 @@ Since 2026-10-14 the Besu-derived nodes of chain 2800 run a distribution built f patch 0009 plus one change, AIP-22 stage R; `patches/0010-aere-pq-round-bound-commit-seal.patch` brings the recipe to that exact tree (the patch message describes the change in full). **Stage R is inert below its height.** Its height is the per-node property `aere.pq.commitRoundBlock` -(`H_r`), an anchor height; **on chain 2800 it is block 24,148,752** (announced on 2026-10-22; +(`H_r`), an anchor height; **on chain 2800 it is block 24,148,752** (announced on 2026-10-22, reached on 2026-10-24; `run-node.sh` and every validator carry it since 2026-10-21). Below it, a node built from patches 0001 and 0003 to 0010 makes, at every height, exactly the decisions of a node built from 0001 and 0003 to 0009, so **a node built from 0001 and 0003 to 0009 follows the chain up to block 24,148,751 and stops there** (derived from the code, see below). On the public testnet 28001 the stage is active: `H_r` = 6,157,024, -crossed on 2026-10-14 (14:02Z) with all five validators proposing and no refusal. +crossed on 2026-10-14 (14:02Z) with all five validators proposing and no refusal; on chain 2800 it is active since block 24,148,752, crossed on 2026-10-24. What the stage changes, from `H_r` on (specified in `SPEC.md`, sections 2.3, 2.6, 2.7, 3.3, 3.4 and 8 D13): the post-quantum commit seal of a block signs a message that names the round of the commit @@ -316,8 +316,7 @@ D13): the post-quantum commit seal of a block signs a message that names the rou certificate of at least the quorum of seals of one round proves that the anchor's parent was decided in that round (below the quorum it proves participation, as today), the per-block finality record of `aere_getPqFinality` is kept per round, and a startup guard refuses a seal threshold above the quorum -from `H_r`. Below `H_r` nothing changes: the message, the certificate forms and the record are the ones -of today. +from `H_r`. Below `H_r` nothing changes: the message, the certificate forms and the record are the ones in force before `H_r`. **What happens at `H_r` on chain 2800.** The height, block 24,148,752, was set on the fleet and in `run-node.sh` (as `-Daere.pq.commitRoundBlock=24148752` in the block below) on 2026-10-21 and @@ -328,7 +327,7 @@ A node that does not carry patch 0010 at that height refuses the first v3 anchor because its decoder does not know certificate version 3: it stops at block `H_r - 1` and accepts nothing wrong (derived from the code; not yet observed on chain 2800). A node built from this recipe before 2026-10-21 needs only the property, which `run-node.sh` carries. After `H_r` -there is no way back to the round-free form on that chain. +there is no way back to the round-free form on that chain. (Note added 2026-10-26: stage R is in force on chain 2800 since block 24,148,752, crossed on 2026-10-24; from it the validators accept an anchor only with a v3 certificate, and the 20 most recent anchors read with the public verifier on 2026-10-26 carry one; that a node without patch 0010 stops at block 24,148,751 is still derived from the code, not observed on chain 2800.) Measured 2026-10-12 (the patch generator, in the operator repository) and re-measured 2026-10-14 on the patch files of this package: patches 0001 and 0003 to 0010 applied with plain `git apply` on a