Get started with Bitnode Box

Bitcoin Core

This chapter describes how to run Bitcoin Core on your Bitnode Box, the custom application settings, and how to allow inbound connections from other Bitcoin nodes.

Getting started with Bitcoin Core

Running Bitcoin Core.

The Bitcoin Core application is already pre-installed on Windows operating system (folder C:\Program Files\Bitcoin) and is configured to store blockchain data on the internal SSD drive (folder D:\Bitcoin). You can open Bitcoin Core by clicking on the Start menu, Windows taskbar or desktop shortcut.

Windows 10 Start Menu Bitcoin Core

Bitcoin Core comes with a graphical user interface (GUI). When you first launch Bitcoin Core, it starts the synchronization process with the Bitcoin network. The initial blockchain download (currently around 480 Gigabytes) may take a few days to complete, depending on your internet speed. You can monitor the progress of synchronization in the Bitcoin Core GUI.

Bitcoin Core GUI Synchronizing with the Bitcoin network

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

During the initial blockchain sync, there will be a high usage of the Internet network, data storage and CPU (since Bitcoin Core has to verify all downloaded blocks). Please note that the cooling fan may turn on while synchronizing.

Custom Setup.

There are two ways to change your Bitcoin Core configuration to adapt it to your needs. The first one is to launch the Bitcoin Core GUI and open the Settings menu, and then choose Options.

Bitcoin Core GUI Options

The second one is by editing the configuration file (bitcoin.conf) located in the following directory:
D:\Bitcoin\bitcoin.conf

You can open the configuration file through the Bitcoin Core GUI, go to Settings > Options > Open Configuration File.

The configuration file is a plain text file and consists of option=value entries, one per line. To edit it, you can use the pre-installed Notepad++ application, a free and open-source text and source code editor.

To learn more about the Bitcoin Core configuration file, please check bitcoin.conf Configuration File.

Bitcoin Core Configuration File bitcoin.conf

Bitnode Box comes with a custom Bitcoin Core setup as follows:

   

     - Data directory.
     datadir=D:\Bitcoin

     - Number of script verification threads.
     par=2

     - Automatically create Tor onion service (disabled).
     listenonion=0

     - Max number of outbound+inbound connections to peers.
     maxconnections=64

     - Maximum database cache size (1024 MB).
     dbcache=1024

     - Automatically prune block files to stay under the specified target size (disabled).
     prune=0

     - Assume valid blocks (disabled).
     assumevalid=0

     - Maintain a full transaction index as the blockchain syncs (enabled).
     txindex=1

     - Maintain an index of compact filters by block (enabled).
     blockfilterindex=1

     - Accept command line and JSON-RPC commands (enabled).
     server=1

     - Username and HMAC-SHA-256 hashed password for JSON-RPC connections.
     rpcauth=rpc_username:rpc_password

     - Number of threads to service RPC calls.
     rpcthreads=2

     - Enable publish raw block in address.
     zmqpubrawblock=tcp://127.0.0.1:28332

     - Enable publish raw transaction in address.
     zmqpubrawtx=tcp://127.0.0.1:28333

     - Enable publish hash transaction in address.
     zmqpubhashtx=tcp://127.0.0.1:28334

     - Enable publish hash block in address.
     zmqpubhashblock=tcp://127.0.0.1:28335

     - Output debugging information (enabled).
     debug=1

     - Exclude debugging information for a category.
     debugexclude=zmq
     debugexclude=leveldb
     debugexclude=net
     debugexclude=validation
     debugexclude=mempool

     - Start user interface minimized (disabled).
     min=0


Enabling Connections.

When Bitcoin Core starts, it automatically establishes up to 10 outbound connections to other full nodes so it can synchronize with the blockchain network, and download the latest blocks and transactions. Of the 10 outbound peers, there can be 8 full-relay connections and 2 block-relay-only ones. If you just want to use your full node as a Bitcoin wallet, you don’t need more than these 10 outbound connections. Please note that it may take a few minutes for Bitcoin Core to establish all outgoing connections with other peers.

On the other hand, if you want to support the Bitcoin Network, your full node must also allow inbound connections from other peers, thus accepting and validating transactions and blocks, then relaying them to further full nodes and lightweight clients such as SPV wallets.

Note that allowing inbound connections will expose your clearnet IP address to the public Internet. If you care about anonymity, you can connect to a virtual private network (VPN) in Windows, or by setting up a Tor hidden service through an onion address.

Your full node will only accept inbound connections once it is fully synchronized with the network. By default, Bitcoin Core allows at most 115 inbound connections. You can see all the peers you are connected to on the Node window & "Peers" tab.

Bitcoin Core GUI Outbound Peers

Bitcoin mainnet uses the TCP protocol on port 8333 as the default internal and external port, so you need port forwarding to allow incoming TCP connections on your port 8333.

Note that port forwarding does not work if your Internet Service Provider uses Carrier-Grade NAT (CGN or CG-NAT). In this case, please contact your ISP to request not to use CG-NAT. Also note that if you are running Bitcoin Core behind a corporate proxy server, you'll need to ask your network administrator to allow incoming and outgoing TCP connections on port 8333.

Home internet connections are usually filtered by an ISP router or modem. Bitcoin Core will request your router automatically configure itself to allow incoming TCP connections on port 8333. Unfortunately many routers don’t allow automatic configuration, so you have to manually configure your router as follows.

Enabling inbound connections requires three steps:

1. Assigning Bitnode Box a static (unchanging) internal IP address on your router.

In order for your home router to direct incoming port 8333 connections to your Bitnode Box, it needs to know the Bitnode Box's internal IP address on your LAN (Local Area Network). However, routers usually assign devices dynamic IP addresses that change frequently, so you need to make sure that it is always the same internal IP address by configuring the DHCP (Dynamic Host Configuration Protocol) on your router’s administration interface. To learn more, please check how to Configure DHCP Binding.

Bitcoin Core Router DHCP Binding

2. Create a port forwarding rule on your router to redirect inbound connections on port 8333 to your Bitnode Box.

For this step, you need to know the static internal IP address of Bitnode Box on your local network beforehand. You should have this information from configuring the DHCP assignment table in the subsection above.

Start by logging into your router's settings page on a web browser. Locate an entry labeled Port Forwarding, Port Assignment, Ports, or something similar. Then create a port forwarding rule by giving it a name (e.g. bitcoin core p2p), and set up both the external (WAN) port 8333 and the internal (LAN) port 8333, over TCP protocol, to the static internal IP address of your Bitnode Box. After filling in the details for the port mapping, save the entry. You should not need to restart anything.

Bitcoin Core Router Port Forwarding

3. Configuring your firewall to allow inbound connections on port 8333.

For security purposes, firewalls block unsolicited and unwanted incoming network traffic through software ports. Bitnode Box uses the Windows Defender Firewall included with the operating system. Moreover, your home router may also have a built-in firewall.

Bitnode Box comes with an inbound port rule on Windows Defender Firewall that allows incoming TCP data connections to the Bitcoin Core application (bitcoin-qt.exe) on port 8333. To learn more, please check how to Create an Inbound Port Rule.

Bitcoin Core Windows Firewall Inbound Rules

You may also need to configure your router's firewall to open port 8333/TCP. To do so, log into your router's settings page on a web browser, and locate Firewall configuration. Then create a Firewall Rule, Filtering Rule, or Access Rule, to allow incoming TCP connections on internal LAN port 8333. Finally save to add the new rule, and your router will likely reboot to apply the settings.

Testing Connections.

Once you have allowed inbound connections to port 8333, and Bitcoin Core is fully synchronized with the network, you should test whether your full node is currently accepting incoming connections from other nodes. For that purpose, there are several tools you can use.

Start by checking the status of port 8333 on your IP address, to do so visit any of these websites:

https://www.yougetsignal.com/tools/open-ports
https://portchecker.co

In case your port 8333 is closed, something went wrong with port forwarding or firewall configuration. Please re-read the steps above to see if you missed anything and follow the instructions described therein.

If you are unable to configure DHCP, port forwarding, and/or firewall rules, please refer to the manual of your home router, or contact your ISP (Internet Service Provider) for support. Note that if you are running Bitcoin Core behind a corporate proxy server, you'll need to ask your network administrator to allow incoming and outgoing TCP connections on port 8333.

Once your port 8333 is open, to test whether your full node is reachable from other nodes, start Bitcoin Core, wait 10 minutes, and then visit the Bitnodes page:

https://bitnodes.io/#join-the-network

You can also check all inbound and outbound connections in the Bitcoin Core GUI by going to the Peers tab of the Node window.

Bitcoin Core GUI Peers

Now that you’ve successfully completed enabling and testing connections, your full node is running as intended. To learn more about Bitcoin Core, please visit the project’s official websites:

https://bitcoin.org/en/full-node
https://bitcoincore.org/en/about

How to Upgrade.

If you are running an older version of Bitcoin Core, exit the application and wait until it has completely shut down (which might take a few minutes in some cases). Then download the latest release (win64) from https://bitcoincore.org/en/releases and run the installer on Windows, choosing the default options. After completing the setup, you can run Bitcoin Core as usual.

Bitcoin Core Installer


◁  Initial Setup      |      Sparrow Wallet  ▷

Back to Get Started