# Joining Testnet

# Install Osmosis Binary

Make sure you have installed the Osmosis Binary (CLI) prior to following the below instructions.

You may also use the Osmosis installer if you want everything to be done automatically.

# Faucet

In order to get testnet tokens use https://faucet.osmosis.zone/ (opens new window)

# Initialize Osmosis Node

Use osmosisd to initialize your node (replace the NODE_NAME with a name of your choosing):

osmosisd init NODE_NAME --chain-id=osmo-test-4
1

Open the config.toml to edit the seeds and persistent peers:

cd $HOME/.osmosisd/config
nano config.toml
1
2

Use page down or arrow keys to get to the line that says seeds = "" and replace it with the following:

seeds = "[email protected]:26656"
1

Next, add persistent peers:

persistent_peers = "[email protected]:26656,[email protected]:26656"
1

Then press Ctrl+O then enter to save, then Ctrl+X to exit

# Set Up Cosmovisor

Set up cosmovisor to ensure future upgrades happen flawlessly. To install Cosmovisor:

go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]
1

Create the required directories:

mkdir -p ~/.osmosisd/cosmovisor
mkdir -p ~/.osmosisd/cosmovisor/genesis
mkdir -p ~/.osmosisd/cosmovisor/genesis/bin
mkdir -p ~/.osmosisd/cosmovisor/upgrades
1
2
3
4

Set the environment variables:

echo "# Setup Cosmovisor" >> ~/.profile
echo "export DAEMON_NAME=osmosisd" >> ~/.profile
echo "export DAEMON_HOME=$HOME/.osmosisd" >> ~/.profile
echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=false" >> ~/.profile
echo "export DAEMON_LOG_BUFFER_SIZE=512" >> ~/.profile
echo "export DAEMON_RESTART_AFTER_UPGRADE=true" >> ~/.profile
echo "export UNSAFE_SKIP_BACKUP=true" >> ~/.profile
source ~/.profile
1
2
3
4
5
6
7
8

You may leave out UNSAFE_SKIP_BACKUP=true, however the backup takes a decent amount of time and public snapshots of old states are available.

Download and replace the genesis file:

cd $HOME/.osmosisd/config
wget https://github.com/osmosis-labs/networks/raw/main/osmo-test-4/genesis.tar.bz2
tar -xjf genesis.tar.bz2 && rm genesis.tar.bz2
1
2
3

Copy the current osmosisd binary into the cosmovisor/genesis folder:

cp $GOPATH/bin/osmosisd ~/.osmosisd/cosmovisor/genesis/bin
1

To check your work, ensure the version of cosmovisor and osmosisd are the same:

cosmovisor version
osmosisd version
1
2

These two command should both output 7.0.3

Reset private validator file to genesis state:

osmosisd unsafe-reset-all
1

# Download Chain Data

Download the latest chain data from a snapshot provider. In the following commands, I will use https://quicksync.io/networks/osmosis.html to download the chain data. You may choose the pruned or archive based on your needs.

Download liblz4-tool to handle the compressed file:

sudo apt-get install wget liblz4-tool aria2 -y
1

Download the chain data:

  • Select the tab to the desired node type (Pruned or Archive)

    # Set Up Osmosis Service

    Set up a service to allow cosmovisor to run in the background as well as restart automatically if it runs into any problems:

    echo "[Unit]
    Description=Cosmovisor daemon
    After=network-online.target
    [Service]
    Environment="DAEMON_NAME=osmosisd"
    Environment="DAEMON_HOME=${HOME}/.osmosisd"
    Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
    Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
    Environment="DAEMON_LOG_BUFFER_SIZE=512"
    Environment="UNSAFE_SKIP_BACKUP=true"
    User=$USER
    ExecStart=${HOME}/go/bin/cosmovisor start
    Restart=always
    RestartSec=3
    LimitNOFILE=infinity
    LimitNPROC=infinity
    [Install]
    WantedBy=multi-user.target
    " >cosmovisor.service
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    Move this new file to the systemd directory:

    sudo mv cosmovisor.service /lib/systemd/system/cosmovisor.service
    
    1

    # Start Osmosis Service

    Reload and start the service:

    sudo systemctl daemon-reload
    systemctl restart systemd-journald
    sudo systemctl start cosmovisor
    
    1
    2
    3

    Check the status of the service:

    sudo systemctl status cosmovisor
    
    1

    To see live logs of the service:

    journalctl -u cosmovisor -f
    
    1

    # Update Cosmovisor to V7

    If you want osmosisd to upgrade automatically from V6 to V7, do the following steps prior to the upgrade height (3215657):

    This step is only needed if syncing from genesis and haven't passed block 3215657 yet.

    mkdir -p ~/.osmosisd/cosmovisor/upgrades/v7/bin
    cd $HOME/osmosis
    git pull
    git checkout v10.0.1
    make build
    systemctl stop cosmovisor.service
    cp build/osmosisd ~/.osmosisd/cosmovisor/upgrades/v7/bin
    systemctl start cosmovisor.service
    cd $HOME
    
    1
    2
    3
    4
    5
    6
    7
    8
    9