It's nice to see an actual Bitcoin focused lecture! I used to be invited to give a Bitcoin compsci lecture at a local technical university and tried to cram everything into a single 2 hour lecture. I don't think people learned much from that back then 😅.
I think I would have structured it the same way 4 yesrs ago, but I am more inclined now to say that consensus is the actually important part to grasp.
Where is this myth coming from that relaxing OP_RETURN standardness increases the resource burden of node operators?
It is starting to get fuzzier, some full time contributors have employment contracts, most have some kind of grant. Most of us did start out as volunteers and sank countless hours into it without any expectation of renumeration. I also don't think being volunteers or not is all that relevant. There will always be some kind of weird relationship between an OSS project's developers and its users and I don't think there is a way around that.
Yes they can, pruned nodes fully download and validate all historical blocks. They just throw the data away once they validated it.
Glad it made it in finally :)
If the mempool is not running a service for the miners to get the most profitable chunk of transactions, what is it about?
This won't change storage requirements. Block size remains where it is. Data in OP_RETURNs is not added to the UTXO set, so it might decrease storage requirements actually.
Cash on the internet.
Would you take a Bitcoin protocol course with the following lecture plan?
What am I missing?
https://github.com/edilmedeiros/bitcoin-course
---
**Part 1: Money, Bitcoin, and the Need for Decentralization**
1. What is Money? Why It Breaks
2. Decentralization and Its Challenges
3. Bitcoin’s High-Level Architecture
**Part 2: Cryptographic Foundations for Bitcoin**
4. Finite Fields and Modular Arithmetic
5. Elliptic Curves and secp256k1
6. Digital Signatures: ECDSA and Schnorr
7. Cryptographic Hashes
**Part 3: Understanding Bitcoin Transactions**
8. Transaction Serialization Basics (Legacy)
9. Bitcoin Script Language: Stack Semantics and p2pk
10. Bitcoin Script Contracts: p2pkh and p2sh
11. Transaction Malleability: The Problem and Motivation for SegWit
12. SegWit Transactions: p2wpkh and p2wsh
13. Advanced Script Features (Optional/Buffer)
**Part 4: Wallets — From Keys to Usability**
14. Private Keys, Public Keys, and Addresses
15. Mnemonics and BIP39
16. Hierarchical Deterministic Wallets (BIP32)
17. Wallet Architecture and Security Models
**Part 5: Mining, Proof of Work, and Settlement**
18. Proof of Work and Mining
19. Merkle Trees and Blockchain Structure
20. Chain Splits, Reorgs, and Settlement Assurance
**Part 6: Second Layers and the Future of Bitcoin**
21. Bitcoin's Security Guarantees
22. Conceptual Introduction to Lightning Network
23. Other Scaling Visions and Open Problems
Part 5 seems like the most important chapter, maybe do that earlier? Maybe add something about MAST, Taproot, and Schnorr. Could also end with an overview of available software and its common usage.
[bitcoin] Merged PR from ajtowns: versionbits refactoring https://github.com/bitcoin/bitcoin/pull/29039
Hope to expose this in the kernel API eventually.
Flat file header is passing the test, now to write some migration code, benchmark, and differential fuzz.
Got the coins/block validation logic split PR'ed. Made some progress on a flat file header store. Maybe there is hope for stateless, or even sans-io block validation through the kernel library after all :)
Thank you msvc for consistently making c++ coding more miserable.
When Ruben Somsen writes a gist, you know it's going to be good:
https://gist.github.com/RubenSomsen/a61a37d14182ccd78760e477c78133cd
On improving IBD time.
It is very cool, and kind of unites a bunch of ideas that have been floating around for some time. The key insight he had was that you can take the cut through achieved by the utxo cache and apply it on a network wide level. I'm also very much in favour of using our undo data more, and relaying spent UTXOs together with their respective spending boock.
That is very interesting! Iam suprised you can use this more limited API already. Let me know when you have something to show :)

