💾Node Installation

Sifchain Mainnet guide

  • Minimum hardware requirements:

1) Auto_install script

wget -O sifchain https://raw.githubusercontent.com/111STAVR111/props/main/Sifchain/sifchain && chmod +x sifchain && ./sifchain

2) Manual installation

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 23.05.24

cd $HOME && mkdir -p go/bin/
git clone https://github.com/Sifchain/sifnode
cd $HOME/sifnode
git checkout v1.4.1
make install

sifnoded version --long | grep -e commit -e version

  • version: v1.4.1

  • commit: 1f07f1be4fbaa4cc4a12bf32cdce760a1584cabf

Initiation

sifnoded init STAVR_guide --chain-id=sifchain-1
sifnoded config chain-id sifchain-1

Create/recover wallet

sifnoded keys add <walletname>
           OR
sifnoded keys add <walletname> --recover

Download Genesis

cd "${HOME}"/.sifnoded/config
wget -O genesis.json.gz https://raw.githubusercontent.com/Sifchain/networks/master/betanet/sifchain-1/genesis.json.gz
gunzip genesis.json.gz

sha256sum $HOME/.sifnoded/config/genesis.json

  • b534aac6334611c2209f12f60a22dd86ec38151704d00063dc2243184fa53887

Set up the minimum gas price and Peers/Seeds/Filter peers/MaxPeers

sed -i "s/persistent_peers =.*/persistent_peers = \"0d4981bdaf4d5d73bad00af3b1fa9d699e4d3bc0@44.235.108.41:26656,bcc2d07a14a8a0b3aa202e9ac106dec0bef91fda@13.55.247.60:26656,663dec65b754aceef5fcccb864048305208e7eb2@34.248.110.88:26656,0120f0a48e7e81cc98829ef4f5b39480f11ecd5a@52.76.185.17:26656,6535497f0152293d773108774a705b86c2249a9c@44.238.121.65:26656,fdf5cffc2b20a20fab954d3b6785e9c382762d14@34.255.133.248:26656,8c240f71f9e060277ce18dc09d82d3bbb05d1972@13.211.43.177:26656,9fbcb6bd5a7f20a716564157c4f6296d2faf5f64@18.138.208.95:26656\"/g" "${HOME}"/.sifnoded/config/config.toml
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0rowan\"/;" ~/.sifnoded/config/app.toml
external_address=$(wget -qO- eth0.me) 
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.sifnoded/config/config.toml
seeds=""
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.sifnoded/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.sifnoded/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 10/g' $HOME/.sifnoded/config/config.toml

Pruning (optional)

pruning="custom"
pruning_keep_recent="1000"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.sifnoded/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.sifnoded/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.sifnoded/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.sifnoded/config/app.toml

Indexer (optional)

indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.sifnoded/config/config.toml

Download addrbook

wget -O $HOME/.sifnoded/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Sifchain/addrbook.json"

Create a service file

sudo tee /etc/systemd/system/sifnoded.service > /dev/null <<EOF
[Unit]
Description=sifchain
After=network-online.target

[Service]
User=$USER
ExecStart=$(which sifnoded) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

StateSync Sifchain Mainnet

SNAP_RPC=https://sifchain.rpc.m.stavr.tech:443
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.sifnoded/config/config.toml
sifnoded tendermint unsafe-reset-all --home $HOME/.sifnoded
wget -O $HOME/.sifnoded/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Sifchain/addrbook.json"
sudo systemctl restart sifnoded && sudo journalctl -fu sifnoded -o cat

SnapShot Mainnet updated every 5 hours

SOOON

Start

sudo systemctl daemon-reload
sudo systemctl enable sifnoded 
sudo systemctl restart sifnoded && sudo journalctl -fu sifnoded -o cat

Create validator

sifnoded tx staking create-validator \
--amount=1000000rowan \
--broadcast-mode=block \
--pubkey=`sifnoded tendermint show-validator` \
--moniker=STAVR_guide \
--commission-rate="0.1" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.1" \
--min-self-delegation="1" \
--from=<walletName> \
--chain-id=sifchain-1 \
--gas=auto -y

Monitoring

You can set up your node status alarm here - Monitoring

Security

You can create secure management of your wallet and your node by following this links.

TMKMS Wallet Security

Delete node

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

Last updated