-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Conversation
utACK to merge after rebase |
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.
1feb863
to
9a06702
Compare
rebased on develop |
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.
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? |
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.
can you squash this commit in af7124e?
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.
done
9a06702
to
a12b03e
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.
I hate changing tests because I'm sure it will cause conflicts down the road backporting, always prefer Dash specific tests. Otherwise, utACK
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.
re-utACK
@codablock Ah, ok 👍 |
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.