London Bitcoin Devs links for Socratic on AssumeUTXO w/ James O'Beirne
November 2nd 2021
YouTube Live link: https://www.youtube.com/watch?v=JottwT-kEdg
Zoom link (passcode 062417): https://us02web.zoom.us/j/83846721502?pwd=ekdOT0F6NnRLSTlFRWV1RVBSWFZXUT09
Meetup link: https://www.meetup.com/London-Bitcoin-Devs/events/281088050
Basics (for beginners) - Why do we bother validating the whole blockchain from genesis?
Andreas Antonopoulos on IBD: https://btctranscripts.com/andreas-antonopoulos/2018-10-23-andreas-antonopoulos-initial-blockchain-download/
Motivation for AssumeUTXO - current IBD takes a long time, is single threaded, blocking (user must wait for it to complete before doing anything) and validates linearly from genesis to tip
Initial Block Download (BitMEX): https://blog.bitmex.com/bitcoins-initial-block-download/
Full Validation Sync Performance (Jameson Lopp, 2018): https://blog.lopp.net/bitcoin-full-validation-sync-performance/
Bitcoin node performance tests (Jameson Lopp, 2020): https://blog.lopp.net/2020-bitcoin-node-performance-tests/
Basic concept
Assumedvalid/checkpoints: https://bitcoincore.org/en/2017/03/08/release-0.14.0/#assumed-valid-blocks
Optech topics page: https://bitcoinops.org/en/topics/assumeutxo/
James O'Beirne presentation at Chaincode Labs: https://www.youtube.com/watch?v=PoEoG6sP1hw
James O'Beirne on Chaincode podcast: https://www.youtube.com/watch?v=knBHvzKsIOY
James O'Beirne at MIT Bitcoin Expo 2020 (snapshot time, bandwidth, CPU, dbcache): https://www.youtube.com/watch?v=3HVGolSlhqo&t=337s
Bitcoin dev mailing list post on AssumeUTXO and UTXO snapshots: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-April/016825.html
Dangers or concerns regarding Assume UTXO
Greg comment on security model: bitcoin/bitcoin#15606 (comment)
IRC discussion (Luke and Greg) on possible dangers of AssumeUTXO model (Line 205): https://www.erisian.com.au/bitcoin-core-dev/log-2019-04-04.html
Proposal: https://github.com/jamesob/assumeutxo-docs/tree/2019-04-proposal/proposal
Additional summary (initial individual feedback): bitcoin/bitcoin#15606
How it compares to other proposals
Rolling UTXO set hashes (Pieter Wuille): https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-May/014337.html
Rolling UTXO set hash gist (Fabian Jahr): https://gist.github.com/fjahr/fa4892874b090d3a4f4fccc5bafa0210
Automatic UTXO database backup: bitcoin/bitcoin#8037
Utreexo (Parallelizing IBD using multiple chainstates, combining this with AssumeUTXO): https://dci.mit.edu/utreexo
UHS (Cory Fields): https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-May/015967.html
Implementing AssumeUTXO in Core
The prototype of AssumeUTXO (too many changes, commits not semantic, unmergeable): bitcoin/bitcoin#15606
Validation module before and after: https://youtu.be/3HVGolSlhqo?t=550
Deglobalizing ChainstateManager: bitcoin/bitcoin#20049
Core issue #15605: bitcoin/bitcoin#15605
Bitcoin Core project: https://github.com/bitcoin/bitcoin/projects/11
Previously merged PRs:
Bitcoin Core PR review club on PR 17487: https://bitcoincore.reviews/17487
Bitcoin Core PR review club on PR 19055 (MuHash): https://bitcoincore.reviews/19055
Guidance for reviewers (based on MIT presentation)
Notes on AssumeUTXO design PR: bitcoin/bitcoin#23154