⚙️ Installation

🛠️ Hardware Requirements

Node Type
CPU
RAM
Storage

Full (Minimum)

16v CPU

16 GB

250 GB SSD

Full (Recommended)

16v CPU

16 GB

2TB SSD with Write Throughput > 1000 MiBps

Additional requirements

Chain ID
Version tag
Binary Name
Binary Home

initiation-1

v0.2.23-stage-2

initiad

$HOME/.initia

⚡ Automatic installation

bash <(curl -s https://raw.githubusercontent.com/UnityNodes/scripts/main/initia/install-initia.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

# Clone project repository
cd $HOME
rm -rf initia
git clone https://github.com/initia-labs/initia.git
cd initia
git checkout v0.2.23-stage-2
make install

# Build binary
make install

# Set node CLI configuration
initiad config node tcp://localhost:26657
initiad config keyring-backend os
initiad config chain-id initiation-1
source $HOME/.bash_profile

# Initialize the node
initiad init "NODE_MONIKER" --chain-id initiation-1

# Download addrbook files
curl -L https://snapshots-testnet.unitynodes.com/initia-testnet/genesis.json > $HOME/.initia/config/genesis.json
curl -Ls https://snapshots-testnet.unitynodes.com/initia-testnet/addrbook.json > $HOME/.initia/config/addrbook.json

# Set peers
peers="bad45b64989234450a47786a2476dbaf35126d47@149.50.108.4:27656,97cb27fae552ebe055f25b8fe10af83d337d655e@195.26.255.73:46656,d5519e378247dfb61dfe90652d1fe3e2b3005a5b@65.109.68.190:17956,fc37e22ae9405cf00a775a014366d428376e47b3@37.27.48.77:29656,0244e6fd80ee6d3880412fe26b6a2a7ef09d035b@207.244.236.250:27656,42cd9d7a33f8250ad2dbe04634e7c7c23fca6657@5.9.80.214:26656,8c7585098b9f8689f8ac455f1bb6704edf5bc3b8@65.109.58.86:25756,a63a6f6eae66b5dce57f5c568cdb0a79923a4e18@168.119.10.134:26628,d952f8524f597ec1bca7f8d634f4630ac985b87c@65.109.113.233:25756,0ade03f733d802ec391b1c53ee2bfb4710cacd8a@1.53.252.54:26656,860319cc62c2d333b07c777b123ad2376823bae9@81.0.218.54:27656,279da7b0059aa22f0d60354fdd5a0c44f482fe61@81.0.219.123:27656,94d967dd96877f2db5558bb1a919a48ddde24524@64.44.90.136:27656,917cdc7c059c5eadf2629b5a6ab90733ca37e3fa@34.142.138.228:27656,a3484833e7a92443c6745d778f401959d3744e6a@38.242.231.170:27656,f5b18fb2b9dd614021b5c018bc494e8f81ebd1ac@109.199.124.148:27656,002f1c70403e7507093c852d55c8f69214ae921e@65.108.252.205:46656"
sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.initia/config/config.toml


# Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.15uinit,0.01uusdc\"|" $HOME/.initia/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/.initia/config/app.toml

# Download latest chain data snapshot
initiad tendermint unsafe-reset-all --home $HOME/.initia --keep-addr-book 
curl https://snapshots-testnet.unitynodes.com/initia-testnet/initia-testnet-latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.initia


# Create a service
sudo tee /etc/systemd/system/initiad.service > /dev/null <<EOF
[Unit]
Description=initiad
After=network-online.target

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

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable initiad

# Start the service and check the logs
sudo systemctl start initiad.service
sudo journalctl -u initiad.service -f -o cat

📝 Create Validator

1️⃣ Create wallet

initiad 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️⃣ Go to the faucet and get test tokens to your wallet ( can be received every 24 hours)

Link Faucet

3️⃣ View your wallet balance

initiad keys q bank balances "address"

if the balance is displayed - continue further

4️⃣ View the sync status of your node

initiad status | jq | grep "catching_up"

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

5️⃣ Create validator

initiad tx mstaking create-validator \
--amount 2000000uinit \
--pubkey $(initiad tendermint show-validator) \
--moniker "$YOUR_MONIKER" \ #Validator name, displayed in explorers.
--identity "" \ #Use your KeyBase ID. If you don't have one, leave it empty.
--website "" \ #Your website is available, or leave the field blank
--details "$YOUR_DETAILS" \ #Any details about your validator.
--chain-id initiation-1 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.05 \
--from wallet \
--fees 80000uinit \
-y

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

6️⃣ Save priv_validator_key.json


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

Last updated