Getting started
This tutorial is fully covered in the video shown above.
In this tutorial you will learn how to setup:
  • A full factomd node with a wallet daemon
  • Factom-cli
  • Docker
You need these to be able to get started with interacting with the Factom Blockchain. This tutorial is relevant for both mainnet and testnet and assumes that you've already setup an updated latest LTS version of Ubuntu. Minimum specifications for a node is listed below.

Minimum system requirements

  • A modern CPU
  • 16 GB RAM
  • At least 50 GB storage
  • 20 Mbit/s synchronous
  • Up to 1TB / month data transfer
  • Static IP-address
The specifications are subject to change at any time as the network matures.

Setting up a factomd node

Setting up a factomd node is very easy, download the latest release by running the following:
1
wget https://github.com/FactomProject/distribution/releases/download/v6.5.0/factom-amd64.deb
Copied!
The version in the above command may be outdated, be sure to check what the latest release is.
After the download is finished, install the package:
1
sudo dpkg -i factom-amd64.deb
Copied!
Once installation is complete you have access to the Factom daemon, wallet daemon and the Factom CLI.
To start the Factom daemon simply run:
1
factomd
Copied!
You also have access to the wallet daemon and CLI tools:
1
factom-walletd
2
factom-cli
Copied!

The Docker way

You can use the above deb package to interact with the protocol and complete the tutorial, but as an ANO your Factom daemon will run within a Docker container. Install Docker by following the official Docker guides. Make sure to allow your non-root user to use Docker:
1
sudo usermod -aG docker <username>
Copied!
Create the Factomd volumes:
1
docker volume create factom_keys
2
docker volume create factom_database
Copied!
Place the factomd.conf in the correct folder:
1
wget https://raw.githubusercontent.com/FactomProject/factomd/master/factomd.conf
2
sudo cp factomd.conf /var/lib/docker/volumes/factom_keys/_data/factomd.conf
Copied!
Run factomd in Docker:
1
docker run -d --name "factomd" -v "factom_database:/root/.factom/m2" -v "factom_keys:/root/.factom/private" -p "8088:8088" -p "8090:8090" -p "8108:8108" -l "name=factomd" factominc/factomd:v6.5.0-alpine -startdelay=600 -faulttimeout=120 -config=/root/.factom/private/factomd.conf
Copied!
The version in the above command may be outdated, be sure to check what the latest release is.

Setting up the wallet daemon

Now we want a wallet daemon running. You can easily just run factom-walletd above, but you might want to run it as a system service:
/etc/systemd/system/factom-walletd.service
1
[Unit]
2
Description=Run the Factom Wallet service
3
Documentation=https://github.com/FactomProject/factom-walletd
4
After=network-online.target
5
6
[Service]
7
User=<username>
8
Group=<username>
9
EnvironmentFile=-/etc/default/factom-walletd
10
ExecStart=/usr/bin/factom-walletd $FACTOM_WALLETD_OPTS
11
KillMode=control-group
12
Restart=on-failure
13
14
[Install]
15
WantedBy=multi-user.target
Copied!
1
sudo systemctl daemon-reload
2
sudo systemctl enable factom-walletd
3
sudo systemctl start factom-walletd
Copied!
Congratulations, you now have a basic Factom daemon running in a docker container. You should be able to use this to complete the rest of the tutorial.