Skip to main content

Become a Node Operator

Node Operator

Running a node is the best way to use Shimmer. By doing so, you have direct access to the Tangle instead of having to connect to and trust someone else's node, and you help the Shimmer network to become more distributed. This topic provides a checklist of steps for running a reliable node.

Minimum Requirements

Nodes need enough computational power to reliably handle high rates of transactions per second, including the following minimum requirements:

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

The amount of storage you need will depend on whether you plan on pruning transactions from your local database.

Secure your device

The security of the device running your node is essential to stop attackers from gaining access to it. You should consider doing the following before running a node on your device:

  • Securing SSH logins
  • Blocking unnecessary ports

Secure SSH logins

If you log into your device through SSH, you should use measures to protect it from unauthorized access. Many guides have been written about this subject. For more information, see 10 Steps to Secure Open SSH.

Block Unnecessary Ports

Attackers can abuse any open ports on your device. To secure your device against attacks on unused open ports, you should close all ports except those in use. To do so, you can use a firewall. All operating systems include firewall options. With a firewall, you can completely block unused and unnecessary ports.

Enable Remote Proof of Work

When configuring your node, you may have the option to allow it to do proof of work. When this feature is enabled, clients can ask your node to do remote proof of work.

Proof of work takes time and uses your node's computational power. So, you may want to keep this feature disabled by default.

Load Balancing

If you run more than one node, it's best practice to make sure that API requests are distributed among all of them. To evenly distribute the API requests among all your nodes, you can run a reverse proxy server that will act as a load balancer.

This way, you can have one domain name for your reverse proxy server to which all nodes will send their API calls. But, on the backend, the nodes with the most unused computational power will process the request and return the response.