Repository navigation
Record the Envelope Epoch on Each Desyndication Return - #760
Conversation
Each sysio.synd returns row records sent_epoch, the depot epoch of the outbound envelope that carried its DESYNDICATE_LIQ, so a cleanup can expire the row once sysio.msgch's outpcons epoch for the outpost reaches it. sysio.msgch::buildenv sends one inline sysio.synd::retsent with the envelope's epoch and the request ids it shipped; sent_epoch stays 0 while the attestation is queued. retsent runs inside sysio.epoch::advance and never aborts: an id with no row, a row of another outpost and a row already stamped are dropped with a diagnostic. Change-Id: Iafa9710093510e9ed967a51a2d5f3ecc7e60d603
huangminghuang
left a comment
There was a problem hiding this comment.
Reviewed the current diff and relevant contract and epoch context using the open code review workflow. No actionable findings given the confirmed prelaunch context.
Validation: all four new tests passed, with 392 assertions.
sysio.synd and sysio.msgch are rebuilt with the wire-cdt master dispatcher that #755 adopted.
huangminghuang
left a comment
There was a problem hiding this comment.
Re-reviewed the complete current diff at e2edfaf after the merge of master and dispatcher rebuild, using the open code review workflow. No actionable findings in the confirmed prelaunch context. The source changes, ABI, and added tests match the previously reviewed version; both affected WASMs were rebuilt.
Validation: all 153 syndication and message-channel contract tests passed, with 14,024 assertions, against the current committed contract artifacts using the existing host test libraries. git diff --check passed. GitHub's Linux amd64 build and tests workflow is still queued.
…ys-cpu Brings in #758, #759, #760 and #761. `sysio.system` is rebuilt with the wire-cdt of #132, so `sysio.system.wasm` carries #761's changes and the new parameter. Every other contract and ABI built with that wire-cdt matches master's byte for byte. `get_cached_descriptor`, which this branch adds to the sys-vm-oc code cache, drops the top-level `const` on its return type, as #758 does for the functions beside it. The deep-mind log, the snapshot compatibility files, the consensus blockchain data and the sys-util snapshot info expectations still pass unchanged.
Each
sysio.syndreturnsrow now recordssent_epoch, the depot epoch of the outbound envelope that carried its DESYNDICATE_LIQ. A later cleanup can expire a row once the outpost has consumed that envelope: oncesysio.msgch'soutpconsepoch for the outpost reachessent_epoch. An outpost emits its envelope for an epoch only after accepting the depot's, which is the rulebuildenvalready uses to drop consumed outbound envelopes.Behavior
sent_epochis 0 while the attestation waits in the outbound queue. An envelope carries at most 64 attestations and the queue holds up to 512, so a row can ship several epochs after it was queued. The epoch atdesyndicatetime cannot tell a cleanup which envelope carried it.sysio.msgch::buildenvreads the request id of each DESYNDICATE_LIQ it ships and sends one inlinesysio.synd::retsent(chain_code, epoch_index, request_ids)per envelope. An envelope without a DESYNDICATE_LIQ sends nothing. Bytes that do not decode, or carry request id 0, are skipped.retsent(authoritysysio.msgch) runs insidesysio.epoch::advanceand never aborts. It drops, with a diagnostic, an id with no row (governance already resolved it), a row of another outpost, and a row already stamped.finishreturnandrefundreturnare unchanged.sysio.syndandsysio.msgchchange wasm and ABI.Coordination
return_row.sent_epochand theretsentaction. wire-libraries-ts #151 regeneratesSysioContractTypes.ts. wire-tools-ts only readsreturnsrows and needs no change.sysio.synd. Whichever merges second rebases and rebuilds the wasm and ABI.BRANCH_WIRE_SYSIOandBRANCH_WIRE_LIBRARIES_TSonfeature/synd-return-epochandBRANCH_WIRE_TOOLS_TS=fix/wire-441(wire-tools-ts New default config/data location. Use app for kiod and ethereum_client_rpc_tool. #181, which the Solana AuthEx bootstrap needs on current master)