Skip to main content

Getting Started

HORNET Node getting started

Running a node is an efficient way to use IOTA or Shimmer. By doing so, you have direct access to the Tangle instead of having to connect to and trust someone else's node. Additionally, you help the network to become more distributed and resilient.

The node software is the backbone of the network. For an overview of tasks a node is responsible for, please see our Node 101 section.

To make sure that your device meets the minimum security requirements for running a node, please see our Security 101 section.

note

Make sure you install HORNET v2.0.0+ since it is the minimum version that targets the Stardust upgrade.

To handle a potential high rate of blocks per second, nodes need enough computational power to run reliably, and should have the minimum specs:

  • 4 cores or 4 vCPU.
  • 8 GB RAM.
  • SSD storage.
  • A public IP address.

The amount of storage you need will depend on whether and how often you plan on pruningProcess of removing or discarding unnecessary data (such as blocks and transactions) from the node database.The primary purpose of pruning is to reduce the storage requirements of a blockchain system while retaining essential information for its operation. Normally the removed data is already finalized. old data from your local database.

HORNET exposes different functionality on different ports:

  • 15600 TCP - Gossip protocol port.
  • 14626 UDP - Autopeering port (optional).
  • 14265 TCP - REST HTTP API port (optional).

These ports are important for flawless node operation. The REST HTTP API port is optional and is only needed if you want to offer access to your node's API. All ports can be customized inside the config.json file.

Operating System

HORNET is written in Go and can be deployed on all major platforms. The recommended setup uses Docker to run HORNET together with some INX extensions secured behind a Traefik SSL reverse proxy.

Configuration

HORNET uses two JSON configuration files that you can tweak based on your deployment requirements:

  • config.json - Includes all core configuration parameters.
  • peering.json - Includes connection details to node neighbors (peers).

You can read more about the configuration in the post installation article.