⚙️ Installation

🛠️ Hardware Requirements

Node TypeCPURAMStorage

Full (Recommended)

4-8v CPU

16 GB

100GB Disk Storage

Additional requirements

Chain IDVersion tagBinary NameBinary Home

self-1

v1.0.1

selfchaind

$HOME/.selfchain

⚡ Automatic installation

bash <(curl -s https://raw.githubusercontent.com/UnityNodes/scripts/main/selfchain/install-selfchain.sh)

📝 Manual installation

1️⃣ Installation packeges and dependencies

# Install dependencies for building from source
sudo apt update
sudo apt install -y lz4 jq make git gcc build-essential curl chrony unzip gzip snapd tmux bc

# Install Go
sudo rm -rf /usr/local/go
curl -L https://go.dev/dl/go1.21.6.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile
source .bash_profile

2️⃣ Install node

Replace "NODE_MONIKER" with your name moniker

# Install selfchain through binary
cd $HOME
wget https://github.com/hotcrosscom/Self-Chain-Releases/releases/download/mainnet-v1.0.1/selfchaind-linux-amd64
chmod +x selfchaind-linux-amd64
mv selfchaind-linux-amd64 $HOME/go/bin/selfchaind

# Initialize the node
selfchaind init "NODE_MONIKER" --chain-id self-1

# Download genesis and addrbook files
curl -Ls https://snapshots-mainnet.unitynodes.com/selfchain-mainnet/genesis.json > $HOME/.selfchain/config/genesis.json
curl -Ls https://snapshots-mainnet.unitynodes.com/selfchain-mainnet/addrbook.json > $HOME/.selfchain/config/addrbook.json


# Set minimum gas price
sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.005uself"|g' $HOME/.selfchain/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 = "10"|' \
  $HOME/.selfchain/config/app.toml

# Download latest chain data snapshot
curl https://snapshots-mainnet.unitynodes.com/selfchain-mainnet/selfchain-mainnet-latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.selfchain


# Create a service
sudo tee /etc/systemd/system/selfchaind.service > /dev/null <<EOF
[Unit]
Description=selfchain node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which selfchaind) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

# Start the service and check the logs
sudo systemctl daemon-reload
sudo systemctl enable selfchaind
sudo systemctl start selfchaind.service
sudo journalctl -u selfchaind.service -f -o cat

📝 Create Validator

1️⃣ Create wallet

selfchaind keys add wallet

Save all information after entering the command, without this you will not be able to restore data to the wallet. SAVE SEED PHRASE (12 words).

2️⃣ View your wallet balance

selfchaind keys q bank balances "address"

if the balance is displayed - continue further

3️⃣ View the sync status of your node

selfchaind status | jq | grep "catching_up"

If "true" - not synchronized // "false" - synchronized

4️⃣ Create validator

selfchaind tx staking create-validator \
  --amount "1000000uself" \
  --pubkey $(selfchaind tendermint show-validator) \
  --moniker "NODE_MONIKER" \ #Validator name, displayed in explorers. 
  --identity "" \ #Use your KeyBase ID. If you don't have one, leave it empty.
  --details "" \ #Any details about your validator.
  --website "" \ #Your website/github etc 
  --chain-id self-1 \
  --commission-rate "0.05" \
  --commission-max-rate "0.2" \
  --commission-max-change-rate "0.01" \
  --min-self-delegation "1" \
  --broadcast-mode sync \
  --gas="87578" \
  --gas-adjustment="1.2" \
  --gas-prices="0.5uslf" \
  --from=wallet \
  -y

After entering the command, you will receive hash transactions, check the status in the explorer

5️⃣ Save priv_validator_key.json


cat $HOME/.selfchain/config/priv_validator_key.json
SAVE YOUR PRIVATE KEY AFTER ENTERING THE COMMAND

Last updated