Date
19 November, 2024
Topics
Not available
Speakers
Not available
Transcript by
Specifics of the attack aren't as important. Issue is that a simple DOS was possible in the wild and it wansn't noticed before it happened.
Q: Unconfirmed transactions?
A: Yes, mempool.
Q: Separate queue for each peer or combined?
A: Separate. Each queue was full.
Q: Where is the problem? Should the queues be dumped when they get full?
A: The problem lies in sorting.
Q: What was the fix?
A: Drain at a rate proportional to how full the queue is, rather than using a constant rate.
Q: Do we kick/ban nodes for sending too many inv
messages?
A: Not at the moment.
We have people who look at the code, write functional tests, fuzz testing. But how do we catch issues like these before they happen? How do we prevent the next one?
Systemic vs. Unit/Functional Testing:
bitcoind
as opposed to full instances might help in testing.Simulation Challenges:
Fuzzing:
Extreme Testing:
Ideas:
Additional Suggestions:
Q: Is the code getting more unweildy or spaghettified? Or cleaner as time goes?
A: There's a tension, some want cleaner/modularized code, others want faster with layer violations. Hopefully cleaner over time but always a moving target.
Q: How often does the implementation change beyond bug fixes?
A: Frequently. Examples of newish major changes include encrypted P2P and package relay.
Comment: The dominance of a majority client aids in deploying new features network-wide efficiently.
Community-maintained archive to unlocking knowledge from technical bitcoin transcripts