Docs
Node
Tangle Software

Software and Dependencies

Binaries

Every release of tangle node includes a Precompiled binary, its currently limited to amd-64 architecture but we plan to support more soon. You can view all releases here (opens in a new tab).

In the below commands, substitute LATEST_RELEASE with the version you want to use, the current latest version is 0.4.6

Get tangle binary

Get binary
wget https://github.com/webb-tools/tangle/releases/download/<LATEST_RELEASE>/tangle-testnet-linux-amd64

Get tangle binary with txpool feature

Get binary txpool
wget https://github.com/webb-tools/tangle/releases/download/<LATEST_RELEASE>/tangle-txpool-linux-amd64

Synchronize Chain Data

Once installed, you can begin syncing your node by running the following command. Your path may vary depend on whether you used the binary, or built from source:

Syncing node
./tangle

Once your node has fully syncronized with Tangle Network you may proceed to setup the necessary accounts to operate a validator or other operations.

Alternative: Build From Source

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

Rust Dependency

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 Rust
# 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:

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

Substrate Dependencies

Debian version:

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

Arch version:

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

Fedora version:

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

Opensuse version:

Opensuse
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.


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

Clone repo
git clone https://github.com/webb-tools/tangle.git
Build
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 the tangle binary built in target/release/ dir

Synchronize Chain Data

Once installed, you can begin syncing your node by running the following command. Your path may vary depend on whether you used the binary, or built from source:

Syncing node
./target/release/tangle

Once your node has fully syncronized with Tangle Network you may proceed to setup the necessary accounts to operate a validator or other operations.

Configuring your Build from Source with Feature Flags

Some features of tangle node are setup behind feature flags, to enable these features you will have to build the binary with these flags enabled

  1. txpool This feature flag is useful to help trace and debug evm transactions on the chain, you should build node with this flag if you intend to use the node for any evm transaction following
Build txpool
cargo build --release --features txpool
  1. relayer This feature flag is used to start the embedded tx relayer with tangle node, you should build node with this flag if you intend to run a node with a relayer which can be used for transaction relaying or data querying
Build relayer
cargo build --release --features relayer
  1. light-client This feature flag is used to start the embedded light client with tangle node, you should build node with this flag if you intend to run a node with a light client relayer to sync EVM data on Tangle
Build light
cargo build --release --features light-client