Repository navigation
Fix node-owner cap relay stall - #648
Conversation
Change-Id: I41e1fee658198e128044dafef715a5477f6c61f9
|
The fix is right. With Before merge
Should fix
The |
Change-Id: I2792140070ade165597a6d32eff924cb60d07a04
heifner
left a comment
There was a problem hiding this comment.
Verified round 2: the committed sysio.roa.wasm rebuilds byte-for-byte from this source, the new tests fail against master's and round 1's wasm and pass here, and the full contracts_unit_test passes.
Summary
REJECTED / TIER_CAP_REACHED = 6, allowing envelope consensus and epoch advancement to commit.Why
Bearbox had 20 of 21 Tier-1 owners when Ethereum envelope 5749 carried two valid claims. The second registration hit the hard cap and rolled back both registrations and the consensus record, causing identical retries every 15 seconds. Because
chkconsrequires current-epoch consensus from every active outpost, the failure halted epoch advancement across all outposts, emissions, and underwriter lock releases.Capacity exhaustion is a terminal claim outcome that must be auditable without aborting the envelope. New accounts are created only when registration capacity exists; existing-account name, key, duplicate, and link checks keep their precedence. The ABI and table field types remain unchanged (
reasonis stilluint8_t), and privileged registration retains its hard cap. Rejected NFTs retain the existing BAR escrow and governancereleaseNoderecovery path.The incident narrative and its evidence are retained in WIRE-417; the temporary incident document is removed from this PR.
Validation
nodeownreg_full_tier*cases,dispatch_node_owner_tier_cap_preserves_epoch_progress, and the existingroa_enforces_authoritative_tier1_cap_when_emissions_counter_lagscase pass: 4 cases, 276 assertions.node owner tier cap reachedatdeliverwhen master's old committed ROA bytecode is deployed, and passes with the rebuilt bytecode.contracts_projectwith system and test contracts enabled. Onlysysio.roa.wasmchanges; the ABI and all other tracked contract artifacts, including msgch/councl/chalg, are byte-identical.Companion PRs
6asNodeOwnerRejectReason.TierCapReached. The enum mirror may merge independently and does not gate the contract fix.