If you used a version of this file prior of the 1st january 2018 please move all iota/nelson
folders/files to ./volumes/
before starting the docker-compose file!
This repository contains the docker-compose file to get started with an IOTA/IRI node enhanced through Nelson.cli, Nelson.gui and Nelson.mon from the CarrIOTA project.
It also includes a Grafana Dashboard enhanced through Prometheus.
These instructions will get you a copy of iri - the iota node with nelson up and running on your local machine using docker and docker-compose.
It is expected that you have already installed docker, docker-compose and know how to start and use it. Knowledge about your operating system (Windows, Linux, MacOS).
git clone https://github.com/ioiobzit/iota-nelson-node.git
Edit the ./volumes/nelson/config.ini
file to match your needs, for example the name
[nelson]
name = CHANGE ME!
to
[nelson]
name = My awesome node
Enter the iota-nelson-node folder
cd iota-nelson-node
Run it with:
docker-compose up -d
Check the IRI logs with
docker logs iota
Check the Nelson logs with
docker logs nelson.cli
Open your browser to
http://DockerHostIP:5000/DockerHostIP/18600
Open your browser to
http://DockerHostIP:3000
For the Grafana Dashboard to work, first we have to fix Prometheus. See the documentation here.
Please go to ./volumes/prometheus
and execute the following command
sudo chown nobody. data
Restart the Prometheus container
docker-compose restart prometheus
Open your browser to
http://DockerHostIP:8000
Log in with:
Username: admin
Password: admin
and open the IOTA Dashboard
PLEASE CHANGE YOUR ADMIN PASSWORD
Go to your iota-nelson-node folder and update the docker images
cd iota-nelson-node
docker-compose pull
docker rm iota
docker rm nelson.cli
Run it with:
docker-compose up -d
The iota.ini contains three swarm nodes, this nodes will add you back automatically.
If you have other trusted nodes (e.g. you connected through slack or other trusted sources) be sure to adapt your ./volumes/iota/iota.ini
and ./volumes/nelson/config.ini
accordingly.
Be aware that the ideal and maximum number of nodes so far is 7, no more, no less.
Come-from-Beyond @here To ease the syncing issue reduce number of your neighbors. 7 should be the hard cap even if it's your mother asking to add her as the 8th neighbor. Use 3 neighbors if you are sure that they won't remove you without informing, use 5 if you are not sure in that. Thread in #nodesharingDec 4th at 9:54 AM
e.g. Your node is connected to 4 trusted IRI/IOTA nodes. The NEIGHBORS
option in ./volumes/iota/iota.ini
will look something like this:
NEIGHBORS = udp://host1:41041 tcp://host2:15600 udp://host3:14600 tcp://host4:15600
Then be sure to adapt the outgoingMax
option in ./volumes/nelson/config.ini
to 3 to get a maximum of 7 nodes
outgoingMax = 3
As soon as the IRI/IOTA node is fully syncrhonized, please remove the swarm nodes udp://88.99.249.250:41041 udp://94.156.128.15:14600 udp://185.181.8.149:14600
from your ./volumes/iota/iota.ini
and without stopping your node with curl:
curl http://DockerHostIP:14265 \
-X POST \
-H 'Content-Type: application/json' \
-H 'X-IOTA-API-Version: 1' \
-d '{"command": "removeNeighbors", "uris": ["udp://88.99.249.250:41041", "udp://94.156.128.15:14600", "udp://185.181.8.149:14600"]}'
and adapt your ./volumes/nelson/config.ini
accordingly to the number of trusted nodes in the ./volumes/iota/iota.ini
config.
The ports setup in the docker-compose.yml file opens following container ports
Port/Type | Use |
---|---|
14265 | IOTA/IRI API port |
14600/udp | IOTA/IRI UDP connection port |
15600/tcp | IOTA/IRI TCP connection port |
16600 | Nelson connection port |
18600 | Nelson API port |
3000 | Nelson Monitor |
5000 | Nelson GUI |
9090 | Prometheus |
9100 | Node Exporter |
9311 | IOTA Prometheus Export as of export default ports |
8000 | Grafana Dashboard |
Please assure yourself to set your firewall accordingly, the ports are opened on 0.0.0.0 (all IP adresses, internal and external)
Please refer to the IRI - IOTA Node, CarrIOTA Nelson client, CarrIOTA Nelson GUI or CarrIOTA Nelson monitor projects for more information about the configuration files and further information about the node usage. Please refer to IOTA prometheus exporter for more information about the dashboard and alerts.
- Antonio Nardella - (https://github.com/ioiobzit)
This project is licensed under the ICS License - see the LICENSE.md file for details
Donations always welcome:
IOTA:
CHQAYWPQUGQ9GANEWISFH99XBMTZAMHFFMPHWCLUZPFKJTFDFIJXFWCBISUTVGSNW9JI9QCOAHUHFUQC9SYVFXDQ9D
BTC:
1BFgqtMC2nfRxPRge5Db3gkYK7kDwWRF79