aere-node/tools
Aere Network ea4ebcda5d AIP-22 stages 1 to 3 on chain 2800 in the node package; verifier no longer prints the stage-5 sentence on chain 2800
README, SPEC, RUN-A-NODE, SECURITY, AUDITS and anchor/README now state the live rules: at least seven of
ten seals per scheme from block 20,715,632 (stage 1), Falcon-512 at every 32nd block and SLH-DSA-SHA2-128s
at every 128th from block 20,746,736 (stage 2), post-quantum validator ids in the header and in
qbft_getValidatorsByBlockNumber from block 20,836,228 (stage 3). Stages 4 and 5 are not active on chain 2800.

tools/verify-anchor.mjs: the FINALIZED line said on every chain that a header between anchors carries only
its proposer's seal, which is true only where AIP-22 stage 5 is active (testnet 28001). It now reports what
it measured: on chain 2800 headers between anchors carry the validators' classical ECDSA commit seals.
Checked on both chains on 2026-10-01: chain 2800, 4/4 anchors verified, ECDSA branch printed; testnet 28001,
2/2 anchors and 20/20 proposer seals verified, stage-5 branch printed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:11 +03:00
..
proof-vectors tools/package.json: the verifier's dependencies, so that the published instruction works from scratch (npm install in tools/, then node verify-proof.mjs proof-vectors/...). Until now the package had no package.json: npm install installed nothing and verify-proof.mjs could not start. proof-vectors/README.md: the commands run from tools/. 2026-09-29 11:47:48 +03:00
falcon512.mjs tools: verify-anchor.mjs discovers registry v3 epochs (AIP-22 stage 3, formatVersion 3 entries of the same manifest index) and verifies each in full with registry-v3.mjs (every proof of possession, every ECDSA link, the rotation chain, the Merkle registry hash), then requires every v3 row to carry exactly the Falcon-512 key, SLH-DSA key and address of the key manifest that signs at its height; the identity height is the first epoch's bindHeight, IDENTITY_BLOCK=none disables it as a negative control. Adds tools/registry-v3.mjs and tools/falcon512.mjs, which verify-anchor.mjs imports and the package did not carry. Checked 2026-09-23: testnet 28001 20/20 with its published v3 epoch (registry hash 0xd19eef4a..., identity from 3,080,010); chain 2800 20/20 unchanged; a byte-altered epoch and an epoch whose SLH-DSA key differs from the signing manifest both refused with the reason. 2026-09-23 15:33:49 +03:00
package.json tools/package.json: the verifier's dependencies, so that the published instruction works from scratch (npm install in tools/, then node verify-proof.mjs proof-vectors/...). Until now the package had no package.json: npm install installed nothing and verify-proof.mjs could not start. proof-vectors/README.md: the commands run from tools/. 2026-09-29 11:47:48 +03:00
registry-v3.mjs tools: verify-anchor.mjs discovers registry v3 epochs (AIP-22 stage 3, formatVersion 3 entries of the same manifest index) and verifies each in full with registry-v3.mjs (every proof of possession, every ECDSA link, the rotation chain, the Merkle registry hash), then requires every v3 row to carry exactly the Falcon-512 key, SLH-DSA key and address of the key manifest that signs at its height; the identity height is the first epoch's bindHeight, IDENTITY_BLOCK=none disables it as a negative control. Adds tools/registry-v3.mjs and tools/falcon512.mjs, which verify-anchor.mjs imports and the package did not carry. Checked 2026-09-23: testnet 28001 20/20 with its published v3 epoch (registry hash 0xd19eef4a..., identity from 3,080,010); chain 2800 20/20 unchanged; a byte-altered epoch and an epoch whose SLH-DSA key differs from the signing manifest both refused with the reason. 2026-09-23 15:33:49 +03:00
verify-anchor.mjs AIP-22 stages 1 to 3 on chain 2800 in the node package; verifier no longer prints the stage-5 sentence on chain 2800 2026-10-01 13:27:11 +03:00
verify-proof.mjs tools/verify-proof.mjs: exit 1 from verify-anchor.mjs counts as a failed anchor only with its own verdict line (FAIL:/PROBLEMS:); a verify-anchor.mjs that cannot start (a dependency not installed) now gives UNMEASURED instead of INVALID. proof-vectors/README.md: the notary on chain 2800 holds other digests (since 2026-09-17), none of these vectors; the earlier line said nothing was notarized there. 2026-09-29 11:43:27 +03:00