💾Node Installation

Tangle Mainnet guide

  • Minimum hardware requirements:

Node Type
CPU
RAM
Storage

Mainnet

4

8GB

150GB

Preparing the server

sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y

GO 1.21.6

ver="1.21.6"
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version

Build 13.07.24

mkdir -p $HOME/.tangle && cd $HOME/.tangle
wget -O tangle https://github.com/webb-tools/tangle/releases/download/v1.0.12/tangle-default-linux-amd64 && chmod +x tangle
chmod 744 tangle
mv tangle /usr/bin/
wget -O $HOME/.tangle/tangle-mainnet.json "https://raw.githubusercontent.com/webb-tools/tangle/main/chainspecs/mainnet/tangle-mainnet.json"
chmod 744 ~/.tangle/tangle-mainnet.json
# Проверим json
sha256sum ~/.tangle/tangle-mainnet.json
# b640e7fb959066ce29a3ddece42f17cc4e76b4383fd57e4f4249e2c80bff8a00

tangle --version

  • tangle 1.0.12-ff0251a-x86_64-linux-gnu

Creating Keys

Acco

tangle key insert --base-path $HOME/.tangle/data/ \
--chain $HOME/.tangle/tangle-mainnet.json \
--scheme Sr25519 \
--suri "<SEED_PHRASE-12>" \
--key-type acco

Babe

tangle key insert --base-path $HOME/.tangle/data/ \
--chain $HOME/.tangle/tangle-mainnet.json \
--scheme Sr25519 \
--suri "<SEED_PHRASE-12>" \
--key-type babe

Imonline

tangle key insert --base-path $HOME/.tangle/data/ \
--chain $HOME/.tangle/tangle-mainnet.json \
--scheme Sr25519 \
--suri "<SEED_PHRASE-12>" \
--key-type imon

Role

tangle key insert --base-path $HOME/.tangle/data/ \
--chain $HOME/.tangle/tangle-mainnet.json \
--scheme Ecdsa \
--suri "<SEED_PHRASE-12>" \
--key-type role

Grandpa

tangle key insert --base-path $HOME/.tangle/data/ \
--chain $HOME/.tangle/tangle-mainnet.json \
--scheme Ed25519 \
--suri "<SEED_PHRASE-12>" \
--key-type gran

ls $HOME/.tangle/data/chains/tangle-mainnet/keystore/

Create a service file

yourname=<name>
tee /etc/systemd/system/tangle.service > /dev/null << EOF
[Unit]
Description=Tangle Validator Node
After=network-online.target
StartLimitIntervalSec=0
[Service]
User=$USER
Restart=always
RestartSec=3
LimitNOFILE=65535
ExecStart=/usr/bin/tangle \
  --base-path $HOME/.tangle/data/ \
  --name '$yourname' \
  --chain $HOME/.tangle/tangle-mainnet.json \
  --node-key-file "$HOME/.tangle/node-key" \
  --port 30333 \
  --rpc-port 9933 \
  --prometheus-port 9515 \
  --validator \
  --pruning archive \
  --telemetry-url "wss://telemetry.polkadot.io/submit/ 1"
  --no-mdns
[Install]
WantedBy=multi-user.target
EOF

Start

systemctl daemon-reload
systemctl enable tangle
systemctl restart tangle && journalctl -fu tangle -o cat
  • After launch, we wait for our node to synchronize. You can track our condition using telemetry

  • After the node has synchronized, we pull out the key from our node by entering the command

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933

BACKUP

🟢 save the located keys in $HOME/.tangle/node-key and $HOME/.tangle/data/validator/YOURNAME/chains/tangle-testnet/keystore/

Creating a validator

  • Go to the website and first create a wallet

  • We create a validator. To do this, select Network - Staking - Accounts - Validator

logs

journalctl -fu tangle -o cat

restart

systemctl restart tangle && journalctl -fu tangle -o cat

delete node

systemctl stop tangle &&
systemctl disable tangle &&
rm /etc/systemd/system/tangle.service &&
systemctl daemon-reload &&
cd
rm -r .tangle

Last updated