One way to start using Bitcoin for transactions is to use a full node with a mobile wallet. One of the best tools that you can use is Dojo with Samourai Wallet.

How Does Bitcoin Work?

At its core, Bitcoin is a distributed database that keeps track of records in an immutable way. It creates a system that does three things:

Every new entry in the database depends on the previous one, creating a historical chain of events that links all of the entries to each other.Adding a new entry requires you to do a certain amount of work to ensure that anyone who attempts to forge an entry needs to redo that work as well as any work done after it.Every full node in the network gets a copy of the database and follows a simple set of rules that, in turn, allows every participant to agree on the correct version of history.

These characteristics of Bitcoin ensure that every new entry in the system is just as secure as the previous one. Its decentralized nature also allows it to run without any central authority. This makes Bitcoin incredibly useful for individuals who want to transact privately without any third parties.

Why Use a Bitcoin Full Node?

A Bitcoin full node is software that allows you to become an independent participant in the Bitcoin network. It provides you with an exact copy of the network’s transaction history and allows you to do a number of things not possible from a normal Bitcoin wallet. For example, having the entire transaction history allows a full node to verify any incoming transaction by itself. This can be especially helpful for users who accept Bitcoin for their business. Running a full node also allows you to become an archive for the Bitcoin network. Other users who want to have their own full node can then use yours as a starting point. Lastly, using a full node also removes the need for external servers whenever you check and broadcast new transactions. This can be useful for users who want to have security and privacy while using Bitcoin. One of the easiest ways to use a full node is to install Dojo.

What Is Dojo?

Dojo is a powerful software suite that allows you to easily create and deploy a secure Bitcoin node. It also aims to maintain a high degree of security through the use of several privacy-enhancing add-ons as well as Tor. It’s important to note that the actual installation of Dojo can be both a resource-intensive and time-consuming process, even though the installation steps are easy. This is mainly because getting the history of Bitcoin transactions requires your computer to verify every entry that it receives. For example, my Core 2 Duo machine from 2011 took five days to fully synchronize with the network. Further, it is also a good practice to make sure that your computer can store all of the data. For the most part, a 1TB drive should be enough to store the entire history as well as leave space for new ones. This tutorial focuses on installing Dojo on a Ubuntu 22.04 machine. While most of the commands should work for any Linux distribution, the names of the packages as well as programs may vary.

Preparation for Dojo Installation in Ubuntu Linux

To get started, first create a new user account in the system: This separates any configuration and program that Dojo will run from your user account. A separate account will also reduce the chance for user errors to affect Dojo. Once done, you can switch to the Dojo user by running: su dojo, then start installing some distribution-specific dependencies: Next, include the repository for Docker and Docker Compose. Download and import the primary signing key for Docker releases: Add the Docker repository: Install Docker: Finally, install docker-compose: Start downloading Dojo to your machine: Extract all the Dojo files to your machine:

Configuring Dojo’s Secret Keys

Open the file “docker-bitcoind.conf.tpl” in the dojo folder: The variables that need editing are BITCOIN_RPC_USER= and BITCOIN_RPC_PASSWORD=. Dojo uses these to connect to other remote wallets:

Modifying the Dojo Database

The next file that needs to be edited is “docker-mysql.conf.tpl.” It holds all the information that is not directly related to your full node: Edit three variable in this configuration file: MYSQL_ROOT_PASSWORD=, MYSQL_USER= and MYSQL_PASSWORD=:

Modifying the NodeJS Configuration

The next file to edit is “docker-node.conf.tpl.” It controls the Dojo frontend instance and serves as the glue that combines the full node, MySQL and all the extra features that Dojo uses: Inside this file, edit the following variables: NODE_API_KEY=, NODE_ADMIN_KEY= and NODE_JWT_SECRET=.

NODE_API_KEY serves as the primary secret key for your Dojo’s REST API. This value will allow other services to easily communicate with Dojo when necessary.NODE_ADMIN_KEY is the primary password for your Dojo instance. You will type this whenever you want to access your Dojo’s configuration panel.NODE_JWT_SECRET serves as the primary salt for your Dojo’s Web Token system and is the value that ensure there is a strong encryption for every Dojo session.

Configuring the Bitcoin Block Explorer

Lastly, you need to edit the “docker-explorer.conf.tpl” file. It controls the internal block explorer for Dojo: Edit two variables in this configuration file: EXPLORER_INSTALL= and EXPLORER_KEY=. The first tells Dojo that you want to install the block explorer, while the second serves as the password for the application.

Installing the Dojo Bitcoin Node in Ubuntu

Next, start the Dojo installation script by running the following command: The installation script will download all the necessary tools that it needs to build Dojo’s docker container, then start a compilation process where it will build both the tools and programs that it needs. The script will start the Dojo executable and immediately synchronize with the Bitcoin network and will indicate this with a difference in layout and color of the terminal. Press Ctrl + C to fork the process to the background.

Checking on Dojo’s Sync Progress

As discussed above, synchronizing with the Bitcoin network can take from a few hours to a few days. It is important to keep track of the node’s progress and look for any potential issues during the sync. There are two ways to check Dojo’s progress. First, use the “dojo.sh” file to generate a running log of the server. It’s especially useful if you want a quick way to look at the server’s progress. For example, running this command will display all the logs related to the Bitcoin full node: It is also possible to check Dojo progress through its dedicated web portal. However, you need to make sure your computer has a copy of the Tor browser to run the following command to print all of the onion addresses that Dojo uses: Next, you need to copy and load the address for the “Dojo API and Maintenance Tool” through the Tor browser to load a small prompt where you can type the admin key that you added earlier. Dojo will display a brief summary of your node as well as the various states of its services, which is helpful if you want a more comprehensive look at your Dojo instance.

Pairing Samourai Wallet With Dojo

Once your Dojo node is properly synchronized with the Bitcoin network, you can pair your mobile wallet to it. By default, the Dojo full node works well with Samourai Wallet for Android. Congratulations! You have setup your own Bitcoin full node through Dojo. Image credit: Fernando Hernandez via Unsplash To fix this, remove every instance of Docker and reinstall it with only one version. It is important to make sure that your computer has the sufficient resources to synchronize and manage a Bitcoin node. Your machine should have at least 1TB of space and 8GB of RAM to comfortably synchronize with the Bitcoin network.