From 9fd694b888710670add8b35f0cdd557612a9cba6 Mon Sep 17 00:00:00 2001 From: Aere Network Date: Tue, 29 Sep 2026 21:09:36 +0300 Subject: [PATCH] AIP-22 stage 2 on chain 2800: from block 20,746,736 a Falcon-512 anchor certificate every 32 blocks and the SLH-DSA-SHA2-128s layer every 128 (schemeSchedule falcon-512/32+slh-dsa-sha2-128s/128) --- RUN-A-NODE.md | 4 ++-- SPEC.md | 4 ++-- anchor/README.md | 4 +++- run-node.sh | 4 ++-- tools/verify-anchor.mjs | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/RUN-A-NODE.md b/RUN-A-NODE.md index 993eb42..e8d761d 100644 --- a/RUN-A-NODE.md +++ b/RUN-A-NODE.md @@ -316,13 +316,13 @@ export BESU_OPTS="\ -Daere.falcon.validatorCount=10 \ -Daere.pq.anchorBlock=13014000 \ -Daere.pq.anchorInterval=32 \ --Daere.pq.anchorIntervalSchedule=17225968:128 \ +-Daere.pq.anchorIntervalSchedule=17225968:128,20746736:32 \ -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.chainId=2800 \ -Daere.pq.hybridRegistry=$REG/hibrid-10.properties \ --Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s \ +-Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s,20746736:falcon-512/32+slh-dsa-sha2-128s/128 \ -Daere.pqtx.forkBlock=19900000 \ -Daere.pq.anchor.minSealsCeiling=1" ``` diff --git a/SPEC.md b/SPEC.md index 29b2a84..ec4578d 100644 --- a/SPEC.md +++ b/SPEC.md @@ -487,13 +487,13 @@ passes"): -Daere.falcon.validatorCount=10 -Daere.pq.anchorBlock=13014000 -Daere.pq.anchorInterval=32 --Daere.pq.anchorIntervalSchedule=17225968:128 +-Daere.pq.anchorIntervalSchedule=17225968:128,20746736:32 -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.chainId=2800 -Daere.pq.hybridRegistry=/hibrid-10.properties --Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s +-Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s,20746736:falcon-512/32+slh-dsa-sha2-128s/128 -Daere.pqtx.forkBlock=19900000 -Daere.pq.anchor.minSealsCeiling=1 ``` diff --git a/anchor/README.md b/anchor/README.md index 8c9eef2..e67b615 100644 --- a/anchor/README.md +++ b/anchor/README.md @@ -42,7 +42,9 @@ should not be confused: chain stalled at anchor 17,102,384 for eleven minutes, and it was released by lowering the minimum to zero at exactly that height and restoring six at the next anchor. The step stays in the schedule because every node must agree on that history. -4. **The anchor interval.** `aere.pq.anchorIntervalSchedule=17225968:128`, set on all nine validators and +4. **The anchor interval.** From block 20,746,736 (AIP-22 stage 2, armed 2026-09-29) the schedules are + `aere.pq.anchorIntervalSchedule=17225968:128,20746736:32` and `aere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s,20746736:falcon-512/32+slh-dsa-sha2-128s/128`: Falcon-512 seals + are required at every 32nd block again and SLH-DSA-SHA2-128s only at every 128th. Before that: `aere.pq.anchorIntervalSchedule=17225968:128`, set on all nine validators and on every reading node on 2026-09-05: from block 17,225,968 an anchor falls on every 128th block instead of every 32nd. Each hybrid certificate adds about 53 KB to its header; quartering the frequency divides that cost by four without touching the rule, the thresholds or the schemes. Until that height the diff --git a/run-node.sh b/run-node.sh index 57bedeb..122c718 100644 --- a/run-node.sh +++ b/run-node.sh @@ -264,13 +264,13 @@ export BESU_OPTS="\ -Daere.falcon.validatorCount=10 \ -Daere.pq.anchorBlock=13014000 \ -Daere.pq.anchorInterval=32 \ --Daere.pq.anchorIntervalSchedule=17225968:128 \ +-Daere.pq.anchorIntervalSchedule=17225968:128,20746736:32 \ -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.chainId=2800 \ -Daere.pq.hybridRegistry=$REG/hibrid-10.properties \ --Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s \ +-Daere.pq.schemeSchedule=17047568:falcon-512+slh-dsa-sha2-128s,20746736:falcon-512/32+slh-dsa-sha2-128s/128 \ -Daere.pqtx.forkBlock=19900000 \ -Daere.pq.anchor.minSealsCeiling=$ANCHOR_MIN_SEALS_CEILING" # <<< OPTIUNI DERIVATE diff --git a/tools/verify-anchor.mjs b/tools/verify-anchor.mjs index 1952fa6..0bcb27e 100644 --- a/tools/verify-anchor.mjs +++ b/tools/verify-anchor.mjs @@ -101,7 +101,7 @@ if (!K_SCHEDULE.length) K_SCHEDULE.push(...K_DEFAULT); // so a certificate that dropped a whole scheme passed. SCHEME_SCHEDULE ("h:scheme+scheme,...") overrides. // 28001, 2026-09-23: AIP-22 stage 2 rehearsal from 3,070,656 - Falcon-512 at every anchor (every 32nd block again), // SLH-DSA only at every 128th; chain 2800 unchanged. -const SCHEME_DEFAULT = CHAIN_ID === 28001 ? '168000:falcon-512+slh-dsa-sha2-128s,3070656:falcon-512/32+slh-dsa-sha2-128s/128' : '17047568:falcon-512+slh-dsa-sha2-128s'; +const SCHEME_DEFAULT = CHAIN_ID === 28001 ? '168000:falcon-512+slh-dsa-sha2-128s,3070656:falcon-512/32+slh-dsa-sha2-128s/128' : '17047568:falcon-512+slh-dsa-sha2-128s,20746736:falcon-512/32+slh-dsa-sha2-128s/128'; // AIP-22 stage 2 (2026-09-23): a scheme may carry its own interval, "h:falcon-512/32+slh-dsa-sha2-128s/128". Such a scheme // is REQUIRED only at anchors on its own grid ((anchor - ANCHOR_FROM) % interval == 0); at the other anchors it is still // NAMED, so its seals, when present, are verified but need not reach K (surplus), exactly as both clients judge it. A scheme