Skip to main content

Install core (full node) with Docker

Goal

This article will guide you to install Hathor core with Docker.

Hathor core is the official and reference client for operating a full node in Hathor Network.

Requirements

Requirements for operating Hathor core.

Hardware

For production environment:

  • CPU: 2 vCPU
  • Memory: 16 GB
  • Disk: 20 GB
  • Bandwidth: 10 Gbps

Reference machine: AWS EC2 type r6g.large

Software

Platform: Docker \ge v25.0.1

Step-by-step

  1. Set up the environment.
  2. Start the containerized application.

Step 1: set up the environment

  1. Start a shell session.
  2. Change the working directory to where you want to store the application — mostly the database.
  3. Create the directory data, to store the application database (mainly the blockchain).

Step 2: start the containerized application

Start the docker container, replacing the <absolute_path_hathor_full_node> placeholder with the absolute path of the (current) working directory (parent of data):

docker run \
-it -p 8080:8080 -v <absolute_path_hathor_full_node>/data:/data \
hathornetwork/hathor-core \
run_node --status 8080 --testnet --data /data --wallet-index

-v maps the location <absolute_path_hathor_full_node>/data of the host file system onto /data of the container. --data defines that the application database will be stored into the directory /data of the container.

The previous command will launch a container based on the image tagged as latest, originated from the hathornetwork/hathor-core repository at Docker Hub, and available in your Docker local environment. If there is no image available from this source, it automatically pulls the latest one.

Your Hathor full node will connect to other peers of Hathor Network testnet and will start syncing its database with theirs — i.e., all blocks and transactions ever recorded in Hathor blockchain testnet.

Task completed

In the browser, you can use the URL http://localhost:8080/v1a/status/ to monitor the status of your full node.

You now have a running instance of Hathor full node in Hathor Network testnet, that will listen to API requests at port 8080. Note that your full node cannot receive API requests or participate in network consensus while it is not synced with its peers. Syncing is an ongoing process that is part of the operations of a full node. However, reaching synchronization with Hathor Network starting from an empty database (from genesis block) takes on average 10 hours for testnet and 24 hours for mainnet. If you want to expedite this process, see How to bootstrap from a snapshot.

Finally, here we used the minimal configuration to have an operational full node. For a custom setup, see Hathor full node configuration.

What's next?