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
Copy 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
Copy 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
Copy 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
Copy sedad config chain-id seda-1
sedad config keyring-backend file
sedad config node tcp://localhost:26657
sedad init MyNode --chain-id seda-1
Copy 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
Copy # 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
Copy # 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
Copy 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
Copy 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
Copy sedad keys add wallet
Recover existing key
Copy sedad keys add wallet --recover
List All Keys
6.1 Query Wallet Balance
Copy sedad q bank balances $(sedad keys show wallet -a)
6.2 Check sync status
False is synced
Copy sedad status 2>&1 | jq .sync_info.catching_up
6.3 Create Validator
Obtain your validator public key by running the following command:
Copy 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:
Copy nano $HOME/validator.json
Change your info, from "pubkey" to "details" and Save them
Copy {
"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:
Copy 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
Copy 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
Copy 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
Copy sedad tx slashing unjail --from wallet --chain-id seda-1 --gas-adjustment 1.4 --gas auto --gas-prices 10000000000aseda -y
6.8 Services Management
Copy # 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
Copy 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
Copy cat $HOME/.sedad/config/priv_validator_key.json
9. Remove node
Copy 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 2 months ago