Root signing page and a root chain check for replacing the root keys (#81)

- signed_config.py root drafts a later root in docs/root-signing/proposals/,
  where wallets never look, and keeps the current targets key by default.
- docs/root-signing/: a page for the Pezkuwi Wallet DApp browser that shows
  the proposal and its fingerprint, has the holder's wallet sign
  <Bytes>payload</Bytes>, checks every signature as the wallet will, collects
  signature codes and offers root.N.json once two current and two new holders
  have signed. Crypto bundles are served beside it.
- scripts/root/verify_root.mjs checks every published signed/root.N.json the
  way installed wallets do; Code Quality runs it. Wallet 1.3.0 accepts sr25519
  only under the substrate signing context, and a root it cannot verify stops
  its config refresh, so such a root must never reach master.
- Draft root 2: three new holder accounts, threshold 2, five years.
This commit is contained in:
SatoshiQaziMuhammed authored and GitHub committed 2026-11-04 23:58:11 +04:00
1 parent 7d53e16b76
commit 6864b8c0aa
13 files changed
+27902 -8

No files matched your search

+12
View File
@@ -93,6 +93,18 @@ jobs:
- name: Light client checkpoint not stale
run: python3 scripts/light_client_specs.py --relay-rpc https://zagros-rpc.pezkuwichain.io --check-age 60
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '22'
# A wallet that finds a root it cannot verify stops refreshing its config, so every published
# signed/root.N.json is checked here exactly as installed wallets check it.
- name: Root chain verifies as installed wallets check it
run: |
npm ci --prefix scripts/root --ignore-scripts --no-audit --no-fund
node scripts/root/verify_root.mjs docs/root-signing/proposals/*.json
chain-integrity:
name: Chain Config Integrity
runs-on: ubuntu-latest