Docs
Tangle Network
Node Operators
Requirements

Requirements

Running a parachain node is similar to a typical Substrate node, but there are some differences. A Substrate parachain node is a bigger build because it contains code to run the parachain itself, as well as code to sync the relay chain, and facilitate communication between the two. As such, this build is quite large and may take over 30 min and require 32GB of memory.

The minimum specs recommended to run a node are shown in the following table and follow the recommended Polkadot requirements (opens in a new tab).

ComponentRequirements
CPUIntel(R) Core(TM) i7-7700K CPU @ 4.20GHz
StorageAn NVMe solid state drive of 1 TB (As it should be reasonably sized to deal with blockchain growth).
Memory64GB ECC
FirewallP2P port must be open to incoming traffic:
- Source: Any
- Destination: 30333, 30334 TCP

Running Ports

As stated before, the relay/parachain nodes will listen on multiple ports. The default Substrate ports are used in the parachain, while the relay chain will listen on the next higher port.

The only ports that need to be open for incoming traffic are those designated for P2P. Collators must not have RPC or WS ports opened.

Default Ports for a Parachain Full-Node:

DescriptionPort
P2P30333 (TCP)
RPC9933
WS9944
Prometheus9615

Default Ports of Embedded Relay Chain:

DescriptionPort
P2P30334 (TCP)
RPC9934
WS9945
Prometheus9616

Dependencies

In order to build a Tangle node from source your machine must have specific dependecies installed. This guide outlines those requirements.

This guide uses https://rustup.rs (opens in a new tab) installer and the rustup tool to manage the Rust toolchain. Rust is required to compile a Tangle node.

First install and configure rustup:

# Install
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
 
# Configure
source ~/.cargo/env

Configure the Rust toolchain to default to the latest stable version, add nightly and the nightly wasm target:

rustup default nightly
rustup update
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly

Great! Now your Rust environment is ready! 🚀🚀

Substrate Dependencies

Debian version:

sudo apt install --assume-yes git clang curl libssl-dev llvm libudev-dev make protobuf-compiler

Arch version:

pacman -Syu --needed --noconfirm curl git clang make protobuf

Fedora version:

sudo dnf update
sudo dnf install clang curl git openssl-devel make protobuf-compiler

Opensuse version:

sudo zypper install clang curl git openssl-devel llvm-devel libudev-devel make protobuf

Remember that different distributions might use different package managers and bundle packages in different ways. For example, depending on your installation selections, Ubuntu Desktop and Ubuntu Server might have different packages and different requirements. However, the packages listed in the command-line examples are applicable for many common Linux distributions, including Debian, Linux Mint, MX Linux, and Elementary OS.

Build from Source 💻

Once the development environment is set up, you can build the Tangle node from source.

cargo build --release

NOTE: You must use the release builds! The optimizations here are required as in debug mode, it is expected that nodes are not able to run fast enough to produce blocks.

You will now have two runtimes built in target/release/ dir:

  1. tangle-parachain: Parachain node.
  2. tangle-standalone: Standalone node, used in the current standalone Tangle network.
Last updated on December 16, 2022