Bitcoin Core is the reference software implementation of the Bitcoin protocol.
It is an open-source project maintained by a community of developers and serves as the backbone of the Bitcoin network.
The Bitcoin Core software provides the essential functionality required to participate in a Bitcoin network, including validating transactions, mining, and creating new Bitcoin wallets.
Note: There are Three Bitcoin networks
- mainnet – Real bitcoin network
- testnet -Public test network
- regtest – Private test network
The Bitcoin core software can be downloaded here and is available for Windows,Linux and Mac.
Don’t be put of by the storage warning shown below as this is only applicable if you are creating a node on the main bitcoin network.
If you are creating anode on testnet then this storage is much lower and for regtest networks it is negligible.
Important: If you are new to Bitcoin I recommend that you start by creating a private test network (regtest).
Some key aspects and features of the Bitcoin Core Software are:
- Node Software: Bitcoin Core can operate as a full node,which means that it maintains a complete copy of the entire Bitcoin blockchain.
- Wallet Functionality: Bitcoin Core includes a built-in wallet, allowing users to securely store and manage their Bitcoin funds.
- Transaction Validation: As a full node, Bitcoin Core validates transactions by independently verifying their adherence to the Bitcoin protocol rules. It ensures that transactions are legitimate, unspent coins are properly used, and the transaction history is consistent.
- Mining: Bitcoin Core provides mining capabilities, allowing users to participate in the process of creating new blocks and securing the network. Mining involves solving complex mathematical puzzles to find valid blocks and earn rewards in the form of newly minted Bitcoins and transaction fees.
- Network Communication: Bitcoin Core communicates with other nodes in the Bitcoin network through the peer-to-peer protocol. It exchanges information about new transactions, blocks, and network status, facilitating the propagation and consensus of the blockchain across the network.
- Consensus Protocol: Bitcoin Core follows the consensus rules defined by the Bitcoin protocol, ensuring a shared and agreed-upon history of transactions. It enforces the rules that govern block validation, mining difficulty adjustment, and the consensus mechanism based on the longest valid chain.
- Security and Privacy: Bitcoin Core prioritizes security and privacy by providing features such as encrypted wallet storage, the ability to connect through Tor for anonymity, and support for multiple address types (e.g., legacy and SegWit) to enhance privacy and reduce transaction traceability.
Starting the Software
You can run bitcoin core software using either the :
- Bitcoin GUI
- Command line
You can start Bitcoin using the graphical user interface or the command line but not both.
On most systems the install usually places a shortcut on your desktop to bitcoin-qt (Bitcoin GUI).
Clicking on this starts the Bitcoin software.
The software is configured using a configuration file (bitcoin.conf) located in the ./bitcoin folder (Linux).
If you are using a snap installation then you will find it in ~/snap/bitcoin-core/common/.bitcoin.
You may need to create this file if it doesn’t exist and you should edit this file before starting bitcoin as this file determines which network the bitcoin core connects to.
By default it will connect to the mainnet.
Before proceeding I recommend you familiarize yourself with this file. See An Introduction to the bitcoin.conf file.
The bitcoin-qt interface also give you access to a Bitcoin Wallet.
When you start bitcoin-qt you will be prompted to choose a directory to store the Bitcoin block chain and your wallet.
Unless you have a separate partition or drive you want to use, click Ok to use the default.
At the top of the window you should see which bitcoin network you are connected to. In the screen shot below you can see I am connected to the regtest test network
If you click on the Window tab you will see a drop down menu which lets access the:
- Console – Used to enter commands
- Network Traffic – View current network traffic
- Peers- See list of Current Peers
If you click on the settings tab you will see the screen below:
For a node on the mainnet the option to start bitcoin core on system login would be enable but on a test network it is normally disabled.
Pruning lets you restrict the size of the database on disk and I will cover this in a separate tutorial at a later date but it should not be enabled on a test network.
You can start bitcoin using the command
However you should be careful here as I noticed the following when using a SNAP install
Starting using the command line expects the bitcoin.conf file to be located in the folder ~/.bitcoin
whereas the bitcoin-qt expects the bitcoin.conf to be in the ~/snap/bitcoin-core/common/.bitcoin
You can supply command line options on startup the manual page is here.
Note: I will be doing a dedicated tutorial on this topic at a later date.
Resources and releated tutorials