chore(register): pin the beta root register at 5 members / quorum 3 and derive every fleet-shaped fixture from the pin - #868
Merged
Conversation
…nd derive every fleet-shaped fixture from the pin Change the beta root register from 3-member/quorum-2 to 5-member/quorum-3 and update all fleet-shaped fixtures to derive topology/quorum from the authoritative pin. The two halves are one atomic change. Measured on a clean origin/main over the six fleet-shaped SDK suites: the pin bump alone is 42/100 (fixtures still hard-code a 3-node fleet); the fixture migration alone is 138/4 (delivery_quorum() = 2 on the old pin against 3 observed deliveries); together 142/0. Pin: BETA_ROOT_REGISTER_MEMBERS names the five provisioned GCP members, SOFI_BETA_MEMBERS = 5, SOFI_BETA_QUORUM = 3; the storage-set derivation test names all five members and the set id each of them logged. Fixtures: canonical_member_ids / canonical_quorum / delivery_quorum / members_to_break_quorum derive from the pin; fleets are spawned per pinned member; below-quorum tests fail exactly members_to_break_quorum(); ack, replay and certificate counts assert delivery_quorum(); per-node submit baselines replace "every node received it". No fixture carries a fleet size or quorum literal. Not here: owner-managed Terraform / node config / device network config, and the b0x fan-out literal quorum_k: 3 (b0x_sdk.rs:540), which the 5/3 pin happens to agree with — tracked in #867, deliberately not described by delivery_quorum().
…t quorum three dsm/tests/economic_lineage_register.rs pinned the old profile by name and by literal (3 members, quorum 2) and is an integration binary that a `--lib` run never compiles; CI on #868 caught it. The candidate set in that test already derives from `pinned_root_register_members`, so only the two literals and the name encode the profile — and this test is the one place that SHOULD state the pin literally. Re-proven with an isolated target directory: `dsm --test economic_lineage_register` 13/0, `dsm_sdk --lib` 1906/0.
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.
Change the beta root register from 3-member/quorum-2 to 5-member/quorum-3 and update all fleet-shaped fixtures to derive topology/quorum from the authoritative pin.
Why one PR
The pin bump and the fixture migration are one atomic change. Measured on a clean checkout of
origin/main, over the six fleet-shaped SDK suites (faucet_flow_tests,bilateral_finality_tests,storage_routes,sender/recipient_admission_tests,dlv_routes::funded_creation_tests,vault_state_composition,storage_set):delivery_quorum()= 2 on the old pin vs 3 observed deliveries)Neither half is correct against
mainon its own; together they are.What changes
Pin (
dsm)economic/register.rs:BETA_ROOT_REGISTER_MEMBERSpins the five provisioned GCP members;resolve_root_register_profileresolves the 5/3 profile.dlv/beta_storage_profile.rs:SOFI_BETA_MEMBERS = 5,SOFI_BETA_QUORUM = 3; profile tests follow.dsm_sdk/src/sdk/storage_set.rs: the set-id derivation test names all five members and the set id each of them logged.Fixtures (
dsm_sdk) — no fixture carries a fleet size or quorum literal any more:economic_fixtures.rs:canonical_member_ids(),canonical_quorum(),delivery_quorum(),members_to_break_quorum()derive from the pin;install_canonical_fleet/take_register_offline/bring_register_onlineiterate the pinned ids.faucet_flow_tests,bilateral_finality_tests,storage_routes,sender_admission_tests,recipient_admission_tests,dlv_routes::funded_creation_tests,vault_state_composition,test_support::two_device: fleets are spawned per pinned member, below-quorum tests fail exactlymembers_to_break_quorum(), and ack/replay/certificate counts assertdelivery_quorum(); per-node submit baselines replace "every node received it".What is deliberately NOT here
quorum_k: 3(b0x_sdk.rs:540): with the 5/3 pin the literal and the policy agree; the divergence it hides is tracked in b0x delivery fan-out carries its own quorum literal (quorum_k: 3) instead of deriving from the authoritative register quorum #867 and must not be papered over by makingdelivery_quorum()describe the literal.Verification
cargo test --release -p dsm --lib economic::register dlv::beta_storage_profile: 5/5cargo test --release -p dsm_sdk --libover the suites above,--test-threads=1: 142/0 (1 ignored)make lintandci/production_safety_checks.sh: green on this branch