Difference between revisions of "Installing your own Bitcoin node"

From Bisq Wiki
Jump to navigation Jump to search
Line 16: Line 16:
 
* your daily driver machine
 
* your daily driver machine
 
** pros: no need to source additional hardware (except the additional storage if it's not enough), will likely not suffer from the limited additional overhead of a Bitcoin node while you use it normally
 
** pros: no need to source additional hardware (except the additional storage if it's not enough), will likely not suffer from the limited additional overhead of a Bitcoin node while you use it normally
** cons: you either have to leave it always turned on, to keep updated with blocks as soon as they are mined, or will have to wait a variable amount of time for it to catch up to the current block height each time you turn it on, before you can use Bisq with it
+
** cons: you either have to leave it always running, to keep updated with blocks as soon as they are mined, or will have to wait a variable amount of time for it to catch up to the current block height each time you turn it on, before you can use Bisq with it
  
 
= Installing the software =
 
= Installing the software =

Revision as of 08:10, 2 November 2023

It is best practice that any Bitcoin user installs his own node, to send and verify his own transactions; moreover, if you use Bisq consistently, you are strongly encouraged to do so, to make the bitcoin network operations much more stable, and especially reduce the risk of needing SPV resync on a wallet that contains many transactions. Even when a SPV resync is needed, it will be much painless if done while connected to your own node.

Hardware requirements

The most demanding part of a full Bitcoin node is disk space: 1TB is considered the bare minimum, and a SSD is recommended, as the constant write operations would risk damaging the average mechanical disk. There are pruned nodes that will only keep the very last blocks of the blockchain in order to save on disk space, but as Bisq needs a fully verifying node, we will only be examining this case in the present guide.

The following are viable hardware options to host the node:

  • dedicated Raspberry Pi 3
    • pros: very small, low power, completely silent
    • cons: no builtin display, keyboard nor storage, needs more initial maintenance
  • refurbished laptop with at least 8GB of RAM
    • pros: comes with display, keyboard, and basic storage (existing storage will need to be replaced or expanded), can run other services and act as a full fledged home server, has builtin UPS
    • cons: drains more power and is more expensive than a Raspberry Pi 3, takes up more space on your shelf
  • your daily driver machine
    • pros: no need to source additional hardware (except the additional storage if it's not enough), will likely not suffer from the limited additional overhead of a Bitcoin node while you use it normally
    • cons: you either have to leave it always running, to keep updated with blocks as soon as they are mined, or will have to wait a variable amount of time for it to catch up to the current block height each time you turn it on, before you can use Bisq with it

Installing the software

When installing the Bitcoin node software, you will be either working on a graphical user interface, or on a system that only operates via command line (most likely the Raspberry).

Systems with graphical interface

Unless you want to install a leaner daemon setup and follow the command-line steps below, installing directly on a graphical interface is the easier path, as you can download and verify the files as per the instructions on https://bitcoincore.org/en/download/ and then install the software as you normally would on your operating system, making sure you point it to the 1TB drive to save the blockchain.

Systems with command line interface

You may choose to run a dedicated refurbished laptop on Linux and without a desktop environment, and it would be a wise choice; regarding a Raspberry, while you could install a graphical desktop environment on a Pi 3, it is absolutely not recommended to do so, because it will be a self-contained system that will only cater to one task: running the node software. In light of this, any other additional load, like keeping the graphical interface in memory, will not help the general performance of the node.

There is a well known step-by-step guide that will illustrate how to install a full Bitcoin Node on a Raspberry, called the RaspiBolt Guide, plus its amd64/desktop counterpart, directed at laptops/PCs, called MiniBolt. They both include a section dedicated to installing software for a Lightning Network node, but you will only need to follow the guide for your system up to the configuration of the Bitcoin client.

Caveats

There have been multiple reports about the Ronin node package not allowing Bisq to connect (after the first time), and we know no tested solution for this issue, so it is recommended using the steps above to obtain the Bitcoin node software.

Common steps

No matter the path you chose above, you will have to wait a considerable amount of time after installing the node.

The initial block download will have your Bitcoin client fetch from the p2p network, and verify, all the blocks since the genesis, which will amount, at the time of writing, to 570GB of data, so expect from 2 to 10 days of uninterrupted CPU and network activity, depending on the connection (whether clearnet or Tor) and the performance of the hardware (a faster machine will complete the block verification and writing to disk in less time)

Make Bisq connect to your own Bitcoin Node

If the Bitcoin node is installed on the same machine as Bisq, the latter will automatically connect to it without the need to edit anything. Considering how Bisq will only run on amd64 architecture, you can achieve this with either your daily driver, or a dedicated laptop through direct or remote access (for example via xpra).

For the bitcoin connection on Bisq to be effective though, you will need to edit the bitcoin.conf file. If you installed the client via command line interface following the guides linked above, you will probably have a working config file already, but in case you installed the GUI client, you will have to manually edit the config file from within the settings, and make sure it contains the following:

server=1
pruned=0
peerbloomfilters=1

which in turn:

  • enable the block server mode
  • disable the pruning of old blocks
  • allow Bisq to run SPV queries on the node

Connecting to a local Bitcoin node

If you're running a Bitcoin full node on the same machine as Bisq, Bisq should connect to your node on startup—it will look for Bitcoin Core or bitcoind running on localhost on port 8333.

Just make sure to not be running any other Bitcoin-based altcoin nodes (like LTC) while starting Bisq.

Connecting to another Bitcoin node

By default, Bisq maximizes your privacy by connecting to nodes run by trusted Bisq contributors.

If you'd like to connect to another node, you can specify its address in Settings > Network Info. Bisq will validate the address and connect to the specified node the next time it starts.

Bisq supports connecting to Bitcoin nodes with Tor v3 addresses: this is the easiest path to take, since you only have to fill in your node's onion address in settings.
If your node is on your local network, connecting directly to it rather than using Tor would reduce latency by a sensible degree. In order to do this:

  • make sure the node's firewall allows incoming connections on port 8333 from the local network
  • have Bitcoin daemon listen to 0.0.0.0 rather than 127.0.0.1 (add a line that says bind 0.0.0.0)
  • uncheck "Use Tor for Bitcoin network" under Settings>Network in Bisq application
  • fill in your node's local network ipaddress:8333 in "Use custom bitcoin Core nodes" field

Explaining in detail each step of the above goes past the scope of this guide, yet you can usually find more information either by searching for specific guides, or asking on discussion boards/groups.

Troubleshooting

Most of the issues experienced by users come from trying to associate to a Ronin Dojo node, which often won't let Bisq connect a second time, if at all even the first; we are not aware of any reproducible solution to this, and suggest to use a different node distribution for Bisq.

If you get into a state where Bisq is unable to connect, you can revert to a provided node as follows.

For MacOS:

Bisq -btcNodes=emzybtc3ewh7zihpkdvuwlgxrhzcxy2p5fvjggp7ngjbxcytxvt4rjid.onion:8333 -useTorForBtc=true 

For Linux:

/opt/bisq/bin/Bisq -btcNodes=emzybtc3ewh7zihpkdvuwlgxrhzcxy2p5fvjggp7ngjbxcytxvt4rjid.onion:8333 -useTorForBtc=true 

For Windows:

C:\Users\your-username-here\AppData\Local\Bisq\Bisq.exe -btcNodes=emzybtc3ewh7zihpkdvuwlgxrhzcxy2p5fvjggp7ngjbxcytxvt4rjid.onion:8333 -useTorForBtc=true 

Contributor nodes can be seen here in the Bisq code.

More info on running from the command line.

More info on command line options.