# Join the Network

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 Node

Copy 4+ vCPU x64 2.0+ GHz 16+ GB RAM 500GB+ SSD

Sentry Node

Copy 4+ vCPU x64 2.0+ GHz 16+ GB RAM 500GB+ SSD

# Step 1: Install injectived and peggo binaries

Download the Injective Chain Staking-[version] binaries from the official injective-chain-releases.

Copy wget https://github.com/InjectiveLabs/injective-chain-releases/releases/download/v0.4.19-1642706097/linux-amd64.zip

This zip file will contain three binaries:

  • injectived - the Injective Chain daemon
  • peggo - the Injective Chain ERC-20 bridge relayer daemon
  • injective-exchange - the Injective Exchange daemon
  • libwasmvm.so - the wasm virtual machine which is needed to execute smart contracts.

Unzip and add injectived, injective-exchange and peggo to your /usr/bin. Also add libwasmvm.so to user library path /usr/lib.

Copy unzip linux-amd64.zip sudo mv injectived peggo injective-exchange /usr/bin sudo mv libwasmvm.so /usr/lib

Check your binary version by running following commands.

Copy injectived version peggo version injective-exchange version

Confirm your version matches the output below

Copy injectived version Version dev (7d939ac) peggo version Version dev (b5c188c) injective-exchange version Version dev (ff135cc)

# 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.

Copy # 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-888" injectived init $MONIKER --chain-id injective-888

# Step 3: Prepare configuration to join the Equinox Testnet

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

Copy git clone https://github.com/InjectiveLabs/testnet-config/ # copy genesis file to config directory cp testnet-config/staking/40017/genesis.json ~/.injectived/config/genesis.json # copy config file to config directory cp testnet-config/staking/40017/app.toml ~/.injectived/config/app.toml

You can also run verify the checksum of the genesis checksum - e45b7c97d2afb37b9529e7dc234a410ff5cc8961adef2d39a3ef6923c0acfb22

Copy sha256sum ~/.injectived/config/genesis.json

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

Copy cat testnet-config/staking/40017/seeds.txt nano ~/.injectived/config/config.toml # timeout_commit = 1500ms

# Step 4: Start your node and sync the Injective Chain

Copy injectived start

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

# Step 5: Use systemd service

Configure systemd service for injectived if not configured already. Edit the config at /etc/systemd/system/injectived.service:

Copy [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

Copy 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 the next step Become a Validator.

# Support

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

Discord https://discord.gg/injective
Telegram https://t.me/joininjective