-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: conformance & tvx: support ReportConsensusFault messages #8302
Conversation
…ants. And also use inclusion tipset to run the message, which is more correct than the execution tipset.
Fix was required in tvx: filecoin-project/lotus#8302
@@ -151,7 +152,7 @@ func doExtractMessage(opts extractOpts) error { | |||
preroot = root | |||
applyret, postroot, err = driver.ExecuteMessage(pst.Blockstore, conformance.ExecuteMessageParams{ | |||
Preroot: preroot, | |||
Epoch: execTs.Height(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The execution epoch was wrong, it should be the inclusion tipset.
case mode == PrecursorSelectParticipants && | ||
msgSenderID == senderID || | ||
msgRecipientID == recipientID || | ||
msgSenderID == recipientID || | ||
msgRecipientID == senderID: | ||
related = append(related, m.Message) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We now find precursors by matching on all participants involved.
case mode == PrecursorSelectParticipants && | ||
msgSenderID == senderID || | ||
msgRecipientID == recipientID || | ||
msgSenderID == recipientID || | ||
msgRecipientID == senderID: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A parentheses seems to be missing around the OR parts.
Related Issues
filecoin-project/ref-fvm#381
Proposed Changes
Introduces the ability to extract test vectors that directly or indirectly rely on the
VerifyConsensusFault
syscall. That syscall ends up performing a chain lookback to load the state tree at the last final epoch, from which the worker key is loaded.The solution here assumes that the worker key hasn't changed in the non-finalized portion of the chain, and returns the precondition state tree to perform the worker key lookup. See filecoin-project/ref-fvm#381 (comment) for more details (thanks @arajasek for the suggestion!).
Additional Info
Checklist
Before you mark the PR ready for review, please make sure that:
<PR type>: <area>: <change being made>
fix: mempool: Introduce a cache for valid signatures
PR type
: fix, feat, INTERFACE BREAKING CHANGE, CONSENSUS BREAKING, build, chore, ci, docs,perf, refactor, revert, style, testarea
: api, chain, state, vm, data transfer, market, mempool, message, block production, multisig, networking, paychan, proving, sealing, wallet, deps