-
Notifications
You must be signed in to change notification settings - Fork 111
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
Reattempt proof delivery on node restart #1055
Conversation
This commit also adds a field doc comment.
d1087a9
to
d4573cb
Compare
TransferOutput.ShouldDeliverProof
such that we don't retry proof deliver if complete987a93e
to
bd73f91
Compare
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.
Code looks good, nice work.
Just to clarify: There will be a follow-up PR that actually addresses the issue that a transfer isn't completed (e.g. a call to ConfirmProofDelivery
) while the proof transfer wasn't successful?
Or was the goal to address this here (might need some re-ordering of actions)?
@guggero Thanks for the review! I will put up another PR for the |
- Set the `ProofDeliveryComplete` field in the transfer output struct during its initialization. - The `insertAssetTransferOutput` function now only marshals the `ProofDeliveryComplete` status for database storage. It does not determine the status at the time of storing in the database. - `TransferOutput.ShouldDeliverProof` will return `false` if `ProofDeliveryComplete == fn.Some(true)`. - Improved logging for scenarios where proof delivery is skipped, specifically when `out.ShouldDeliverProof()` returns `false`.
Remove inaccurate comments. Rephrase and reword comments for clarity.
Refactor to perform asset minting and node setup before subscribing to the send notification events from the sending node. This change aims to improve test clarity and readability.
This commit moves code into a new `ChainPorter` method called `resumePendingParcels`.
This commit introduces a new logging method to the `ChainPorter`. The method captures and logs transfer outputs with delivery pending proofs.
This commit adds a test which ensures that a failed attempt at transferring a transfer output proof to a proof courier will be reattempted by the sending tapd node upon restart.
bd73f91
to
332a550
Compare
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.
Nice, LGTM 🎉
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.
LGTM 💯
Solid clarifications & progress to the next PR. The if
blocks with UnwrapOr
were a bit hard to read at first but the comments cleared that up.
Needs rebase.
Some of the commits in this PR refactor the code for clarity and don't modify functionality.
The overall goal of this PR is to ensure that we don't try to deliver proofs which have already been delivered. And that we reattempt proof delivery on node restart.
Related to #1009