Last updated: 1st April 2024
Books and Resources for Bitcoin Core
Here are a few books and resources I have found helpful for understanding Bitcoin Core.
C++
Satoshi Nakamoto began work on the Bitcoin code in 2007/2008 using C++98. Bitcoin Core currently uses C++20. Here are some useful resources:
Online resources (all are up-to-date with the latest versions of C++)
- C++ reference
- C++ Core Guidelines by Bjarne Stroustrup and Herb Sutter
- Bitcoin Core Developer Notes
- Godbolt Compiler Explorer
- Google C++ Style Guide
- C++ FAQ
The Reference Book (unfortunately covers C++11, so a few parts are obsolete)
Learning C++
- C++ Primer, 5th Edition (C++11, more gentle, longer, not to be confused with the knock-off, "C++ Primer Plus")
- Accelerated C++ (condensed, faster, quite out of date but excellent, exercise solutions here)
Intermediate/advanced (all but the last one predate C++17, however, and the last one is C++17)
- Effective C++
- Effective Modern C++
- Effective STL
- Exceptional C++
- More Exceptional C++
- C++ Templates: The Complete Guide (1st Edition)
- C++ Templates: The Complete Guide (2nd Edition)
- C++ Concurrency in Action, 2nd Edition
Cryptography
- Elliptic Curve Cryptography: a gentle introduction, a blog series by Andrea Corbellini
- Foundations of Cryptography
- Waxwing's blog by Adam Gibson
- A Graduate Course in Applied Cryptography by Dan Boneh
- Cryptopals - A set of cryptographic code challenges
Cheers,
Jon Atack