Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Backport PR14897, PR15834 and PR16196
Summary: They all are backported at once to avoid leaving master in a buggy state. This is Core PR14897: bitcoin/bitcoin#14897 * Change in transaction pull scheduling to prevent InvBlock-related attacks Co-authored-by: Suhas Daftuar <sdaftuar@gmail.com> This is Core PR15834: bitcoin/bitcoin#15834 * Remove NOTFOUND transactions from in-flight data structures This prevents a bug where the in-flight queue for our peers will not be drained, resulting in not downloading any new transactions from our peers. Thanks to ajtowns for reporting this bug. * Add an explicit memory bound to m_tx_process_time Previously there was an implicit bound based on the handling of m_tx_announced, but that approach is error-prone (particularly if we start automatically removing things from that set). * Improve NOTFOUND comment * Expire old entries from the in-flight tx map If a peer hasn't responded to a getdata request, eventually time out the request and remove it from the in-flight data structures. This is to prevent any bugs in our handling of those in-flight data structures from filling up the in-flight map and preventing us from requesting more transactions (such as the NOTFOUND bug, fixed in a previous commit). Co-authored-by: Anthony Towns <aj@erisian.com.au> * Fix bug around transaction requests If a transaction is already in-flight when a peer announces a new tx to us, we schedule a time in the future to reconsider whether to download. At that future time, there was a bug that would prevent transactions from being rescheduled for potential download again (ie if the transaction was still in-flight at the time of reconsideration, such as from some other peer). Fix this. This is Core PR16196: bitcoin/bitcoin#16196 * doc: Add release notes for 14897 & 15834 Test Plan: make check ./test/functional/test_runner.py --extended Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Subscribers: Fabien Differential Revision: https://reviews.bitcoinabc.org/D4574
- Loading branch information