IOTA stands out in the evolving world of decentralized digital currencies with its unique Tangle technology—an innovative alternative to traditional blockchain architectures. Unlike most cryptocurrencies, IOTA does not rely on mining or transaction fees, making it a compelling option for microtransactions and IoT (Internet of Things) integrations. Since all tokens were distributed during its initial coin offering (ICO), the network depends heavily on community-run nodes to maintain performance and decentralization.
One such initiative empowering users is CarrIOTA, a node management system that aggregates independently operated IOTA full nodes into a unified, intelligent network. By routing users to the optimal node based on geographic proximity and performance, CarrIOTA enhances reliability and speed. Additionally, it introduces a donation-based incentive model—where node operators earn IOTA tokens through community contributions, proportional to their node’s score. While not mining in the traditional sense, this mechanism rewards active participation and infrastructure support.
This guide walks you through setting up your own CarrIOTA full node on a Synology NAS using Docker, leveraging your existing always-on storage device to contribute to the IOTA ecosystem.
👉 Discover how easy it is to get started with digital asset tools today.
Why Use Synology NAS for IOTA Node Hosting?
Synology NAS devices are ideal for running persistent services like IOTA nodes. They offer:
- 24/7 uptime
- Ample storage for full node databases
- Built-in Docker support
- Low power consumption
By containerizing the IOTA IRI (IOTA Reference Implementation), Nelson, and Field components via Docker, you ensure clean deployment, easy updates, and minimal system interference.
Prerequisites
Before beginning, ensure your Synology DSM system meets these requirements:
- Docker package installed via Package Center
- At least 20 GB of free disk space (IOTA’s mainnet database is large)
- SSH access enabled
- Port forwarding configured on your router
Step 1: Prepare Directories and Preload the Database
To avoid lengthy synchronization times, we’ll preload the latest IOTA mainnet database.
Access your Synology via SSH and execute:
mkdir -p /volume1/docker/IOTA/IRI/mainnetdb/
mkdir -p /volume1/docker/IOTA/field.cli/
mkdir -p /volume1/docker/IOTA/nelson.cli/data/
cd /volume1/docker/IOTA/IRINow download and extract the pre-synced database:
curl http://db.iota.partners/IOTA.partners-mainnetdb.tar.gz -o mainnetdb.tar.gz
tar xzfv mainnetdb.tar.gz -C /volume1/docker/IOTA/IRI/mainnetdb/
rm mainnetdb.tar.gzThis step saves hours—or even days—of waiting for the node to sync from scratch.
Step 2: Configure IRI (IOTA Reference Implementation)
Create the configuration file for the IRI node:
vi /volume1/docker/IOTA/IRI/iri.iniPaste the following settings:
[IRI]
PORT = 14265
TCP_RECEIVER_PORT = 15777
UDP_RECEIVER_PORT = 14777
HEADLESS = true
DEBUG = false
TESTNET = false
DB_PATH = /iri/mainnetdb/
API_HOST = localhost
REMOTE = trueThese settings enable remote API access, define communication ports, and point to the preloaded database.
Step 3: Set Up Field.cli (CarrIOTA Client)
Field.cli connects your node to the CarrIOTA network and manages donation distribution.
Create its config:
vi /volume1/docker/IOTA/field.cli/config.iniAdd the following:
[field]
name = {your-node-name}
IRIPort = 14265
IRIHostname = localhost
seed = {your-generated-seed}
port = 21310
pow = true
disableIRI = false
customFieldId = trueReplace{your-node-name}with a unique identifier visible on CarrIOTA’s dashboard.
Generate a new IOTA seed (not used for your main wallet) at a trusted source to receive donations securely.
👉 Learn how secure wallet practices can protect your digital assets.
Step 4: Configure Nelson.cli (Neighbor Discovery)
Nelson automates peer discovery, helping your node find and maintain connections with other IRI instances.
Create the config:
vi /volume1/docker/IOTA/nelson.cli/config.iniInsert:
[nelson]
name = My nelson node
cycleInterval = 60
epochInterval = 300
apiPort = 18600
apiHostname = 0.0.0.0
port = 16600
IRIHostname = localhost
IRIProtocol = tcp
IRIPort = 14265
TCPPort = 15777
UDPPort = 14777
dataPath = /data/neighbors.db
incomingMax = 5
outgoingMax = 4
isMaster = false
silent = false
gui = false
getNeighbors = https://raw.githubusercontent.com/SemkoDev/nelson.cli/master/ENTRYNODES
neighbors[] = mainnet.deviota.com/16600
neighbors[] = mainnet2.deviota.com/16600
neighbors[] = mainnet3.deviota.com/16600
neighbors[] = iotairi.tt-tec.net/16600This configuration ensures efficient neighbor management and stable connectivity.
Step 5: Port Forwarding
For external connectivity, forward these ports on your router to your Synology NAS:
- 14777 UDP – IRI UDP receiver
- 15777 TCP – IRI TCP receiver
- 16600 TCP – Nelson communication
- 21310 TCP – Field service
Ensure your firewall allows traffic on these ports.
Step 6: Deploy Containers via Docker
Open Docker in DSM, go to Registry, and search for each image:
1. Deploy IRI Node (iotaledger/iri)
- Image:
iotaledger/iri:latest Advanced Settings:
- Enable Auto-restart
Volume Mapping:
/volume1/docker/IOTA/IRI/mainnetdb→/iri/mainnetdb/volume1/docker/IOTA/IRI/iri.ini→/iri/conf/iri.ini
- Network: Use same network as Docker Host
Apply and launch.
2. Deploy Nelson.cli (romansemko/nelson.cli)
- Image:
romansemko/nelson.cli - Environment: Add variable
NELSON_CONFIG=/config/config.ini Volumes:
/volume1/docker/IOTA/nelson.cli/config.ini→/config/config.ini/volume1/docker/IOTA/nelson.cli/data→/data
- Network: Same as host
3. Deploy Field.cli (romansemko/field.cli)
- Image:
romansemko/field.cli - Environment: Add
FIELD_CONFIG=/config/config.ini Volumes:
/volume1/docker/IOTA/field.cli/config.ini→/config/config.ini
- Network: Same as host
Step 7: Verify and Monitor
After deployment, check each container’s log in Docker to confirm:
- IRI connects to neighbors and syncs (if needed)
- Nelson discovers peers successfully
- Field registers with CarrIOTA network
Wait a few minutes, then visit field.carriota.com and search for your node by name. If listed, congratulations—you’re live!
Frequently Asked Questions (FAQ)
Q: Is running a CarrIOTA node legal?
Yes. Hosting a node involves running open-source software to support network infrastructure. It does not involve financial regulation violations as long as you comply with local laws regarding digital assets.
Q: Can I use my main IOTA wallet seed?
No. Always use a dedicated seed for Field.cli to isolate donation income from your primary funds and reduce security risks.
Q: Why is my node not appearing on CarrIOTA?
Common causes include:
- Incorrect port forwarding
- Firewall blocking incoming traffic
- Misconfigured
nameorseedin config files
Check logs in Docker for error messages.
Q: How are donations distributed?
Donations are split among active nodes based on a scoring algorithm that considers uptime, location, and network contribution. European nodes often score higher due to higher regional adoption.
Q: Does this consume a lot of bandwidth?
Typically, a CarrIOTA node uses moderate bandwidth—averaging 5–10 Mbps during peak sync or transaction periods. Regular operation is much lighter.
Q: Can I run this on a Raspberry Pi?
Yes, though syncing the full database may be slower due to limited RAM and storage speed. For better performance, NAS or VPS setups are recommended.
By contributing a node, you strengthen the IOTA network’s resilience and decentralization. Whether you're an enthusiast or developer exploring feeless transactions, hosting a full node is both technically rewarding and community-driven.
👉 Explore powerful tools to manage your crypto journey securely.