Study & contribute to bitcoin and lightning open source
Interactive AI chat to learn about bitcoin technology and its history
Technical bitcoin search engine
Daily summary of key bitcoin tech development discussions and updates
Engaging bitcoin dev intro for coders using technical texts and code challenges
Review technical bitcoin transcripts and earn sats
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