Followups to #30110
- #30110 (review) + a few more doc fixes
- #30110 (review)
Followups to #30110
This module is going to be responsible for managing everything related
to transaction download, including txrequest, orphan transactions and
package relay. It will be responsible for managing usage of the
TxOrphanage and instructing PeerManager:
- what tx or package-related messages to send to which peer
- whether a tx or package-related message is allowed or useful
- what transactions are available to try accepting to mempool
Future commits will consolidate the interface and re-delegate
interactions from PeerManager to TxDownloadManager.
This is move-only.
This will become necessary in later commits that query mempool. We also
introduce the TxDownloadOptions in this commit to make the later diff
easier to review.
This is move-only.
Also delete external RecentConfirmedTransactionsFilter() access since it
is no longer necessary.
The information stored in TxDownloadConnectionInfo isn't used until the
next commit.
The usage of this bool will increase in scope in the next commit.
For this commit, the value of this bool is accurate at each
ProcessInvalidTx callsite:
- ProcessOrphanTx -> this tx is an orphan i.e. has been rejected before
- ProcessPackageResult -> 1p1c only, each transaction is either an
orphan or in m_lazy_recent_rejects_reconsiderable
- ProcessMessage -> tx was received over p2p and validated for the first
time
These invs are ignored anyway, and this allows us to more easily move
the inv handling to TxDownloadManager in the next commit.
ProcessInvalidTx will return a PackageToValidate, so it needs to be
defined afterward.
Move-only.
Move-only. Also delete external RecentRejectsFilter() access since it is
no longer necessary.
Also delete external RecentRejectsReconsiderableFilter() access since it
is no longer necessary.
This should never happen normally, but just in case.
Forward this bool to the TxRequestTracker ctor. This is needed for
stablity in TxDownloadManager fuzzers
The txdownload_impl is similar but allows us to check specific
invariants within its implementation. It will also change a lot more
than the external interface (txdownloadman) will, so we will add more to
this target later.
Previously, we accessed m_txdownloadman within the loop. Now, we are
just checking and making copies of a local variable.
Co-authored-by: Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For detailed information about the code coverage, see the test coverage report.
See the guideline for information on the review process. A summary of reviews will appear here.
Reviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
Labels
Refactoring
Docs