From 9a65dce22f6dad918e725b79124d1ebb1c9c245a Mon Sep 17 00:00:00 2001 From: Aere Network Date: Thu, 22 Oct 2026 17:43:14 +0300 Subject: [PATCH] Inaltimile AIP-22 anuntate pe 2026-10-22: H_r = 24.148.752 (purtat de run-node.sh si de validatori din 2026-10-21) si H_fin = 24.300.000; RUN-A-NODE nu mai spune ca H_r nu e setat (nota datata, inclusiv promisiunea de publicare in aceeasi ora, netinuta), SPEC: amendamentul din 2026-10-22, README si runbook-ul ancorei cu forma anuntata --- README.md | 8 +++++--- RUN-A-NODE.md | 21 ++++++++++++--------- SPEC.md | 6 ++++++ anchor/README.md | 3 +-- validator/README.md | 2 +- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 64be1c2..00c6946 100644 --- a/README.md +++ b/README.md @@ -103,15 +103,17 @@ Both patches target upstream commit `d2032017bb3b8cb215a97303980a1e4a643f7180`, | `patches/0006-aere-pq-transactions.patch` | AIP-20, transaction type `0x50` authorized by ML-DSA | the tree after 0005 | | `patches/0007-aere-pq-finality.patch` | AIP-21, `aere_getPqFinality` and the on-disk seal window | the tree after 0006 | | `patches/0008-aere-pq-aip22.patch` | AIP-22 stages 1 to 3 (post-quantum validator ids from block 20,836,228) and the rest of the fleet distribution of 2026-09-29 | the tree after 0007 | -| `patches/0009-aere-pq-seal-judge-snap-cap.patch` | the fleet distribution of 2026-10-02: the heard-seal judge and the pending-commit buffer (both act only from the AIP-22 stage 4 height, not set on chain 2800), the snap-request cap | the tree after 0008 | -| `patches/0010-aere-pq-round-bound-commit-seal.patch` | the fleet distribution of 2026-10-14: AIP-22 stage R, the round-bound post-quantum commit seal and the v3 anchor certificate, inert until the height `aere.pq.commitRoundBlock` is set (not set on chain 2800 at 2026-10-14; 6,157,024 on testnet 28001 since 2026-10-14) | the tree after 0009 | +| `patches/0009-aere-pq-seal-judge-snap-cap.patch` | the fleet distribution of 2026-10-02: the heard-seal judge and the pending-commit buffer (both act only from the AIP-22 stage 4 height, block 24,300,000 on chain 2800, announced on 2026-10-22), the snap-request cap | the tree after 0008 | +| `patches/0010-aere-pq-round-bound-commit-seal.patch` | the fleet distribution of 2026-10-14: AIP-22 stage R, the round-bound post-quantum commit seal and the v3 anchor certificate, inert until the height `aere.pq.commitRoundBlock` is set (not set on chain 2800 at 2026-10-14, block 24,148,752 there since the announcement of 2026-10-22; 6,157,024 on testnet 28001 since 2026-10-14) | the tree after 0009 | `run-node.sh` applies 0001 and 0003 to 0010, in that order; 0002 is for the testnet only. A node built without 0008 stops at block 20,836,227. (Note added 2026-10-09: 0009 is not needed to follow the chain today; it keeps the recipe equal to what the fleet runs, see `RUN-A-NODE.md`. Note added 2026-10-14: the same holds for 0010 while `aere.pq.commitRoundBlock` is unset on chain 2800, which `run-node.sh` does not set; when the founder sets that height, a node without 0010 stops at the block -before it, see `RUN-A-NODE.md`, "Patch 0010".) +before it, see `RUN-A-NODE.md`, "Patch 0010". Note added 2026-10-22: that height is block 24,148,752 on +chain 2800, carried by `run-node.sh` since 2026-10-21; a node built without 0010 stops at block +24,148,751, derived from the code.) Patch 0003 is a different kind of thing from the first two and is described in `anchor/README.md`. It changes twenty upstream files and adds fifty-five, and it changes one build file by one line. diff --git a/RUN-A-NODE.md b/RUN-A-NODE.md index 4aa41fd..1353554 100644 --- a/RUN-A-NODE.md +++ b/RUN-A-NODE.md @@ -302,11 +302,12 @@ change of the patch set. Since 2026-10-14 the Besu-derived nodes of chain 2800 run a distribution built from the tree of 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 until its height is set.** Its height is the per-node property `aere.pq.commitRoundBlock` -(`H_r`), an anchor height; **on chain 2800 it is not set**, on no node, and `run-node.sh` does not set -it. While it is unset, 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 -still follows the chain today**. On the public testnet 28001 the stage is active: `H_r` = 6,157,024, +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; +`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. 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 @@ -318,13 +319,15 @@ in that round (below the quorum it proves participation, as today), the per-bloc from `H_r`. Below `H_r` nothing changes: the message, the certificate forms and the record are the ones of today. -**What happens when the founder sets `H_r` on chain 2800.** The height will be announced and -published in `run-node.sh` (as `-Daere.pq.commitRoundBlock=` in the block below), in this page -and in `SPEC.md` in the same hour it is set on the fleet, at least 48 hours of chain time before it. +**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 +announced on 2026-10-22, more than 48 hours of chain time before it. (Note added 2026-10-22: this page +and `SPEC.md` say it since 2026-10-22; until that date this paragraph promised publication here in the +same hour the height was set on the fleet, and the paragraph above said the height was not set.) A node that does not carry patch 0010 at that height refuses the first v3 anchor, at `H_r` itself, 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 the announcement needs only the property; `run-node.sh` will carry it. After `H_r` +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. Measured 2026-10-12 (the patch generator, in the operator repository) and re-measured 2026-10-14 on diff --git a/SPEC.md b/SPEC.md index 654c275..097495e 100644 --- a/SPEC.md +++ b/SPEC.md @@ -26,6 +26,12 @@ honest validators and one Byzantine; the rewrite bound from `H_r` is stated sepa validator and for the published follower), 3.3, 3.4, 3.5, 6.4, 7, 8 (D13) and 9 (G11) carry dated notes; nothing removed). +Amended 2026-10-22 (the heights of AIP-22 stage R and stage 4 on chain 2800: `H_r` is block +24,148,752 (`aere.pq.commitRoundBlock`, carried by `run-node.sh` and by every validator since +2026-10-21) and `H_fin` is block 24,300,000 (`aere.pq.finalityBlock`), both announced on 2026-10-22. +The notes of 2026-10-14 that say `H_r` is not set on chain 2800 "at this date" describe that date; +nothing removed). + ## 0. Conventions, and how every statement here is grounded Every normative statement in this document carries one of three markers: diff --git a/anchor/README.md b/anchor/README.md index 777a327..e441550 100644 --- a/anchor/README.md +++ b/anchor/README.md @@ -72,8 +72,7 @@ without a seal. (*Clarified 2026-10-09:* the words "by the Besu-derived validato that date. On chain 2800 these four heights are those of the nine validators that run this, the Besu-derived client, the whole set in September; the tenth validator, admitted at block 18,083,404, runs the second, Nethermind-derived client, which refuses an unsealed commit since block 18,131,633 -and applies the rule to proposal, prepare and round-change messages from AIP-22 stage 4, whose -height is not yet set on chain 2800.) What a quantum +and applies the rule to proposal, prepare and round-change messages from AIP-22 stage 4, at block 24,300,000 on chain 2800, a height announced on 2026-10-22.) What a quantum adversary cannot do at any height is rewrite history past the last anchor without also forging Falcon-512 and SLH-DSA-SHA2-128s signatures (added 2026-10-01, AIP-22 erratum of that date: except the last anchor's parent while headers carry ECDSA seals, before stage 5 of AIP-22, since an anchor can be diff --git a/validator/README.md b/validator/README.md index 0044177..d05a00b 100644 --- a/validator/README.md +++ b/validator/README.md @@ -512,7 +512,7 @@ Falcon-512 seal of its author, each under its own domain. On chain 2800 the nine validators refuse a message without a valid seal: COMMIT from block 17,250,000, PROPOSAL from 17,400,000, ROUND-CHANGE from 17,550,000 and PREPARE from 17,700,000. The tenth validator, which runs the second client, refuses a COMMIT without one from block 18,131,633 and applies the other three -types from AIP-22 stage 4, whose height is not yet set. Each message has two switches, passed like +types from AIP-22 stage 4, at block 24,300,000 on chain 2800, a height announced on 2026-10-22. Each message has two switches, passed like the anchor properties: | property | what it does |