Git Product home page Git Product logo

iota-node's Introduction

IOTA-node

A CLI and TUI to install and manage a full IOTA node

Description

There are a lot of tutorials like this one or this one. The problem with this tutorials is that they take quite some time and they aren't easy to follow for people who are new to a Linux environement.

The purpose of this script is to automate the installation of an IOTA full node. It takes care of installing the IRI, chosing the parameters, installing extra packages such as Nelson and IOTA-PM, managing your neighbors, get information about your node and more.

alt text

alt text

alt text

More screenshots can be found in this album.

Prerequisites

  • Java 8 or higher (sudo apt install default-jre)
  • curl (sudo apt install curl)
  • dig (sudo apt install dnsutils)
  • NPM (if you want to install extra packages) (sudo apt install nodejs && sudo apt install npm)

Installation and usage

Run the following command in your terminal:

curl -L -s $(curl -s https://api.github.com/repos/nazarimilad/iota-node/releases/latest | grep browser_download_url | cut -d '"' -f 4 ) --output iota-node.sh && sudo bash iota-node.sh

After restarting your terminal, you can run iota-node from everywhere: sudo iota-node <option>

Options

The script currently supports the following options:

One-letter options:

  • -a address : add a neighbor specified by its address
  • -I : get your public IP address
  • -n : get information about your own node
  • -N : get information about your neighbors
  • -r : remove all of your neighbors
  • -s : get the status of the IRI daemon
  • -t : get the TCP address of your node
  • -u : restart IOTA-node
  • -U : get the UDP address of your node
  • -x : start iota-node
  • -X : stop iota-node

Full word options:

  • --add-neighbor=address : add a neighbor specified by its address
  • --get-neighbors : get information about your neighbors
  • --get-node-info : get information about your own node
  • --get-ip-address : get your public IP address
  • --get-status : get the status of the IRI daemon
  • --get-tcp-address : get the TCP address of your node
  • --get-udp-address : get the UDP address of your node
  • --remove-neighbors : remove all of your neighbors
  • --start : start IOTA-node
  • --stop : stop IOTA-node
  • --update : restart IOTA-node
  • --upgrade : upgrade IOTA-node
  • --uninstall : uninstall IOTA-node

Code structure

The first section contains the global variables and script settings.

The second sections consists of the procedures and methodes.

And finally the third block contains the "main method".

TODO

  • Add an option to install iota-pm during the installation of the node and integrate it in the iota-node daemon
  • Add port input safety check
  • Add a TUI
  • Add Nelson integration and upgrade option
  • Add neighbor address input safety check
  • Make it possible, With upgrade, to also upgrade the extra packages
  • Make an equivalent powershell script

Any issue or pull request is welcome.

Donations (IOTA-address):

MCVMFBGRJRHMOMFKMTJCIKWSLVQOUASOIHLVHXMVFDPTJYDPUTWITJASHWBDFNRQTYVZIEVYIRYMRSFM9CVDPLSYY9

iota-node's People

Contributors

nazarimilad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

iota-node's Issues

suggestions

Love the script. A couple suggestions:

  • Add a menu item to completely reinstall iota-node.sh from scratch.
  • Set reasonable numbers in nelson.ini for incomingMax and outgoingMax during install, maybe based on machine's RAM. Default settings for me led to a max of 3 neighbors which would completely drop off every couple minutes. I upped the numbers to 20 each and have been staying between 6 and 12 neighbors. I have 16GB of RAM and am still not sure what optimal settings would be.
  • If possible (I'm not sure it is) add a menu item to force-sync IRI. I'm not sure how that works.

iota-pm potentially given invalid startup parameters

I have noticed that after installing my iota-pm service failed to startup. After inspection I saw that it's startup parameters are -i http://127.0.0.1:14265 -p 0.0.0.0:8888. However the protocol definition at the first parameter causes various issues, starting this service with -i 127.0.0.1:14265 -p 0.0.0.0:8888 works fine.

This issue might be specific to my setup on ubuntu server 16.04.3

invalid arithmetic operator / unbound variable

When i run the script:
โ–ถ ./iota-node.sh

The dialog opens, and I agree to install. It exits and I get the following errors:
./iota-node.sh: line 11: 7.6+1: syntax error: invalid arithmetic operator (error token is ".6+1")
./iota-node.sh: line 340: AMOUNT_OF_RAM: unbound variable

System Info:
OS: CentOS Linux 7 (Core) x86_64
Kernel: 3.10.0-862.2.3.el7.x86_64
CPU: QEMU Virtual version 1.5.3 (2) @ 2.
GPU: Cirrus Logic GD 5446
Memory: 363MiB / 7822MiB

Adding, and getting info on neighbors

when adding a neighbor, i get the following error
./iota-node.sh: line 11: 7.6+1: syntax error: invalid arithmetic operator (error token is ".6+1")

the ncurses screen pops back up and says the neighbor was added.

When i go to get info on my neighbors to confirm that it worked, the script quits and i get:
./iota-node.sh: line 11: 7.6+1: syntax error: invalid arithmetic operator (error token is ".6+1")
No JSON object could be decoded

only recognized 1GB Ram out of 16 when installing

Hi,

Second time I'm installing. This time it gave me a warning about only having 1GB RAM availalble, though this machine has 16GB. 'free' shows me:

          total        used        free      shared  buff/cache   available

Mem: 16340368 3523268 10888220 183040 1928880 12278872
Swap: 4106748 0 4106748

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.