SEDA

Website: https://seda.xyz/

Twitter: https://twitter.com/sedaprotocol

Discord: https://discord.gg/seda

Explorer: https://explorer.nodesync.top/SEDA-Mainnet

API: https://seda-api.nodesync.top

RPC: https://seda-rpc.nodesync.top

1. Minimum hardware requirement

4 Cores, 8G Ram, 160G SSD, Ubuntu 22.04

2. Server preparation

sudo apt update && sudo apt upgrade -y
sudo apt install make curl git wget -y
sudo apt install htop tmux build-essential jq make lz4 gcc unzip -y

3. Install GO

if ! which go ; then
#Install GO
ver="1.22.4"
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
fi

4. Download and build binaries

wget -O sedad https://github.com/sedaprotocol/seda-chain/releases/download/v0.1.1/sedad-amd64
chmod +x sedad
sudo mv sedad /usr/local/bin
sedad version

5. Initialize the node

sedad config chain-id seda-1
sedad config keyring-backend file
sedad config node tcp://localhost:26657
sedad init MyNode --chain-id seda-1
curl -Ls https://files.nodesync.top/SEDA/genesis.json > $HOME/.sedad/config/genesis.json
curl -Ls https://files.nodesync.top/SEDA/addrbook.json > $HOME/.sedad/config/addrbook.json
# Add seeds
sed -i -e "s|^seeds *=.*|seeds = \"400f3d9e30b69e78a7fb891f60d76fa3c73f0ecc@seda.rpc.kjnodes.com:17359\"|" $HOME/.sedad/config/config.toml

# Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"10000000000aseda\"|" $HOME/.sedad/config/app.toml

# Set pruning
sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
  $HOME/.sedad/config/app.toml
# Download latest chain snapshot
curl -L https://files.nodesync.top/SEDA/snapshot_latest.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.sedad

5. Create Service and Start node

sudo tee /etc/systemd/system/sedad.service > /dev/null <<EOF
[Unit]
Description=Seda
After=network-online.target
[Service]
User=root
ExecStart=$(which sedad) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable sedad
sudo systemctl restart sedad 
sudo journalctl -u sedad -f --no-hostname -o cat

6. Wallet

Add New Wallet Key - Save seed

sedad keys add wallet

Recover existing key

sedad keys add wallet --recover

List All Keys

sedad keys list

6.1 Query Wallet Balance

sedad q bank balances $(sedad keys show wallet -a)

6.2 Check sync status

False is synced

sedad status 2>&1 | jq .sync_info.catching_up

6.3 Create Validator

Obtain your validator public key by running the following command:

sedad comet show-validator

The output will be similar to this (with a different key):

{"@type":"/cosmos.crypto.ed25519.PubKey","key":"lR1d7YBVK5jYijOfWVKRFoWCsS4dg3kagT7LB9GnG8I="}

Then, create a file named validator.json with the following content:

nano $HOME/validator.json

Change your info, from "pubkey" to "details" and Save them

{
 "pubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"lR1d7YBVK5jYijOfWVKRFoWCsS4dg3kagT7LB9GnG8I="},
 "amount": "10000000000000000000aseda", 
 "moniker": "your-node-moniker",
 "identity": "eqlab testnet validator",
 "website": "optional website for your validator",
 "security": "optional security contact for your validator",
 "details": "optional details for your validator",
 "commission-rate": "0.05",
 "commission-max-rate": "0.2",
 "commission-max-change-rate": "0.05",
 "min-self-delegation": "1" 
}

Finally, we're ready to submit the transaction to create the validator:

sedad tx staking create-validator validator.json --from wallet --chain-id seda-1 \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 10000000000aseda \
-y

6.4 Delegate Token to your own validator

sedad tx staking delegate $(sedad keys show wallet --bech val -a) 1290000000000000000000aseda --from wallet --chain-id seda-1 --gas-adjustment 1.4 --gas auto --gas-prices 10000000000aseda -y

6.6 Withdraw rewards and commission from your validator

sedad tx distribution withdraw-rewards $(sedad keys show wallet --bech val -a) \
--from wallet \
--commission \
--chain-id=seda-1 \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 10000000000aseda \
-y

6.7 Unjail validator

sedad tx slashing unjail --from wallet --chain-id seda-1 --gas-adjustment 1.4 --gas auto --gas-prices 10000000000aseda -y

6.8 Services Management

# Reload Service
sudo systemctl daemon-reload

# Enable Service
sudo systemctl enable sedad

# Disable Service
sudo systemctl disable sedad

# Start Service
sudo systemctl start sedad

# Stop Service
sudo systemctl stop sedad

# Restart Service
sudo systemctl restart sedad

# Check Service Status
sudo systemctl status sedad

# Check Service Logs
sudo journalctl -u sedad -f --no-hostname -o cat

7. Snapshot

sudo systemctl stop sedad

cp $HOME/.sedad/data/priv_validator_state.json $HOME/.sedad/priv_validator_state.json.backup
rm -rf $HOME/.sedad/data $HOME/.sedad/wasmPath

curl https://files.nodesync.top/SEDA/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.sedad

mv $HOME/.sedad/priv_validator_state.json.backup $HOME/.sedad/data/priv_validator_state.json

sudo systemctl restart sedad && sudo journalctl -u sedad -f

8. Backup Validator

Important

cat $HOME/.sedad/config/priv_validator_key.json

9. Remove node

cd $HOME
sudo systemctl stop sedad
sudo systemctl disable sedad
sudo rm /etc/systemd/system/nibid.service
sudo systemctl daemon-reload
rm -f $(which sedad)
rm -rf $HOME/.sedad
rm -rf $HOME/sedad

Last updated