OneNov Logo

Symphony Node Validator Setup

Ubuntu 22.04 Node Status: Active

Explorer: testnet.ping.pub/symphony

Symphony Explorer
Requirement Minimum Recommended
OS Ubuntu 20.04+ Ubuntu 22.04+
CPU 6 Cores 8+ Cores
RAM 8GB 16GB+
Storage 500GB SSD/NVMe 1TB SSD/NVMe
Network 10 Mbit/s 100 Mbit/s+

Symphony Node Setup

These instructions explain how to set up a Symphony node on an Ubuntu server.

1. Update and Install Dependencies

sudo apt update
sudo apt-get install git curl build-essential make jq gcc snapd chrony lz4 tmux unzip bc -y

2. Install Go

rm -rf $HOME/go
sudo rm -rf /usr/local/go
cd $HOME
curl https://dl.google.com/go/go1.22.5.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile
go version

3. Install Symphony Node

cd $HOME
rm -rf symphony
git clone https://github.com/Orchestra-Labs/symphony.git
cd symphony
git checkout v0.4.1
make install
symphonyd version

4. Initialize Node

Replace NodeName with your own moniker.

symphonyd init NodeName --chain-id=symphony-testnet-4

5. Download Genesis

wget -O $HOME/.symphonyd/config/genesis.json https://raw.githubusercontent.com/Orchestra-Labs/symphony/refs/heads/main/networks/symphony-testnet-4/genesis.json

6. Download Addrbook

wget -O $HOME/.symphonyd/config/addrbook.json https://raw.githubusercontent.com/vinjan23/Testnet.Guide/refs/heads/main/Symphony/addrbook.json

7. Create Service

sudo tee /etc/systemd/system/symphonyd.service > /dev/null <<EOF
[Unit]
Description=symphonyd Daemon
After=network-online.target
[Service]
User=$USER
ExecStart=$(which symphonyd) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable symphonyd

8. Download Snapshot (Optional)

sudo systemctl stop symphonyd
cp $HOME/.symphonyd/data/priv_validator_state.json $HOME/.symphonyd/priv_validator_state.json.backup
rm -rf $HOME/.symphonyd/data
curl -L https://snap-t.vinjan.xyz./symphony/latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.symphonyd
mv $HOME/.symphonyd/priv_validator_state.json.backup $HOME/.symphonyd/data/priv_validator_state.json
sudo systemctl restart symphonyd
sudo journalctl -u symphonyd -f -o cat

9. Create Wallet

symphonyd keys add wallet

10. Import Wallet

symphonyd keys add wallet --recover

11. Launch Node

sudo systemctl restart symphonyd
sudo journalctl -u symphonyd -f -o cat

12. Check Sync

symphonyd status 2>&1 | jq

13. Create Validator

symphonyd tx staking create-validator \
--amount=1000000note \
--moniker="$Your_Validator_Name" \
--identity="" \
--details="" \
--website="" \
--from $WALLET \
--commission-rate 0.05 \
--commission-max-rate 0.2 \
--commission-max-change-rate 0.05 \
--min-self-delegation 1 \
--pubkey $(symphonyd tendermint show-validator) \
--chain-id symphony-testnet-4 \
--fees=800note \
-y

Oracle Installation Guide

This installation is exclusive to those who installed it from me. Those who install it elsewhere may encounter errors.

Prerequisites

sudo apt -q update
sudo apt -qy install curl git jq lz4 build-essential
sudo apt -qy upgrade
sudo apt-get update && apt-get install -y libssl-dev

Install Python 3.10

sudo apt update
sudo apt install python3.10
sudo apt install python3.10-venv

Installation Steps

cd $HOME
rm -rf symphony
git clone https://github.com/Orchestra-Labs/symphony
cd symphony
git checkout v0.4.1
make build

Clone the Symphony Oracle Voter Repository

cd $HOME
git clone https://github.com/cmancrypto/symphony-oracle-voter.git

Switch to the Required Version

cd symphony-oracle-voter
git checkout v0.0.5

Edit Config File

If you are going to use your own RPC/API, edit /root/.symphonyd/config/config.toml:

indexer = "kv"

Create .env File

Choose one of the following options:

Option 1: Default (keyring backend = os)

cat <<EOF > .env
VALIDATOR_ADDRESS= symphonyvaloperxxx
VALIDATOR_ACC_ADDRESS= symphonyxxx
KEY_PASSWORD= walletpassword;
KEY_BACKEND = os
SYMPHONY_LCD= https://api-symphonyd.vinjan.xyz # or http://localhost:35317 (default port 1317)
TENDERMINT_RPC= https://rpc-symphonyd.vinjan.xyz # or http://localhost:35657 (default port 26657)
EOF

Option 2: My Guide (keyring backend = test)

cat <<EOF > .env
VALIDATOR_ADDRESS= symphonyvaloperxxx
VALIDATOR_ACC_ADDRESS= symphonyxxx
KEY_BACKEND = test
SYMPHONY_LCD= https://api-symphonyd.vinjan.xyz # or http://localhost:35317 (default port 1317)
TENDERMINT_RPC= https://rpc-symphonyd.vinjan.xyz # or http://localhost:35657 (default port 26657)
EOF

Set Up Python Environment

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
deactivate

Create Systemd Service

sudo tee /etc/systemd/system/oracle.service > /dev/null << EOF
[Unit]
Description=Symphony Oracle
After=network.target

[Service]
# Environment variables
Environment="SYMPHONYD_PATH=/root/symphony/build/symphonyd"
Environment="PYTHON_ENV=production"
Environment="LOG_LEVEL=INFO"
Environment="DEBUG=false"

# Service configuration
Type=simple
User=root
WorkingDirectory=/root/symphony-oracle-voter/
ExecStart=/root/symphony-oracle-voter/venv/bin/python3 -u /root/symphony-oracle-voter/main.py
Restart=always
RestartSec=3
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF

Reload Systemd and Enable Service

sudo systemctl daemon-reload
sudo systemctl enable oracle.service
sudo systemctl start oracle.service

Check Logs

sudo journalctl -u oracle -f -o cat

Contact Orchestra Labs

Website: Orchestra Labs

Twitter: @orchestra_labs

Documentation: Orchestra Labs Documentation

Questboard: Symphony Blockchain Questboard

Linktree: Orchestra Labs Linktree