Full nodes

Andreas Antonopoulos discusses the role of Full Nodes in the Bitcoin network.

CreatorTimeURL

Andreas Antonopoulos

1min

This is an excerpt from Mastering Bitcoin by Andreas Antonopoulos. The book is open source and a great place to learn more about the technical workings of Bitcoin.

Full nodes are nodes that maintain a full blockchain with all transactions. More accurately, they probably should be called "full blockchain nodes." In the early years of bitcoin, all nodes were full nodes and currently the Bitcoin Core client is a full blockchain node. In the past two years, however, new forms of Bitcoin clients have been introduced that do not maintain a full blockchain but run as lightweight clients. We’ll examine these in more detail in the next section.

Full blockchain nodes maintain a complete and up-to-date copy of the Bitcoin blockchain with all the transactions, which they independently build and verify, starting with the very first block (genesis block) and building up to the latest known block in the network. A full blockchain node can independently and authoritatively verify any transaction without recourse or reliance on any other node or source of information. The full blockchain node relies on the network to receive updates about new blocks of transactions, which it then verifies and incorporates into its local copy of the blockchain.

Running a full blockchain node gives you the pure bitcoin experience: independent verification of all transactions without the need to rely on, or trust, any other systems. It’s easy to tell if you’re running a full node because it requires more than one hundred gigabytes of persistent storage (disk space) to store the full blockchain. If you need a lot of disk and it takes two to three days to sync to the network, you are running a full node. That is the price of complete independence and freedom from central authority.

There are a few alternative implementations of full blockchain Bitcoin clients, built using different programming languages and software architectures. However, the most common implementation is the reference client Bitcoin Core, also known as the Satoshi client. More than 75% of the nodes on the Bitcoin network run various versions of Bitcoin Core. It is identified as "Satoshi" in the sub-version string sent in the version message and shown by the command getpeerinfo as we saw earlier; for example, /Satoshi:0.8.6/.

Takeaway There are different types of nodes in the Bitcoin network but the majority are full nodes, storing the entire history of Bitcoin transactions in their own version of the Bitcoin blockchain (ledger).

Extra If you have some technical background and want to explore setting up your own Bitcoin node, RaspiBolt provides an implementation that runs on a Raspberry Pi of $99 and includes a straightforward tutorial. You can find it here: https://raspibolt.org/

Last updated