Run a Full Node
A full node receives all published transactions and tokenchain details from the network. This guide walks you through setting up a full node.
Prerequisites
Before proceeding, make sure you have:
- Installed the Rubix binaries (see Install Rubix)
- Docker installed (see Install Docker in the install guide)
- Completed the basic Run Rubix Locally flow at least once
The setup flow for a full node is the same as a regular node, with one extra flag at the end.
1. Init Config
./rubixgoplatform init -p fullnode0
Edit the generated config.toml inside the fullnode0/ directory:
[core]
node_index = 0
network_mode = "testnet"
enable_trusted_network = false
[db]
host = "localhost"
username = "rubix"
password = "rubixpass"
db_name = "rubix"
Set network_mode to "testnet" or "mainnet" depending on which network the full node should operate on.
For the full config.toml field reference, see the Configuration Reference in Run Rubix Locally.
2. Setup Postgres
Run Postgres in Docker. Match the host port to your node_index (formula: 5433 + node_index):
docker run --name fullnode-postgres \
-e POSTGRES_PASSWORD=rubixpass \
-e POSTGRES_USER=rubix \
-e POSTGRES_DB=rubix \
-p 5433:5432 \
-v fullnode-pgdata:/var/lib/postgresql \
--restart always \
-d postgres
The POSTGRES_USER, POSTGRES_PASSWORD, and POSTGRES_DB values must match the [db] section of your config.toml.
3. Run the Full Node
Start your node with the -fullnode flag:
./rubixgoplatform run -p fullnode0 -fullnode
Flags:
| Flag | Description |
|---|---|
-p | Path to the node directory (where config.toml lives). |
-fullnode | Run the node as a full node - subscribes to all published transactions and tokenchain details. |
-defaultSetup | (Optional) Add default faucet quorums for testing. |
Troubleshooting
Postgres container won't start
Check if another container is already using the host port:
docker ps -a
Stop the conflicting container, or assign a different node_index (which shifts the expected Postgres port).
Connection refused from Rubix to Postgres
- Verify the container is running:
docker ps - Verify the host port matches
(5433 + node_index) - Verify the credentials in
config.tomlmatch thedocker runenvironment variables