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

Also handle/resolve orphan TXs when parents appear in a block #3139

Merged
merged 6 commits into from
Oct 9, 2019

Conversation

codablock
Copy link

@codablock codablock commented Oct 4, 2019

This should fix many of the mempool inconsistencies seen on mainnet when high load appears with many chained transactions.

This also backports bitcoin#15644 as we need the orphan handling to be callable from outside of ProcessMessage.

The PR is currently built on top of #3127 as it adds more testing to orphan TX handling.

@codablock codablock added this to the 14.1 milestone Oct 4, 2019
@codablock codablock changed the title Also handle/resolve orphan TXs when they first appear in a block Also handle/resolve orphan TXs when parents appear in a block Oct 4, 2019
@UdjinM6
Copy link

UdjinM6 commented Oct 4, 2019

utACK to merge after rebase

src/net_processing.cpp Outdated Show resolved Hide resolved
sipa and others added 4 commits October 7, 2019 18:37
This makes orphan processing work like handling getdata messages:
After every actual transaction validation attempt, interrupt
processing to deal with messages arriving from other peers.
@codablock
Copy link
Author

rebased on develop

UdjinM6
UdjinM6 previously approved these changes Oct 7, 2019
Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-utACK

@@ -853,7 +853,7 @@ void PeerLogicValidation::BlockConnected(const std::shared_ptr<const CBlock>& pb
for (const CTransactionRef& ptx : pblock->vtx) {
const CTransaction& tx = *ptx;

// Can we accept new orphan entries?
// Which orphan pool entries we should reprocess and potentially try to accept into mempool again?
Copy link
Member

@PastaPastaPasta PastaPastaPasta Oct 7, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you squash this commit in af7124e?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Member

@PastaPastaPasta PastaPastaPasta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hate changing tests because I'm sure it will cause conflicts down the road backporting, always prefer Dash specific tests. Otherwise, utACK

Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-utACK

@codablock codablock merged commit eb87ad2 into dashpay:develop Oct 9, 2019
@codablock codablock deleted the pr_orphanhandling branch October 9, 2019 08:12
@codablock
Copy link
Author

codablock commented Nov 18, 2019

Removing backport label as it turned out that this needs #3138 6043825, which in turn requires multiple follow up PRs.

@UdjinM6
Copy link

UdjinM6 commented Nov 18, 2019

@codablock #3138?

@codablock
Copy link
Author

Sorry, I meant 6043825 which is part of #2931

@UdjinM6
Copy link

UdjinM6 commented Nov 18, 2019

@codablock Ah, ok 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants