Skip to content
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

Retry formation transaction sets #575

Merged
merged 3 commits into from
Jan 15, 2025

Conversation

n8maninger
Copy link
Member

@n8maninger n8maninger commented Jan 15, 2025

This fixes a regression where a transaction set cannot be rebroadcast if one of its parents is already confirmed causing otherwise valid contract formations to be rejected.

What's, effectively, happening now is:

  1. form a contract using an ephemeral output
  2. The formation set includes [ephemeralParent, formationTxn]
  3. ephemeralParent is confirmed, but for some reason formationTxn is not.
  4. formationTxn is technically still valid, but AddPoolTransactions fails with "siacoin input 0 spends nonexistent siacoin output" since ephemeralParent is already confirmed

The additional lifecycle test confirms this behavior

@n8maninger n8maninger force-pushed the nate/fix-rejections-for-partial-parents branch from 60d7b81 to 1786ae5 Compare January 15, 2025 18:19
@n8maninger n8maninger force-pushed the nate/fix-rejections-for-partial-parents branch from 1786ae5 to 07f172c Compare January 15, 2025 22:20
@n8maninger n8maninger force-pushed the nate/fix-rejections-for-partial-parents branch from 07f172c to 376e7f9 Compare January 15, 2025 22:22
@n8maninger n8maninger changed the title Readd all parents to the transaction pool individually in case one was confirmed in an earlier block Retry formation transaction sets Jan 15, 2025
@n8maninger n8maninger merged commit deb74a2 into master Jan 15, 2025
9 checks passed
@n8maninger n8maninger deleted the nate/fix-rejections-for-partial-parents branch January 15, 2025 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

1 participant