From 9aacf5cdf889d8489bfd5199307587872bf162f4 Mon Sep 17 00:00:00 2001 From: SatoshiQaziMuhammed Date: Thu, 5 Nov 2026 05:14:37 +0400 Subject: [PATCH] Publish root 2: root keys move to three dedicated holders (#84) signed/root.2.json carries the root drafted in docs/root-signing/proposals (threshold 2 of 3 new sr25519 holders, five years, targets key unchanged) with two signatures from the previous root's keys and two from the new ones, all valid under the "substrate" context that installed wallets check. Wallets already follow signed/root.N.json, so they move to the new root on their next config refresh. The consumed proposal is removed; the CI check runs with no proposals present. --- .github/workflows/code-quality.yml | 1 + .../proposals => signed}/root.2.json | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) rename {docs/root-signing/proposals => signed}/root.2.json (62%) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index b28a986..466bf8b 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -103,6 +103,7 @@ jobs: - name: Root chain verifies as installed wallets check it run: | npm ci --prefix scripts/root --ignore-scripts --no-audit --no-fund + shopt -s nullglob node scripts/root/verify_root.mjs docs/root-signing/proposals/*.json chain-integrity: diff --git a/docs/root-signing/proposals/root.2.json b/signed/root.2.json similarity index 62% rename from docs/root-signing/proposals/root.2.json rename to signed/root.2.json index 82a5ad3..742dc10 100644 --- a/docs/root-signing/proposals/root.2.json +++ b/signed/root.2.json @@ -1,4 +1,21 @@ { "signed": "eyJleHBpcmVzIjoxOTUxNTAxMDIwLCJrZXlzIjp7IjYwNjZlNmE4NzI5YzM0MDk4OWU3YzE1MGVmYmQ2M2IxZWZiOWZmMWNjYWExZTFmMzhmYTAxNWMyZjFmOWFiNWEiOnsicHVibGljIjoiWGFPSGYzT1NTWUxxNmxabUVuSTNDRlk5cmR3UGU5eWNsc0R4U1A2NEdXWT0iLCJzY2hlbWUiOiJlZDI1NTE5In0sIjdhMzU1Y2Q1MWNjMDQxNTc5MDM1NzJhNjRkY2ZiYmIyY2Q2NTUzNTA4ODZkNzllMGM5ZDI1Yzc5MWI3MDQ2ZWEiOnsicHVibGljIjoiakhGZ3p2YThEUkJKSWRYa1dXdGxHZ3hBazVLOW1KeXhCYWIvakhPQlMyaz0iLCJzY2hlbWUiOiJzcjI1NTE5In0sIjdlZmQ2MDg4Y2FlOWYzZDMzMGFmZjAwOGM1N2RkNzA5NWE2MjczMjkxMjRhZTYwZTg2Yzg3NmZhMWE1ZTkwY2MiOnsicHVibGljIjoiM0lmZThTRnNVWkRhdFIrb3BsekdSZjdYSU8rQU93RGVmTVJOMFVLcjBRZz0iLCJzY2hlbWUiOiJzcjI1NTE5In0sImZmZjc1NGJiNjcxNmYwNDU1Mjk2NzJkNmRkNWQxYzhlNmUxNzBkODNmZThjZDA3NjUyYWE4N2E0MjdjMGFhZjgiOnsicHVibGljIjoicEsyMi9nUVVtRmZsekNJTXU3czdHNEpiNkhvNFNTR2ZLSHNLUk5hVkkwYz0iLCJzY2hlbWUiOiJzcjI1NTE5In19LCJyb290Ijp7ImtleWlkcyI6WyI3YTM1NWNkNTFjYzA0MTU3OTAzNTcyYTY0ZGNmYmJiMmNkNjU1MzUwODg2ZDc5ZTBjOWQyNWM3OTFiNzA0NmVhIiwiN2VmZDYwODhjYWU5ZjNkMzMwYWZmMDA4YzU3ZGQ3MDk1YTYyNzMyOTEyNGFlNjBlODZjODc2ZmExYTVlOTBjYyIsImZmZjc1NGJiNjcxNmYwNDU1Mjk2NzJkNmRkNWQxYzhlNmUxNzBkODNmZThjZDA3NjUyYWE4N2E0MjdjMGFhZjgiXSwidGhyZXNob2xkIjoyfSwidGFyZ2V0cyI6eyJrZXlpZHMiOlsiNjA2NmU2YTg3MjljMzQwOTg5ZTdjMTUwZWZiZDYzYjFlZmI5ZmYxY2NhYTFlMWYzOGZhMDE1YzJmMWY5YWI1YSJdLCJ0aHJlc2hvbGQiOjF9LCJ0eXBlIjoicm9vdCIsInZlcnNpb24iOjJ9", - "signatures": [] + "signatures": [ + { + "keyid": "7efd6088cae9f3d330aff008c57dd7095a627329124ae60e86c876fa1a5e90cc", + "sig": "QGqZtIEYQIeDT/ykWCt5jMNHiiycPeHutOch3x/0/yeasXBkaOeUKbR1CIuyF45L2P4bPKdjRQY3u1WbhbWDjQ==" + }, + { + "keyid": "7a355cd51cc04157903572a64dcfbbb2cd655350886d79e0c9d25c791b7046ea", + "sig": "gBYOuWl1GcVN5FgFkVNNua0I8cb544/z3G4FqsxNGDHhcpvN2mB9zMzaKTqyR3cirHTKrpvMbeKo1Fa/38Yphw==" + }, + { + "keyid": "9a3629693ed538d037ec325235ab5ff5e46d735a44d1272cb432e9b5cb6b2a02", + "sig": "dIT9PHm4jgJIJ9YpGHYlkQGgaD6NFUu84wPpXHZASltKF5cjuP8k2P92hhYp5CbxW//CRpGVtDPtmS7XQmtagg==" + }, + { + "keyid": "37d18374bf067404216df5ba83d8a7c309818353200fcd67378722fe331b008f", + "sig": "OIj6cFd0Iobqz+QJB0/63YFIo8NAk3RxoZTSvjmxGXCscIm/W6oCFZOOf/SEzEIMATnSFAfIeE2YFVME0fgwgg==" + } + ] }