Factom Protocol Docs
  • Welcome Developers
  • Protocol Overview
  • Getting Started
    • Installing Factom
    • Developer Sandbox
    • Hello-World Examples
      • Golang
      • JavaScript
      • Python
    • API Reference
      • Factomd
      • Factom-walletd
      • Debug
    • CLI Reference
      • Run Factom Federation
      • Common Tasks
      • Factom CLI Commands
    • Data Structures
      • Building blocks
      • User elements
      • Block types
    • SDKs
      • Open Source SDKs
      • Commercial SDKs
    • Testnet
      • Installation
      • Node monitoring
      • Maintenance
      • Interacting with Factom blockchain
      • Faucet
      • Frequently Asked Questions (FAQ)
      • Useful links
  • Infrastructure
    • Control Panel
    • Explorer
      • Overview
      • Block types
      • Usage
    • Open Node
  • Technologies
    • FAT Tokenization
    • Voting Protocols
  • Protocol development
    • Factom Improvement Proposals
    • Hacking Factom
  • Wallets
    • Ledger Nano S Wallet
    • Enterprise Wallet
      • Install
      • Create FCT Address
      • Send and Receive FCT
      • Backup Wallet
      • Restore From a Backup Seed
      • Importing/Exporting your private key(s)
      • Select Your Factomd Node
      • Upgrade to a Secure Wallet
    • FAT Wallet
    • MyFactomWallet
    • Paper Wallet
  • Authority Node Operators
    • ANO Guides & Tutorials
      • Getting started
      • Generating your server identity
      • Setting the coinbase address and node efficiency
      • Joining the docker swarm
      • Securing your node with SSH and iptables
      • Updating and brainswapping your node
    • ANO Tools and Resources
Powered by GitBook
On this page
  • Minimum system requirements
  • Setting up a factomd node
  • The Docker way
  • Setting up the wallet daemon

Was this helpful?

  1. Authority Node Operators
  2. ANO Guides & Tutorials

Getting started

PreviousANO Guides & TutorialsNextGenerating your server identity

Last updated 5 years ago

Was this helpful?

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:

wget https://github.com/FactomProject/distribution/releases/download/v6.5.0/factom-amd64.deb

After the download is finished, install the package:

sudo dpkg -i factom-amd64.deb

Once installation is complete you have access to the Factom daemon, wallet daemon and the Factom CLI.

To start the Factom daemon simply run:

factomd

You also have access to the wallet daemon and CLI tools:

factom-walletd
factom-cli

The Docker way

sudo usermod -aG docker <username>

Create the Factomd volumes:

docker volume create factom_keys
docker volume create factom_database

Place the factomd.conf in the correct folder:

wget https://raw.githubusercontent.com/FactomProject/factomd/master/factomd.conf
sudo cp factomd.conf /var/lib/docker/volumes/factom_keys/_data/factomd.conf

Run factomd in Docker:

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

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
[Unit]
Description=Run the Factom Wallet service
Documentation=https://github.com/FactomProject/factom-walletd
After=network-online.target

[Service]
User=<username>
Group=<username>
EnvironmentFile=-/etc/default/factom-walletd
ExecStart=/usr/bin/factom-walletd $FACTOM_WALLETD_OPTS
KillMode=control-group
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable factom-walletd
sudo systemctl start factom-walletd

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.

The version in the above command may be outdated, be sure to check what the is.

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 . Make sure to allow your non-root user to use Docker:

The version in the above command may be outdated, be sure to check what the is.

latest release
the official Docker guides
latest release