Sei Node Setup
System Requirements
CPU Cores | RAM | Disk |
---|---|---|
16 cores | 64GB | 1TB NVMe |
Build Version and Genesis Table
Network | Version | Chain ID | Genesis URL |
---|---|---|---|
Mainnet | pacific-1 | Genesis | |
Testnet | atlantic-2 | Genesis | |
Devnet | arctic-1 | Genesis |
Getting Started
The following instructions are for Debian-based systems. Other operating systems like macOS or Arch will use a slightly different procedure.
Update and Upgrade System Packages
sudo apt update && sudo apt upgrade -y
Install Dependencies
sudo apt install nano make build-essential gcc git jq chrony tar curl lz4 wget -y
Install Golang
- Remove old Go version if necessary:
sudo rm -rvf /usr/local/go/
- Install Golang:
wget https://go.dev/dl/go1.21.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz
rm go1.21.1.linux-amd64.tar.gz
- Configure PATH and GOPATH (add to
~/.profile
or~/.bashrc
to make persistent):
echo 'export GOROOT=/usr/local/go' >> ~/.profile
echo 'export GOPATH=$HOME/go' >> ~/.profile
echo 'export GO111MODULE=on' >> ~/.profile
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.profile
source ~/.profile
Install seid
- Define the variables for your network and (optional) moniker:
VERSION=v1.2.3
CHAIN_ID=pacific-1
GENESIS_URL=https://raw.githubusercontent.com/sei-protocol/testnet/main/pacific-1/genesis.json
MONIKER="your_node_name"
- Clone the repository and install:
cd ~/ && git clone https://github.com/sei-protocol/sei-chain.git
cd sei-chain
git checkout $VERSION
make install
Initialize Node
- Initialize the node:
seid init $MONIKER --chain-id $CHAIN_ID
- Download and place genesis file:
wget -O $HOME/.sei/config/genesis.json $GENESIS_URL
Configure Node
- Enable
sei-db
:
sed -i 's/^sc-enable[[:space:]]*=.*$/sc-enable = true/; s/^ss-enable[[:space:]]*=.*$/ss-enable = true/' $HOME/.sei/config/app.toml
- Run the state sync script:
chmod +x $HOME/sei-chain/scripts/state_sync.sh
$HOME/sei-chain/scripts/state_sync.sh
- Create Systemd Service File:
sudo tee /etc/systemd/system/seid.service > /dev/null << EOF
[Unit]
Description=Sei Daemon
After=network-online.target
[Service]
User=$USER
ExecStart=$(which seid) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
- Start the node:
sudo systemctl daemon-reload
sudo systemctl enable seid
sudo systemctl start seid
- Verify that the state sync is progressing:
sudo journalctl -u seid -f -o cat
Appendix
Default Service Ports
The standard service ports can be configured in $HOME/.sei/config/config.toml
and $HOME/.sei/config/app.toml
:
- P2P: 26656
- RPC: 26657
- REST: 1317
- GRPC: 9090
- EVM RPC: 8545
- EVM Websocket: 8546
- Tendermint Prometheus Metrics Exporter: 26660
The standard websocket uses the same connection as the RPC server. Example: ws://localhost:26657/websocket
(non-TLS).