Support the Bitcoin network by running your own full node

A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.

Most full nodes also serve lightweight clients by allowing them to transmit their transactions to the network and by notifying them when a transaction affects their wallet. If not enough nodes perform this function, clients wont be able to connect through the peer-to-peer networktheyll have to use centralized services instead.

Many people and organizations volunteer to run full nodes using spare computing and bandwidth resourcesbut more volunteers are needed to allow Bitcoin to continue to grow. This document describes how you can help and what helping will cost you.

Running a Bitcoin full node comes with certain costs and can expose you to certain risks. This section will explain those costs and risks so you can decide whether youre able to help the network.

Miners, businesses, and privacy-conscious users rely on particular behavior from the full nodes they use, so they will often run their own full nodes and take special safety precautions. This document does not cover those precautionsit only describes running a full node to help support the Bitcoin network in general.

Please seek out assistance in thecommunityif you need help setting up your full node correctly to handle high-value and privacy-sensitive tasks. Do your own diligence to ensure who you get help from is ethical, reputable and qualified to assist you.

Its possible and safe to run a full node to support the network and use its wallet to store your bitcoins, but you must take the same precautions you would when using any Bitcoin wallet. Please see thesecuring your wallet pagefor more information.

Bitcoin Core full nodes have certain requirements. If you try running a node on weak hardware, it may workbut youll likely spend more time dealing with issues. If you can meet the following requirements, youll have an easy-to-use node.

Desktop or laptop hardware running recent versions of Windows, Mac OS X, or Linux.

200 gigabytes of free disk space, accessible at a minimum read/write speed of 100 MB/s.

A broadband Internet connection with upload speeds of at least 400 kilobits (50 kilobytes) per second

An unmetered connection, a connection with high upload limits, or a connection you regularly monitor to ensure it doesnt exceed its upload limits. Its common for full nodes on high-speed connections to use 200 gigabytes upload or more a month. Download usage is around 20 gigabytes a month, plus around an additional 195 gigabytes the first time you start your node.

6 hours a day that your full node can be left running. (You can do other things with your computer while running a full node.) More hours would be better, and best of all would be if you can run your node continuously.

Note:many operating systems today (Windows, Mac, and Linux) enter a low-power mode after the screensaver activates, slowing or halting network traffic. This is often the default setting on laptops and on all Mac OS X laptops and desktops. Check your screensaver settings and disable automatic sleep or suspend options to ensure you support the network whenever your computer is running.

Legal:Bitcoin use isprohibited or restricted in some areas.

Bandwidth limits: Some Internet plans will charge an additional amount for any excess upload bandwidth used that isnt included in the plan. Worse, some providers may terminate your connection without warning because of overuse. We advise that you check whether your Internet connection is subjected to such limitations and monitor your bandwidth use so that you can stop Bitcoin Core before you reach your upload limit.

Anti-virus:Several people have placed parts of known computer viruses in the Bitcoin block chain. This block chain data cant infect your computer, but some anti-virus programs quarantine the data anyway, making it more difficult to run Bitcoin Core. This problem mostly affects computers running Windows.

Attack target:Bitcoin Core powers the Bitcoin peer-to-peer network, so people who want to disrupt the network may attack Bitcoin Core users in ways that will affect other things you do with your computer, such as an attack that limits your available download bandwidth.

Initial block downloadrefers to the process where nodes synchronize themselves to the network by downloading blocks that are new to them. This will happen when a node is far behind the tip of thebest block chain. In the process of IBD, a node does not accept incoming transactions nor request mempool transactions.

If you are trying to set up a new node following the instructions below, you will go through the IBD process at the first run, and it may take a considerable amount of time since a new node has to download the entire block chain (which is roughly 195 gigabytes now). During the download, there could be a high usage for the network and CPU (since the node has to verify the blocks downloaded), and the client will take up an increasing amount of storage space (reduce storageprovides more details on reducing storage).

Before the node finishes IBD, you will not be able to see a new transaction related to your account until the client has caught up to the block containing that transaction. So your wallet may not count new payments/spendings into the balance.

If you are using Bitcoin Core GUI, you can monitor the progress of IBD in the status bar (left bottom corner).

The following instructions describe installing Bitcoin Core using tools available in most mainstream Linux distributions. We assume you use a Bourne-like shell such asbash.

Using any computer, go to theBitcoin Core download pageand verify you have made a secure connection to the server.

In the Linux (tgz) section of the Download page, choose the appropriate file for your Linux install (either 32-bit or 64-bit) and download the file. If necessary, move the file to the computer you want to use to run Bitcoin Core.

If you know how to use PGP, you should also click theVerify Release Signatureslink on the download page to download a signed list of SHA256 file hashes. The 0.11 and later releases are signed byWladimir J. van der Laans releases keywith the fingerprint:

Earlier releases were signed byWladimir J. van der Laans regular key. That keys fingerprint is:

Even earlier releases were signed by Gavin Andresens key. His primary keys fingerprint is:

You should verify these keys belong to their owners using the web of trust or other trustworthy means. Then use PGP to verify the signature on the release signatures file. Finally, use PGP or another utility to compute the SHA256 hash of the archive you downloaded, and ensure the computed hash matches the hash listed in the verified release signatures file.

If you arent already logged into the computer you want to install Bitcoin on, login now. Make sure you use an account that can usesuorsudoto install software into directories owned by the root user.

If you logged in graphically, start a terminal. If you logged in another way, we will assume youre already in a shell.

Locate the file you downloaded and extract it using thetarcommand followed by the argumentxzffollowed by the file name. The argumentxzfmeans eXtract the gZipped tar archive File. For example, for a 64-bit tar archive in your current directory, the command is:

This will create the directorybitcoin-0.18.0within your current working directory. We will install the contents of itsbinsubdirectory into the/usr/local/bindirectory using the theinstallcommand. The install command is part of the GNU coreutils available on nearly every Linux distribution, and the/usr/local/bindirectory is a standard location for self-installed executables (you may edit the commands below to use a different location).

If you usesudoto run commands as root, use the following command line:

If you usesuto run commands as root, use the following command line:

To continue, choose one of the following options

To use Bitcoin Core Graphical User Interface (GUI), proceed to theBitcoin Core GUIsection below.

To use the Bitcoin Core daemon (bitcoind), which is useful for programmers and advanced users, proceed to theBitcoin Core Daemonsection below.

To use both the GUI and the daemon, read both theGUI instructionsand thedaemon instructions. Note that you cant run both the GUI and the daemon at the same time using the same configuration directory.

In order to use Bitcoin Core GUI, you will need several libraries installed. All of them should be available in all major recently-released Linux distributions, but they may not be installed on your computer yet. To determine whether youre missing any libraries, open a terminal (if you havent already) and run the command/usr/local/bin/bitcoin-qtto start Bitcoin Core GUI.

If all the required libraries are installed, Bitcoin Core will start. If a required library is missing, an error message similar to the following message will be displayed:

Search your distributions package database for the missing file missing and install package containing that file. Then re-run/usr/local/bin/bitcoin-qtto see if its missing another file. Repeat until Bitcoin Core GUI starts.

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, clickOkto use the default.

Bitcoin Core GUI will begin to download the block chain. This step will take at least several days, and it may take much more time on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time by closing it; it will resume from the point where it stopped the next time you start it.

After download is complete, you may use Bitcoin Core as your wallet or you can just let it run to help support the Bitcoin network.

Starting your node automatically each time you login to your computer makes it easy for you to contribute to the network. The easiest way to do this is to tell Bitcoin Core GUI to start at login. This only works in desktop environments that support theautostart specification, such as Gnome, KDE, and Unity.

While running Bitcoin Core GUI, open the Settings menu and choose Options. On the Main tab, clickStart Bitcoin on system login. Click the Ok button to save the new settings.

The next time you login to your desktop, Bitcoin Core GUI should be automatically started as an icon in the tray.

If Bitcoin Core GUI does not automatically start, you may need to add it to anor.xsessionfile asdescribed here.

You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoins manycommunities, such asBitcoin StackExchangeBitcoinTalk technical support, or thebitcoinIRC chatroom on Freenode.

To support the Bitcoin network, you also need to allow incoming connections. Please read theNetwork Configurationsection for details.

If youre logged in as an administrative user with sudo access, you may log out. The steps in this section should be performed as the user you want to run Bitcoin Core. (This can be a locked account used only by Bitcoin Core.) If you changed users in a graphical interface, start a terminal.

It will print a message that Bitcoin Core is starting. To interact with Bitcoin Core daemon, you will use the commandbitcoin-cli(Bitcoin command line interface).

Note: it may take up to several minutes for Bitcoin Core to start, during which it will display the following message whenever you usebitcoin-cli:

After it starts, you may find the following commands useful for basic interaction with your node:getblockchaininfogetnetworkinfogetnettotalsgetwalletinfostop, andhelp.

For example, to safely stop your node, run the following command:

A complete list of commands is available in developer reference.

When Bitcoin Core daemon first starts, it will begin to download the block chain. This step will take at least several days, and it may take much more time on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time using thestopcommand; it will resume from the point where it stopped the next time you start it.

Starting your node automatically each time your computer boots makes it easy for you to contribute to the network. The easiest way to do this is to start Bitcoin Core daemon from your crontab. To edit your crontab on most distributions, run the following command:

Scroll to the bottom of the file displayed and add the following line:

Save the file and exit; the updated crontab file will be installed for you. On most distributions, this will cause Bitcoin Core daemon to be automatically started each time your reboot your computer.

If youre a expert system administrator and want to use an init script instead, seethe init scripts directory in Bitcoin Cores source tree.

You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoins manycommunities, such asBitcoin StackExchangeBitcoinTalk technical support, or thebitcoinIRC chatroom on Freenode.

To support the Bitcoin network, you also need to allow incoming connections. Please read theNetwork Configurationsection for details.

Go to theBitcoin Core download pageand verify you have made a secure connection to the server.

Click the large blueDownload Bitcoin Corebutton to download the Bitcoin Core installer to your desktop.

If you know how to use PGP, you should also click theVerify Release Signatureslink on the download page to download a signed list of SHA256 file hashes. The 0.11 and later releases are signed byWladimir J. van der Laans releases keywith the fingerprint:

Earlier releases were signed byWladimir J. van der Laans regular key. That keys fingerprint is:

Even earlier releases were signed by Gavin Andresens key. His primary keys fingerprint is:

You should verify these keys belong to their owners using the web of trust or other trustworthy means. Then use PGP to verify the signature on the release signatures file. Finally, use PGP or another utility to compute the SHA256 hash of the archive you downloaded, and ensure the computed hash matches the hash listed in the verified release signatures file.

After downloading the file to your desktop or your Downloads folder (C:\Users\YOUR USER NAME\Downloads), run it by double-clicking its icon. Windows will ask you to confirm that you want to run it. Click Yes and the Bitcoin installer will start. Its a typical Windows installer, and it will guide you through the decisions you need to make about where to install Bitcoin Core.

To continue, choose one of the following options

If you want to use the Bitcoin Core Graphical User Interface (GUI), proceed to theBitcoin Core GUIsection below.

If you want to use the Bitcoin Core daemon (bitcoind), which is useful for programmers and advanced users, proceed to theBitcoin Core Daemonsection below.

If you want to use both the GUI and the daemon, read both theGUI instructionsand thedaemon instructions. Note that you cant run both the GUI and the daemon at the same time using the same configuration directory.

Press the Windows key (⊞ Win) and start typing bitcoin. When the Bitcoin Core icon appears (as shown below), click on it.

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.

Your firewall may block Bitcoin Core from making outbound connections. Its safe to allow Bitcoin Core to use all networks. (Note: you will still need to configure inbound connections as described later in theNetwork Configurationsection.)

Bitcoin Core GUI will begin to download the block chain. This step will take at least several days, and it may take much more time on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time by closing it; it will resume from the point where it stopped the next time you start it.

After download is complete, you may use Bitcoin Core as your wallet or you can just let it run to help support the Bitcoin network.

Starting your node automatically each time you login to your computer makes it easy for you to contribute to the network. The easiest way to do this is to tell Bitcoin Core GUI to start at login.

While running Bitcoin Core GUI, open the Settings menu and choose Options. On the Main tab, clickStart Bitcoin on system login. Click the Ok button to save the new settings.

The next time you login to your desktop, Bitcoin Core GUI will be automatically started minimized in the task bar.

Warning:to prevent data corruption, do not force shutdown of your computer from the Windows shutdown screen when you have Bitcoin Core running.

You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoins manycommunities, such asBitcoin StackExchangeBitcoinTalk technical support, or thebitcoinIRC chatroom on Freenode.

To support the Bitcoin network, you also need to allow incoming connections. Please read theNetwork Configurationsection for details.

To start Bitcoin Core daemon, first open a command window: press the Windows key (⊞ Win) and type cmd. Choose the option labeled Command Prompt.

If you installed Bitcoin Core into the default directory, type the following at the command prompt:

Bitcoin Core daemon should start. To interact with Bitcoin Core daemon, you will use the commandbitcoin-cli(Bitcoin command line interface). If you installed Bitcoin Core into the default location, type the following at the command prompt to see whether it works:

Note: it may take up to several minutes for Bitcoin Core to start, during which it will display the following message whenever you usebitcoin-cli:

After it starts, you may find the following commands useful for basic interaction with your node:getblockchaininfogetnetworkinfogetnettotalsgetwalletinfostop, andhelp.

For example, to safely stop your node, run the following command:

A complete list of commands is available in developer reference.

When Bitcoin Core daemon first starts, it will begin to download the block chain. This step will take at least several days, and it may take much more time on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time using thestopcommand; it will resume from the point where it stopped the next time you start it.

Starting your node automatically each time your computer boots makes it easy for you to contribute to the network. The easiest way to do this is to start Bitcoin Core daemon when you login to your computer.

Right-click on the File Explorer window and choose New Text file. Name the filestart_bitcoind.bat. Then right-click on it and choose Open in Notepad (or whatever editor you prefer). Copy and paste the following line into the file.

(If you installed Bitcoin Core in a non-default directory, use that directory path instead.)

Save the file. The next time you login to your computer, Bitcoin Core daemon will be automatically started.

Warning:to prevent data corruption, do not force shutdown of your computer from the Windows shutdown screen when you have Bitcoin Core running.

You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoins manycommunities, such asBitcoin StackExchangeBitcoinTalk technical support, or thebitcoinIRC chatroom on Freenode.

To support the Bitcoin network, you also need to allow incoming connections. Please read theNetwork Configurationsection for details.

Go to theBitcoin Core download pageand verify you have made a secure connection to the server.

Click the large blueDownload Bitcoin Corebutton to download the Bitcoin Core installer to your desktop.

If you know how to use PGP, you should also click theVerify Release Signatureslink on the download page to download a signed list of SHA256 file hashes. The 0.11 and later releases are signed byWladimir J. van der Laans releases keywith the fingerprint:

Earlier releases were signed byWladimir J. van der Laans regular key. That keys fingerprint is:

Even earlier releases were signed by Gavin Andresens key. His primary keys fingerprint is:

You should verify these keys belong to their owners using the web of trust or other trustworthy means. Then use PGP to verify the signature on the release signatures file. Finally, use PGP or another utility to compute the SHA256 hash of the archive you downloaded, and ensure the computed hash matches the hash listed in the verified release signatures file.

After downloading the file to your desktop or your Downloads folder (C:\Users\YOUR USER NAME\Downloads), run it by double-clicking its icon. Windows will ask you to confirm that you want to run it. Click Yes and the Bitcoin installer will start. Its a typical Windows installer, and it will guide you through the decisions you need to make about where to install Bitcoin Core.

To continue, choose one of the following options

If you want to use the Bitcoin Core Graphical User Interface (GUI), proceed to theBitcoin Core GUIsection below.

If you want to use the Bitcoin Core daemon (bitcoind), which is useful for programmers and advanced users, proceed to theBitcoin Core Daemonsection below.

If you want to use both the GUI and the daemon, read both theGUI instructionsand thedaemon instructions. Note that you cant run both the GUI and the daemon at the same time using the same configuration directory.

Press the Windows key (⊞ Win) and start typing bitcoin. When the Bitcoin Core icon appears (as shown below), click on it.

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.

Your firewall may block Bitcoin Core from making outbound connections. Its safe to allow Bitcoin Core to use all networks. (Note: you will still need to configure inbound connections as described later in theNetwork Configurationsection.)

Bitcoin Core GUI will begin to download the block chain. This step will take at least several days, and it may take much more time on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time by closing it; it will resume from the point where it stopped the next time you start it.

After download is complete, you may use Bitcoin Core as your wallet or you can just let it run to help support the Bitcoin network.

Starting your node automatically each time you login to your computer makes it easy for you to contribute to the network. The easiest way to do this is to tell Bitcoin Core GUI to start at login.

While running Bitcoin Core GUI, open the Settings menu and choose Options. On the Main tab, clickStart Bitcoin on system login. Click the Ok button to save the new settings.

The next time you login to your desktop, Bitcoin Core GUI will be automatically started minimized in the task bar.

Warning:to prevent data corruption, do not force shutdown of your computer from the Windows shutdown screen when you have Bitcoin Core running.

You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoins manycommunities, such asBitcoin StackExchangeBitcoinTalk technical support, or thebitcoinIRC chatroom on Freenode.

To support the Bitcoin network, you also need to allow incoming connections. Please read theNetwork Configurationsection for details.

To start Bitcoin Core daemon, first open a command window: press the Windows key (⊞ Win) and type cmd. Choose the option labeled Command Prompt.

If you installed Bitcoin Core into the default directory, type the following at the command prompt:

Bitcoin Core daemon should start. To interact with Bitcoin Core daemon, you will use the commandbitcoin-cli(Bitcoin command line interface). If you installed Bitcoin Core into the default location, type the following at the command prompt to see whether it works:

Note: it may take up to several minutes for Bitcoin Core to start, during which it will display the following message whenever you usebitcoin-cli:

After it starts, you may find the following commands useful for basic interaction with your node:getblockchaininfogetnetworkinfogetnettotalsgetwalletinfostop, andhelp.

For example, to safely stop your node, run the following command:

A complete list of commands is available in developer reference.

When Bitcoin Core daemon first starts, it will begin to download the block chain. This step will take at least several days, and it may take much more time on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time using thestopcommand; it will resume from the point where it stopped the next time you start it.

Starting your node automatically each time your computer boots makes it easy for you to contribute to the network. The easiest way to do this is to start Bitcoin Core daemon when you login to your computer.

Right-click on the File Explorer window and choose New Text file. Name the filestart_bitcoind.bat. Then right-click on it and choose Open in Notepad (or whatever editor you prefer). Copy and paste the following line into the file.

(If you installed Bitcoin Core in a non-default directory, use that directory path instead.)

Save the file. The next time you login to your computer, Bitcoin Core daemon will be automatically started.

Warning:to prevent data corruption, do not force shutdown of your computer from the Windows shutdown screen when you have Bitcoin Core running.

You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoins manycommunities, such asBitcoin StackExchangeBitcoinTalk technical support, or thebitcoinIRC chatroom on Freenode.

To support the Bitcoin network, you also need to allow incoming connections. Please read theNetwork Configurationsection for details.

Go to theBitcoin Core download pageand verify you have made a secure connection to the server.

Click the large blueDownload Bitcoin Corebutton to download the Bitcoin Core installer to your desktop.

If you know how to use PGP, you should also click theVerify Release Signatureslink on the download page to download a signed list of SHA256 file hashes. The 0.11 and later releases are signed byWladimir J. van der Laans releases keywith the fingerprint:

Earlier releases were signed byWladimir J. van der Laans regular key. That keys fingerprint is:

Even earlier releases were signed by Gavin Andresens key. His primary keys fingerprint is:

You should ve