Sync your node

Getting Started#

Step 0: Hardware Requirements#

Validators should expect to provision one or more data center locations with redundant power, networking, firewalls, HSMs and servers.

We initially recommend this minimum hardware specifications and they might rise as network usage increases.

Validator Nodes#

vCPU: 4+
Memory: 16Gb+
Storage: 1Tb+
Network: 5Gbps+

Sentry Nodes#

vCPU: 4+
Memory: 16Gb+
Storage: 1Tb+
Network: 5Gbps+

Step 1: Install injectived and peggo binaries#

  1. Download the Injective Chain Mainnet-10001 binaries from the official injective-chain-releases.
wget https://github.com/InjectiveLabs/injective-chain-releases/releases/download/v1.0.1-1630308393/linux-amd64.zip

This zip file will contain two binaries: injectived which is the Injective Chain daemon as well as peggo which is the Injective Chain ERC-20 bridge relayer daemon.

  1. Unzip and add injectived and peggo to your /usr/bin.
unzip linux-amd64.zip
sudo mv injectived /usr/bin
sudo mv peggo /usr/bin
  1. Check your binary version by running following commands.
injectived version
peggo version
  1. Confirm your version matches the output below
injectived version
Version dev (b174465)
peggo version
Version dev (d6447e2)

Step 2: Initialize a new Injective Chain node#

Before actually running the Injective Chain node, we need to initialize the chain, and most importantly its genesis file.

# The argument <moniker> is the custom username of your node, it should be human-readable.
export MONIKER=<moniker>
# the Injective Chain has a chain-id of "injective-1"
injectived init $MONIKER --chain-id injective-1

Running this command will create injectived default configuration files at ~/.injectived.

Step 3: Prepare configuration to join Mainnet#

You should now update the default configuration with the Mainnet's genesis file and application config file, as well as configure your persistent peers with a seed node.

git clone https://github.com/InjectiveLabs/mainnet-config
# copy genesis file to config directory
cp mainnet-config/10001/genesis.json ~/.injectived/config/genesis.json
# copy config file to config directory
cp mainnet-config/10001/app.toml ~/.injectived/config/app.toml

You can also run verify the checksum of the genesis checksum - 573b89727e42b41d43156cd6605c0c8ad4a1ce16d9aad1e1604b02864015d528

sha256sum ~/.injectived/config/genesis.json

Then open update the persistent_peers field present in ~/.injectived/config/config.toml with the contents of mainnet-config/10001/seeds.txt and update the timeout_commit to 1500ms.

cat mainnet-config/10001/seeds.txt
nano ~/.injectived/config/config.toml
# timeout_commit = 1500ms

Step 4: Start your node using CLI or systemd service#

You can start your node simply by running injectived start which should start syncing the Injective Chain.

injectived start

Using systemd service#

Configure systemd service for injectived if not configured already.

Edit the config at /etc/systemd/system/injectived.service:

[Unit]
Description=injectived
[Service]
WorkingDirectory=/usr/bin
ExecStart=/bin/bash -c '/usr/bin/injectived --log-level=error start'
Type=simple
Restart=always
RestartSec=5
User=ec2-user
[Install]
WantedBy=multi-user.target

Starting and restarting systemd service

sudo systemctl daemon-reload
sudo systemctl restart injectived
sudo systemctl status injectived
# enable start on system boot
sudo systemctl enable injectived
# To check Logs
journalctl -u injectived -f

At this point, your node should start syncing blocks from the chain.

Next Steps#

Once your node completes syncing the blocks, proceed to next step Become a Validator.

Support#

For any further questions, you can always connect with the Injective Team via Discord, Telegram, and email.

Discord https://discord.gg/injective
Telegram https://t.me/joininjective
Email contact@injectiveprotocol.com

Last updated on