-
Notifications
You must be signed in to change notification settings - Fork 220
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
feat(mempool)!: gossip reference to tx and request if needed #6675
feat(mempool)!: gossip reference to tx and request if needed #6675
Conversation
24605dd
to
0e0bda3
Compare
Test Results (CI) 3 files 126 suites 12m 6s ⏱️ Results for commit ad35c63. ♻️ This comment has been updated with latest results. |
06b80c3
to
e491a40
Compare
Test Results (Integration tests) 2 files 1 errors 9 suites 1h 34m 47s ⏱️ For more details on these parsing errors and failures, see this check. Results for commit c78fac2. ♻️ This comment has been updated with latest results. |
9a111a1
to
dec7698
Compare
dec7698
to
02ae76e
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.
This looks good, some questions about propagation.
We have to be careful about what messages we want to send out. This becomes a big issue with large networks. Libp2p will ensure that a single gossip message is sent to the entire network. So if we will send a message based on that later on, we should not forward the message as this will lead us to send an exponentially increasing number of messages, something akin to (peers ) *(peers-1) for every single ,message if my math is correct here
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.
Nice work! Just some small comments noted.
I ran 2x coin-split system-level stress tests containing huge transactions and 1x interactive transaction system-level stress test. Throughout the mempools stayed in sync and all transactions were propagated to mempool peers as expected. Interrogation of the trace logs also unveiled no undue issues.
ACK
Description
Motivation and Context
Transactions routinely are too large for gossipsub.
A new protocol has been added to mempool sync. Many transactions may be gossiped in quick succession and therefore it is inefficient to request each time a transaction notification is received. This protocol aims to address this by collecting notifications and periodically requesting many transactions in batched.
Details:
Base node GRPC decode and encode limit were raised from 4MiB to 10MiB, this is because some blocks within the legal weight limit were not transferable via GRPC when mining (~6MiB) causing GRPC errors and the inability to mine.
How Has This Been Tested?
Manually, submitting transactions and observing logs
What process can a PR reviewer use to test or verify this change?
Submit transactions to one node and observe the mempool of other nodes on the network
Breaking Changes
BREAKING CHANGE: Changes to the mempool sync protocol are not compatible with previous versions