hornet

command module
v0.4.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 20, 2020 License: Apache-2.0 Imports: 19 Imported by: 0

README

HORNET - The IOTA community node

GitHub Workflow Status GitHub release (latest by date) GitHub go.mod Go version GitHub

HORNET is a lightweight alternative to IOTA's fullnode software “IRI”. The main advantage is that it compiles to native code and does not need a Java Virtual Machine, which considerably decreases the amount of needed resources while significantly increasing the performance. This way, HORNET is easier to install and runs on low-end devices.


Notes
  • Currently HORNET is only released for testing purposes. Don't use it for wallet transfers (except testing with small amounts).
  • Please open a new issue if you detect an error or crash (or submit a PR if you have already fixed it).
  • The issue section is not a support section, if you have questions about HORNET please post them in the #hornet channel (official iota discord server).

Documentation

Please have a look into our HORNET wiki

Autopeering

The autopeering plugin is still in an early state. We recommend to add 1-2 static neighbors as well if you want to run a reliable node. If you want to disable autopeering, you can do so by adding it to the disablePlugins in your config.json:

"node": {
    "disablePlugins": ["Autopeering"],
    "enablePlugins": []
  },
Contributing
Run HORNET
  • Download the latest release for your system (e.g. HORNET-x.x.x_Linux_ARM.tar.gz for the Raspberry Pi 3B)
  • Extract the files in a folder of your choice
  • Add neighbors to the neighbors.json file (optional)
  • Download the latest HORNET snapshot from https://ls.manapotion.io
  • Run HORNET: ./hornet -c config

Available plugins
TangleMonitor
  • Download the latest TangleMonitor source code
git clone https://github.com/unioproject/tanglemonitor.git
  • Modify the config.json to fit your needs
    • "tanglemonitorpath" has to point to the frontend folder of the TangleMonitor source code
    • Add "Monitor" to "enableplugins"
    • Change "webBindAddress" to "0.0.0.0:4434" and "apiBindAddress" to "0.0.0.0:4433" if you want to access TangleMonitor from anywhere
  "monitor": {
    "tangleMonitorPath": "tanglemonitor/frontend",
    "domain": "",
    "initialTransactionsCount": 15000,
    "remoteApiPort": 4433,
    "webBindAddress": "localhost:4434",
    "apiBindAddress": "localhost:4433",
    "websocket": {
      "uri": ""
    }
  },
  "node": {
    "disableplugins": [],
    "enableplugins": ["Monitor"],
    "loglevel": 127
  },
IOTA Tangle Visualiser
  • Download the latest IOTA Tangle Visualiser and socket.io source code
git clone https://github.com/glumb/IOTAtangle.git
  • Modify the config.json to fit your needs
    • "webrootPath" has to point to the frontend folder of the IOTA Tangle Visualiser source code
    • Add "Graph" to "enableplugins"
    • Change "bindAddress" to "0.0.0.0:8083" if you want to access IOTA Tangle Visualiser from anywhere
  "graph": {
    "webRootPath": "IOTAtangle/webroot",
    "domain": "",
    "webSocket": {
      "uri": ""
    },
    "bindAddress": "localhost:8083",
    "networkName": "meets HORNET"
  },
  "node": {
    "disableplugins": [],
    "enableplugins": ["Graph"],
    "loglevel": 127
  },
MQTT Broker
  • Modify the mqtt_config.json to fit your needs
    • Change "host" to "0.0.0.0" if you want to access MQTT from anywhere
    • Change "port" to "" and "tlsPort" to a port number if you want to use TLS (you also need certificate files)
{
  ...
  "port": "1883",
  "host": "127.0.0.1",
  ...
  "tlsPort": "",
  "tlsHost": "",
  "tlsInfo": {
    "verify": false,
    "caFile": "tls/ca/cacert.pem",
    "certFile": "tls/server/cert.pem",
    "keyFile": "tls/server/key.pem"
  },
  "plugins": {}
}
  • Modify the config.json
    • Add "MQTT" to "enableplugins"
  "node": {
    "disableplugins": [],
    "enableplugins": ["MQTT"],
    "loglevel": 127
  },
Spammer
  • Modify the config.json to fit your needs
    • Change "address", "message" and "tag"
    • "tpsratelimit" defines how many transactions (TX) the spammer should try to send (e.g. 0.1 stands for 0.1 TX per second --> 1 TX every 10 seconds. NOTE: the maximum "tpsratelimit" is limited by your used hardware.
    • Add "Spammer" to "enableplugins"
  "spammer": {
    "address": "HORNET99INTEGRATED99SPAMMER999999999999999999999999999999999999999999999999999999",
    "depth": 3,
    "message": "Spamming with HORNET tipselect",
    "tag": "HORNET99INTEGRATED99SPAMMER",
    "tpsratelimit": 0.1,
    "workers": 1
  },
  "node": {
    "disableplugins": [],
    "enableplugins": ["Spammer"],
    "loglevel": 127
  },

Docker

Docker Pulls

Pull HORNET from Docker Hub

Build a Docker image

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
packages
dag
plugins
cli
spa
You can use the "packr clean" command to clean up this, and any other packr generated files.
You can use the "packr clean" command to clean up this, and any other packr generated files.
spa/packrd
You can use the "packr2 clean" command to clean up this, and any other packr generated files.
You can use the "packr2 clean" command to clean up this, and any other packr generated files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL