Bitcoin Source Code

Welcome to our special selection of articles describing what makes Bitcoin tick.

In this section, our techs comment about Bitcoin source code files in very easy and accessible language.

Learn how the world’s most popular cryptocurrency works by diving into the C++ code that makes it all happen.

base58.cpp – Commented Bitcoin Source Code by JF
Base58 encoding is responsible for one of the most recognizable technical aspects of Bitcoin Core - the addresses! This source file is responsible for a significant part of th...
chainparams.cpp – Commented Bitcoin Source Code by JF
In this article we'll take a look at one of the better known Bitcoin Core source files. Why is chainparams.* known to so many crypto developers? Because since 2011 or so, ba...
uint256.cpp – Commented Bitcoin Core source code by JF
If you've developed systems in C or C++ before then you're probably familiar with the stdint.h (cstdint for C++) typedefs. Since there'a lot of variation between platforms, stdint...
Commented Bitcoin source code – Introduction by JF
Commented Bitcoin Source Code - Quick Links If you're in a hurry, here are the links to commented source code sections (sorted by section and filename). Core amount.h - D...
rpc/server.cpp – Commented Bitcoin Source Code by JF
We now dive into one of the most exciting components of the Bitcoin Core source code. The RPC subsystem interconnects the connection manager, wallets, the storage subsystem and...
dummywallet.cpp – Commented Bitcoin Core source code by JF
We mentioned in a previous Bitcoin Core source code article that bitcoind can be compiled without wallet support. Why would anyone do that? Historically there were 2 main fu...
qt/main.cpp – Commented Bitcoin source code by JF
Having run the Bitcoin Core graphical interface for so many years, the GUI source code seemed like the perfect place to start the journey into Bitcoin Core. The messages conta...
optional.h – Commented Bitcoin source code by JF
optional.h is a stub that'll likely get removed from Bitcoin Core at a future date when C++ 17 gets formally adopted for the entire project. By reading the Bitcoin Core sources...
init.cpp – Commented Bitcoin source code by JF
This is our first exploration of Bitcoin-specific code in this series of articles. Until now we've looked at how the Qt system was set up to run the GUI and Bitcoin services in...
bitcoind.cpp – Commented Bitcoin source code by JF
As mentioned in the Bitcoin-Qt commented source code post, there are several approaches one can take to step into the Bitcoin source in approximately the same order as it runs. Fo...