See #27463 for full project tracking. Please see #27742 for how this PR fits into the big picture. This PR is based on a more recent commit than that one.
This is 2 sets of changes:
- Introduces
TxDownloadManager
, which handles all transaction downloading. - Adds an “orphan resolution module”. It adds all announcers of an orphan as potential resolution candidates, in a tracker implemented as a
TxRequestTracker
.- In this PR, “orphan resolution” means requesting missing parents by
getdata(MSG_TX | MSG_WITNESS_FLAG, missing_txid)
. - In a future PR, we’ll add another resolution method, requesting ancestor wtxids using
getdata(MSG_ANCPKGINFO, orphan_wtxid)
.
- In this PR, “orphan resolution” means requesting missing parents by