Repository navigation
fix(register): re-pin the beta root register to the reprovisioned fleet - #1025
Merged
Merged
Conversation
The five GCP members were rebuilt on the storage node at main f779cb8. Its schema (version 2) migrates nothing, so every member's database was recreated empty and each minted a new register incarnation on first boot. The 2026-09-12 incarnations and the set id DN61X37… are retired: a claim made under them cannot validate. Core pins the five new (member, incarnation) pairs, and Core's derivation equals the set id every member logged after the restart: 7GBBB51DM8XP433F6H896G4R88W6RJZATZ3CT0WTRAFZ2EHYZ9D0 (sdk::storage_set::tests::the_pinned_beta_set_id_is_the_one_every_provisioned_member_logged). The frontend storage fixtures carry the same values.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Re-pins the beta root register (
dsm::economic::register::BETA_ROOT_REGISTER_MEMBERS) to the five GCP members as they are now, after the fleet was reprovisioned on 2026-09-27.Why
The live fleet ran a storage-node build from 2026-09-12 (before the node cut, #932). Every device identity publish got HTTP 415 on
/api/v2/cells, so no identity could publish and a fresh install never left the intro screen. The storage node onmain(schema version 2, #978) accepts only an empty database or one already at schema version 2; it migrates nothing. So each member was reprovisioned: a forensicpg_dump, then a fresh schema and themainf779cb8 image. On first boot into that fresh database each member minted a new register incarnation. By design an incarnation cannot be carried into a fresh register.That moved the canonical set id from
DN61X37…to7GBBB51DM8XP433F6H896G4R88W6RJZATZ3CT0WTRAFZ2EHYZ9D0. Until this lands, a clean build frommaincannot resolve the canonical set: every claim, publish and sync fails closed with "the canonical register set is not resolvable from the local catalog".Change
dsm/src/economic/register.rs: the five new(member, incarnation)pairs, each the value that member logged at its first boot.dsm_sdk/src/sdk/storage_set.rs: the golden tests now carry the logged Base32 renderings. They also carry the set id all five members logged after the restart, which Core re-derives from the pin. That is an external value, not one computed by the code under test (the_pinned_beta_set_id_is_the_one_every_provisioned_member_logged).Nothing else hardcodes the incarnations. Every other consumer (
lineage.rs,peer_lineage.rs,sofi/lineage.rs, the SDK test-node harness) reads the pin at runtime.Verified
make lint: exit 0.dsmlib (economic::register,sofi::lineage,economic::peer_lineage): 41/0.dsmintegration:economic_lineage_register15/0,economic_admission_lifecycle12/0,economic_provenance_semantics9/0.dsm_sdklib (sdk::storage_set, node-backedhandlers::faucet_flow_tests): 15/0.StorageNodePanelsandstorageStoresuites: 11/0.The fleet itself: all five members run
dsm-storage-node:f779cb872-cloudand logstorage set configured: 5 members, id=7GBBB51D….Not in this PR
The APK still ships a stale bundled CA (
dsm_client/frontend/public/ca.crt) and an env config that names the retired Alibaba fleet. A default install therefore cannot reach the fleet without a pushed override. That is its own PR, which follows this one.