forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 4
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
Package Relay Draft 1 (Single In-Flight Approach) #8
Closed
+3,573
−381
Closed
Changes from 1 commit
Commits
Show all changes
57 commits
Select commit
Hold shift + click to select a range
43fd360
-- Part 0: Mempool Logic for Arbitrary Packages--
glozow f154c34
[test util] mock mempool minimum feerate
glozow 5d09d97
[test] package cpfp bumps parents <mempoolminfee but >=minrelaytxfee
glozow 64fc0da
[policy] disallow transactions under min relay fee, even in packages
glozow 1f40f8c
[validation] set PackageValidationState when mempool full
glozow 3639ad0
[validation] call AcceptSingleTransaction when only 1 package tx left
glozow a781945
[mempool] evict everything below min relay fee in TrimToSize()
glozow daf6b81
[test framework] return txhex from create_lots_of_big_transactions
glozow 569c284
[test] raise wallet_abandonconflict -minrelaytxfee settings
glozow faf8b23
[mempool] persist packages across restart
glozow f9b1993
MOVEONLY: move package checks into helper functions
glozow 2d0d4c0
scripted-diff: rename CheckPackage to IsPackageWellFormed
glozow 9bfb4a1
[packages] Packageifier for arbitrary transaction lists
glozow 87e43a5
[test util] multi-input multi-output CreateValidMempoolTransaction
glozow 2109d36
[validation] pre-fill missing inputs for txns depending on invalid
glozow 9bcefd6
[validation] validate packages by submitting each tx's ancestor sub-p…
glozow 0c011bc
[policy] allow any ancestor package, not just child-with-unconfirmed-…
glozow e42d8d9
-- Part 1: Orphan Resolution Module --
glozow 0821236
[p2p] add tx package tracker
glozow bcb33bb
[refactor] wrap TxOrphanage inside TxPackageTracker
glozow 718ce4a
[txorphange] GetTx by wtxid
glozow 60566f4
[txorphanage] EraseTx by wtxid
glozow dce6d8b
[txorphanage] return erased wtxids from EraseForBlock
glozow 2e72630
[log] add category TXPACKAGES for orphanage and package relay
glozow 49aa386
[txorphanage] impose a maximum total size of orphans
glozow 9a65983
[txorphanage] track bytes provided per peer
glozow 2861927
[txorphanage] when peers are overloaded, favor their orphans for evic…
glozow 3df9a46
[txorphanage] handle AddTx(nullptr)
glozow 8325214
[txpackagetracker] add orphan resolution tracker
glozow c24c133
[refactor] use txpackagetracker for orphan resolution
glozow 44c3725
[txpackagetracker] delete unused OrphanageAddTx
glozow e4d7b44
[txrequest] GetCandidatePeers and ResetRequestTimeout
glozow b46bafb
[txorphanage] support multiple announcers
glozow 26d7bdc
[unit test] orphanage: multiple announcers, eviction
glozow 6023be6
[p2p] use all orphan announcers as potential parent sources
glozow f5b00f3
-- Part 2: Signal SENDPACKAGES --
glozow 5c7331b
[txpackagetracker] negotiation logic
glozow 945814c
[unit test] txpackagetracker tests
glozow 3c0e90c
[p2p] signal support for package relay
glozow 424eb15
[rpc] expose package relay on rpc
glozow 25d3fe4
-- Part 3: Request Ancestor Package Info For Orphans --
glozow 797ed82
[packages] hash multiple transactions
glozow f7d6fea
[validation/p2p] separate TxValidationResult and rejects filter for l…
glozow 8164ad2
[p2p] respond to getdata(ancpkginfo) requests with ancpkginfo
glozow e6656a9
[txpackagetracker] create ancpkginfo requests using orphan resolution…
glozow 0389892
[unit test] txpackagetracker orphan tracking
glozow 21acc89
[p2p] Resolve orphans by requesting ancpkginfo and requesting txdata
glozow cc800b3
-- Part 4: Download and Validate Packages --
glozow ba5e401
[p2p] respond to getpkgtxns with pkgtxns or notfound MSG_PKGTXNS
glozow 852da8e
[txpackagetracker] track packages to download
glozow fbe58b5
[p2p] use ancpkginfo to make getpkgtxns requests
glozow 8859429
[txpackagetracker] handle pkgtxns/notfound, return validation work items
glozow 252ff5a
[unit test] PkgInfoAllowed, ReceivedAncPkgInfo, ReceivedPkgTxns
glozow 54c4fbe
[p2p] handle pkgtxns and validate packages
glozow efa53b7
[p2p] don't inv fee-bumping children to non-pkgrelay peers
glozow d682a10
[rpc] allow submitpackage to be called outside of regtest
glozow b647166
[functional test] package relay e2e
glozow File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 think it’s a bit confusing that a
PackageValidationResult
’sreject_reason
saystransaction failed
. A more indicative error message could bewhole package submission failed - individual transaction mempool inclusion failed
. It’s more verbose though at least make easier to debug that the package integrity has been respected by our mempool logic.