Bitcoin is a fully decentralized digital cryptocurrency. Unlike US dollars, which you can hold in your hands (or in your bank account), there is no central authority or centralized payment system that controls Bitcoin. Instead, Bitcoin operates on a peer-to-peer network that allows anyone in the world to send and receive Bitcoin without intermediaries (for example, a bank, central bank or payment processor). Despite the fact that there are thousands of cryptocurrencies on the CMC today, Bitcoin was the very first cryptocurrency ever created. On October 31, 2008, a person (or group of people) under the pseudonym Satoshi Nakamoto published the world famous Bitcoin white paper. The first line reads: “A clean, peer-to-peer version of electronic money that allows you to send online payments directly from one side to the other without going through a financial institution.” The Bitcoin network was launched on January 3, 2009, which marked the beginning of the cryptocurrency revolution.
Bitcoin Core – is the official open source software. Combining the functions of a bitcoin wallet and a full node with which network participants can maintain its performance. The first version of the application was developed in 2009 by Satoshi Nakamoto and bore the same name as the main product – Bitcoin. Until 2011, the wallet code was published on the most popular at that time portal for developers SourceForge. Then the “move” to GitHub took place, where all the development results to date are posted. Since 2012, the non-profit organization Bitcoin Foundation has been supporting the development of all software based on the original Bitcoin code. On her initiative, in December 2013, the wallet was renamed Bitcoin Core, by which it is known until today. In October 2016, this wallet became one of the first applications in which it was possible to send transactions based on SegWit technology still being tested at that time, aimed at improving the scalability and bandwidth of the Bitcoin network. And in versions released after February 2018, support for Segregated Witness is already enabled by default. At the moment, Bitcoin Core is one of the few non-stop developing cryptocurrency wallets that support exclusively Bitcoin. Available only in the desktop version for computers running Windows, MacOS or Linux. It belongs to the category of “thick” bitcoin wallets and is its most popular representative.
Installing and getting started with Bitcoin Core
First of all, you need to download the latest version of the application, suitable for the operating system installed on the user’s computer. Then you need to install the downloaded software in any convenient place (by default – C: / Program Files / Bitcoin).
When you first start the application, you will need to specify the path to store the blockchain and the file with the user’s wallet. This can be either the default folder or any other. A prerequisite for this is the location in the hard disk partition with at least 250-300 GB of free space (at the time of writing this material). We recommend that you allocate a separate hard drive with a memory of about 500 GB for this.
Download Bitcoin Core & Blockchain
- Make sure that your hard disk has enough free space, it takes about 250-350 GB;
- Download Bitcoin Core;
- Downloading the archive with the Bitcoin blockchain (BTC).
Import Blockchain Bitcoin
After the files have downloaded, we can start importing bitcoin blocks, for this:
- Create a folder where we will place the blocks, for example “Bitcoin BTC”;
- We dig into it an archive with blocks;
- Next, in the same folder, run – “Bitcoin.exe”
- The “BitcoinCore” window will open, select our just created folder “Bitcoin BTC” and click “Next”, after which the assembly of the Bitcoin blockchain database and synchronization with the network will begin;
- Done! Now you can use your Bitcoin wallet!
Bitcoin Synchronize Blockchain
It is recommended that in addition to the current blockchain size indicated in the application window, at least another 20-30 backup gigabytes of space be present. This is necessary to ensure the smooth operation of Bitcoin Core in the near future, since the weight of the network is steadily increasing (by approximately 150 MB each day).
After that, the synchronization of the wallet client with the network will automatically begin. As a rule, this process takes at least several days. It all depends on the speed of the Internet connection, the workload of the computer with various tasks and the time it spent online. Ideally, after the first launch of Bitcoin Core, leave the PC turned on until the synchronization is complete. If, instead, you actively use the computer and periodically disconnect it from the network, the download of the blockchain can last for a week, or even more.
In case it is impossible to avoid disconnecting the PC from the network, it is important to give the program the opportunity to complete work with already downloaded files in order to avoid errors, because of which it may be necessary to start the whole process from the very beginning.
During synchronization, the percentage of progress, the date of the last downloaded block and the estimated time to complete completion will be displayed in the application window. There you can see a warning that due to the incomplete download of transaction history, the wallet balance may not be displayed correctly. For the same reason, you cannot send coins received in a time period whose synchronization has not yet taken place.
After the download is complete, you can start using Bitcoin Core as a Bitcoin wallet and / or node, after making the necessary settings.
Configure Bitcoin Core
All Bitcoin Core parameters available for change are located in the Settings / Options menu:
- The main ones – on this tab you can configure the application to start automatically at system startup, change the default database cache, and also use the function to reduce the stored blockchain to a few gigabytes (after complete synchronization, only the last 551 blocks are needed in fact for the wallet to work).
- Wallet – there are only two options here, which enable the management of coins and the use of inputs that are not yet confirmed in outgoing transactions.
- Network – for the normal functioning of the application as a node and synchronization with the network, this section must have a tick in the line “Allow incoming connections”. The remaining settings are optional and can be used in case of problems with access to the Bitcoin blockchain or to increase privacy.
- Window – here you can configure the rules for minimizing the application and displaying it in the system tray.
- Display – in this tab, you can change the localization of the application through the drop-down menu “User Interface Language”. In the line “Display amounts in units” it is possible to set the display of the balance and transaction details in one of the options: BTC (bitcoin), mBTC (millbitcoin), µBTC (microbitcoin) or satoshi (satoshi). There is also a field for specifying a third-party explorer so that in the description of transactions in the wallet links are displayed for viewing them through the browser.
Everything listed settings and various additional commands for Bitcoin Core can be produced through the console, which runs the same name. item from the Window menu. This tool is usually used advanced users and developers. Full list of available commands can be viewed through the Help / Command Line Options menu.
Using Bitcoin Core as a Wallet
When you start Bitcoin Core by default, the “Overview” tab always opens, in which you can see the wallet balance (available, in pending transfers and general), as well as a list of recent transactions for sending or receiving funds by the user. A more detailed list of transactions involving the current wallet is available on the “Transactions” tab.
Before you start working with your wallet, it is recommended that you first encrypt it with a strong password. This is done through the menu “Settings / Encrypt wallet”. In this case, it is advisable to pay attention to the warning of the program that if the user forgets the password, then he will forever lose his bitcoins. This combination will need to be entered every time you unlock your wallet and send transactions. Therefore, it is important to keep it in a safe place.
If necessary, the password can be changed through the corresponding item in the “Settings” menu. The remaining stages of interaction with the wallet will be considered in more detail.
Create addresses and receive payments
To create a new BTC address (public key) in Bitcoin Core, you need to use the “Receive” function. In the window that opens, you can specify a name for the new wallet (the “Label” field) so that it is easier to distinguish it from others. It will be visible only to the current user within the application. In the “Quantity” field, you can specify the amount if the address is created to request from someone a payment of a specific size.
Also, in the form of generating a new wallet, there is an option “Create a native segwit (bench32) address”. If you tick it, the new address can be used in transactions based on SegWit technology. This means that they will be faster and with a cheaper commission compared to using older legacy and p2sh standards.
In the “Message” field you can enter a message for the person to whom the request for payment will be sent. All listed parameters are optional, i.e. using them is optional. The button “Request payment” can be pressed, both with the filled fields, and without them.
After that, a window with a QR code opens, in which the address of the created wallet will be encrypted. If the number of coins was indicated before, when decrypting the QR code, the amount of sending on the side of the potential sender will automatically be set to the number indicated by the recipient.
Also, the new address and related data will be displayed under the QR code in text format and in the form of a URI – a hyperlink that can be opened on other computers with the Bitcoin Core client installed via the File / Open URI … menu.
After creation, all new wallets fall into the “History of payment requests”, where they can be viewed and, if necessary, deleted. But as soon as a translation is received on any of them, it will immediately disappear from this list. This is done for security, so that Bitcoin Core users use new addresses every time they receive payments. True, you can still view and reuse such wallets through the menu “Window / Addresses for receiving”.
Sending Transactions Via Bitcoin Core
To use the function of sending payments, you need to go to the “Send” tab and fill out the form displayed. The line “Pay” indicates the address of the recipient of the transfer. You can insert it manually or select from a list of previously used ones. The label field is filled with an arbitrary designation, under which the recipient’s address will be added to the above list (available for viewing through the menu “Window / Addresses for Departures”).
In the field “Quantity” the amount of transfer is entered. Next to it there is an option “Subtract commission from the amount.” If you check this box, transaction fees will be deducted from the number of coins sent. Therefore, the recipient will reach a slightly reduced amount. So that the commission does not affect the transferred number of bitcoins, it is not worth ticking. If you click the “Use Available Balance” button, the payment amount will be automatically set according to the number of available coins in the wallet.
The next section in the form of preparing an outgoing transaction is devoted to setting up a commission. Here you can use the option “Recommended value”. In this case, the size of the commission will be automatically set to the value calculated by the system depending on the current network load and the expected confirmation time (selected in the appropriate drop-down menu).
You can also set the commission per kilobyte of transaction data through the “Custom value” line. At the same time, it is worth paying attention to the fact that setting too low a commission may lead to the inability to successfully confirm the transaction.
The next option, called “Enable Replace-by-fee”, is used to provide the possibility of increasing the commission and speeding up the transaction if it hangs in the mempool.
Also at this stage, you can use the “Add Recipient” button to increase the number of outgoing payment recipients. The fields that appeared in this case are filled in similarly to the steps described above.
On this, the design of the outgoing transaction can be considered completed. It remains only to click “Send” and confirm your intention with the password that encrypted the wallet.
Wallet backup and private key retrieval
You can create a backup copy of your wallet in Bitcoin Core using the function of the same name from the File menu. In this case, the application will ask you to specify the path to save it.
You can also open the Wallets folder located in the directory that the user selected to store the blockchain through any file explorer. There will be located the automatically generated file “wallet.dat”, copying of which will lead to a backup of the wallet, no different from that obtained through the program menu.
It is recommended that you back up as often as possible, preferably after each operation to receive funds and / or create a new BTC address, choosing a reliable medium for storage of the received file, preferably disconnected from the network. Only in this case will it be possible to regain access to your balance after reinstalling the Bitcoin Core application or launching it on another computer. To restore, you will need to place the backup file in the Wallets folder, agreeing to replace the existing one.
Private Key Retrieval
If you use an outdated copy of the wallet, access to all coins received after its creation will be lost. If the user does not have the wallet.dat backup file saved, access to funds will not be restored at all.
When a user needs a private key from any of the addresses created in Bitcoin Core, for example, to import a wallet into another application, you can view it using the “dumpprivkey …” command, which is entered into the console mentioned above. In this case, instead of the “three points”, a BTC address is entered, from which it is necessary to obtain a private key.
For the command to work, you first need to unlock by specifying the password using the command “walletpassphrase pass time” (instead of pass, enter the password, instead of time – the period for which unlock wallet).
Bitcoin Core Cold Storage
To organize a “cold” storage of bitcoins through this application, you need to perform just a few simple steps:
- In a fully synchronized wallet, on the “Get” tab, you need to create the necessary number of new addresses and write / print their addresses on paper.
- Make several backup copies of the wallet.dat file on different media disconnected from the network.
- Delete the original file from the PC with the wallet installed;
- Transfer bitcoins to printed addresses.
As a result, the coins will end up on BTC addresses, whose private keys have never been used to access them. As long as this condition persists, we will talk about the “cold” storage of bitcoins. To access these coins, you need to copy the backup wallet.dat to the appropriate folder on the computer with Bitcoin Core installed.
Using Bitcoin Core to Run a Full Bitcoin Node
The main task of a full node is to validate blocks with transactions and then relay them to other nodes. Thus, each running and fully synchronized Bitcoin Core client helps to maintain the network’s operability, and its local storage contains an updated copy of the entire Bitcoin blockchain with a complete transaction history.
All that is needed to launch the full Bitcoin node is to install the Bitcoin Core application and wait for the entire blockchain to load (described in detail in the section on getting started with the wallet). You also need to make sure that incoming connections are allowed in the network options of the wallet and that TCP port 8333 is open (in the settings of the router and firewall).
For the full operation of the full node, the computer on which it is installed must be online for at least 6 hours daily. All processes in this case are performed by the program independently and do not require any user participation.
Currently, managing a full node has nothing to do with bitcoin mining. Previously, this feature was present in Bitcoin Core, but due to low mining efficiency it was removed from all versions of the application, starting in August 2016. Therefore, all full nodes on Bitcoin Core are now launched exclusively on a volunteer basis (without receiving remuneration) to maintain the network.
Of the 9300 currently active nodes, about 9 thousand are on Bitcoin Core. The remaining 300 are launched through alternative applications like Armory, mSIGNA and Bitcoin Knots.
If you want to follow along with tutorial you should download Bitcoin Core and let it synchronize first. When you start Bitcoin Core it will take a long time to synchronize with the Bitcoin network because the software has to download the entire blockchain, which contains over five years of global transaction history. Once you are synced the program will know the balance of every bitcoin address in existence and can verify when you send or receive bitcoins in real time.
The first thing you should do is Encrypt your wallet. Encrypting your wallet will password protect all of your bitcoin addresses. If you do not encrypt your wallet, anyone with access to your computer can take your bitcoins. There is no recovery process for this password so don’t forget it or all your bitcoins may be lost forever. Once you have completed all the steps Bitcoin Core will have to restart to complete the process.
Once you have Encrypted your wallet, you should backup your wallet file on an external hard drive or USB flash drive. Your wallet file (wallet.dat) stores the data for all of your public & private keys. If you lose this data, you will lose the bitcoin in all of those bitcoin addresses. Anytime you create a new bitcoin address or send bitcoins to someone, Bitcoin Core will add that new information to your wallet.dat file so it is best practice to backup your wallet file regularly. Now that you have created a new address, backup your wallet file again to make sure the bitcoins in ALL of your public keys are protected.