Skip to main content

Full Node Configuration

The IOTA full node configuration file is a YAML file named fullnode.yaml, located in your iota install folder (if you used docker) or in /opt/iota/config (if you used systemd).

You can modify it to configure your IOTA node.

To simplify the setup process, you can use the default configuration file:

---
# Database Configuration
# Important: update this value to the location you want IOTA to store its database
db-path: "/opt/iota/db"

# Genesis Configuration
# Important: update these to the location where the genesis and migration files are stored
genesis:
genesis-file-location: "/opt/iota/config/genesis.blob"
migration-tx-data-path: "/opt/iota/config/migration.blob"

# Pruning Configuration (see https://docs.iota.org/operator/full-node/configs/pruning)
authority-store-pruning-config:
# Use 18446744073709551615 to disable object versions pruning
num-epochs-to-retain: 1
# Use 18446744073709551615 to disable transaction pruning
num-epochs-to-retain-for-checkpoints: 2

# Network Configuration
# This address is also used for web socket connections
json-rpc-address: "0.0.0.0:9000"
p2p-config:
listen-address: "0.0.0.0:8084"
external-address: /dns/$HOSTNAME/udp/8084 # Important: update this to your external DNS address
seed-peers:
- address: /dns/access-0.r.mainnet.iota.cafe/udp/8084
peer-id: 66b55de43e925417761f3c66cd734451b5876e1496b961052095bdd8a7732189
- address: /dns/access-1.r.mainnet.iota.cafe/udp/8084
peer-id: 7f8dc46616df5b5640ffd118c6ef640b3f7f5cae8a2bedfa700769e12150a197
- address: /dns/access-2.r.mainnet.iota.cafe/udp/8084
peer-id: c9fbf6fb511fc5243989c7a455d36f277844288b1a1d8453331c200b6ac4d99f
- address: /dns/access-3.r.mainnet.iota.cafe/udp/8084
peer-id: 2c1e05e9bddaf505b70184baf21a188a7c270b1b58f38d55e3aea42d067c5fb6

# State Sync Archive Fallback
state-archive-read-config:
- object-store-config:
object-store: "S3"
aws-endpoint: "https://archive.mainnet.iota.cafe"
aws-virtual-hosted-style-request: true
object-store-connection-limit: 20
no-sign-request: true
concurrency: 5
use-for-pruning-watermark: false
info

If you used the installer script, it will have generated that config file for you, with default ports, archive and pruning settings, and also covers peering configuration for the selected network.

Customize your node's configuration

Networking

To synchronize the state, the node needs to establish connections with other nodes that have already joined the network.
Ensure that port 8084 is open and set up an external address for node discovery.

See more useful ports and network configuration options here

Storage and pruning (optional)

To keep disk usage in check or save storage space, you can:

  • prune old transaction data (transactions, effects, events, checkpoints)
  • prune old object versions
  • turn off the built-in blockchain indexer

Learn how to choose and set pruning settings here.

Archival (optional)

If the peers your node syncs with have already pruned data your node needs, your node can fallback onto using archives (files containing historical data).
Learn how to configure archive settings for your node here.

Snapshots (optional)

If your node fails, it can catch up faster from a recent database snapshot (on restart) than replaying all past transactions since genesis. Learn how to configure formal and RocksDB snapshots here.

Data storage paths (optional)

To set paths for data files, change these values in fullnode.yaml:

# Set a custom path for storing the node's database
db-path: "/db-files/iota-fullnode"

# Set a custom path to the genesis blob
genesis:
genesis-file-location: "/iota-fullnode/genesis.blob"

# Set a custom path for the migration blob
migration-tx-data-path: "/opt/iota/config/migration.blob"

Restart your node after making changes

After changing any of the node's settings, restart your node using:

sudo systemctl restart iota-node