Skip to content

Instantly share code, notes, and snippets.

@michaelfolkson
Last active November 2, 2021 17:12
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save michaelfolkson/f46a7085af59b2e7b9a79047155c3993 to your computer and use it in GitHub Desktop.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment