Joining Testnet

Pick a Testnet

You specify the network you want to join by setting the genesis file and seeds.
Testnet Chain ID
Description
Site
Version
Status
BlockX_12345-1
BlockX_12345-1 Testnet
BlockX 12345-1
v1.0
Live

Install blokxd

Follow this installation document to install the BlockX binary blockxd.
Make sure you have the right version of blockxd installed.

Save Chain ID

We recommend saving the testnet chain-id into your blockxd's client.toml. This will make it so you do not have to manually pass in the chain-id flag for every CLI command.
blockxd config chain-id blockx_12345-1

Initialize Node

We need to initialize the node to create all the necessary validator and node configuration files:
blockxd init <your_custom_moniker> --chain-id blockx_12345-1
Monikers can contain only ASCII characters. Using Unicode characters will render your node unreachable.
By default, the init command creates your ~/.blockxd (i.e $HOME) directory with subfolders config/ and data/. In the config directory, the most important files for configuration are app.toml and config.toml.

Genesis & Seeds

Copy the Genesis File

Check the genesis.json file from the archive and copy it over to the config directory: ~/.blockxd/config/genesis.json. This is a genesis file with the chain-id and genesis accounts balances.
sudo apt install -y unzip wget
wget -P ~/.blockxd/config https://archive.blockx.dev/blockx_9000-4/genesis.json
Then verify the correctness of the genesis configuration file:
blockxd validate-genesis

Add Seed Nodes

Your node needs to know how to find peers. You'll need to add healthy seed nodes to $HOME/.blockxd/config/config.toml. The testnets repo contains links to some seed nodes.
Edit the file located in ~/.blockxd/config/config.toml and the seeds to the following:
#######################################################
### P2P Configuration Options ###
#######################################################
[p2p]
# ...
# Comma separated list of seed nodes to connect to
seeds = "<node-id>@<ip>:<p2p port>"
You can use the following code to get seeds from the repo and add it to your config:
SEEDS=`curl -sL https://raw.githubusercontent.com/tharsis/testnets/main/blockx_9000-4/seeds.txt | awk '{print $1}' | paste -s -d, -`
sed -i.bak -e "s/^seeds =.*/seeds = \"$SEEDS\"/" ~/.blockxd/config/config.toml
For more information on seeds and peers, you can the Tendermint P2P documentation.

Add Persistent Peers

We can set the persistent_peers field in ~/.blockxd/config/config.toml to specify peers that your node will maintain persistent connections with. You can retrieve them from the list of available peers on the testnets repo.
A list of available persistent peers is also available in the #find-peers channel in the BlockX Discord. You can get a random 10 entries from the peers.txt file in the PEERS variable by running the following command:
PEERS=`curl -sL https://raw.githubusercontent.com/tharsis/testnets/main/blockx_12345-1/peers.txt | sort -R | head -n 10 | awk '{print $1}' | paste -s -d, -`
Use sed to include them into the configuration. You can also add them manually:
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.blockxd/config/config.toml

Run a Testnet Validator

Claim your testnet Block on the faucet using your validator account address and submit your validator account address:
blockxd tx staking create-validator \
--amount=1000000000000atblockx \
--pubkey=$(blockxd tendermint show-validator) \
--moniker="BlockXWhale" \
--chain-id=<chain_id> \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="auto" \
--gas-prices="0.025atblockx" \
--from=<key_name>

Start testnet

The final step is to start the nodes. Once enough voting power (+2/3) from the genesis validators is up-and-running, the testnet will start producing blocks.
blockxd start

Upgrading Your Node

These instructions are for full nodes that have ran on previous versions of and would like to upgrade to the latest testnet version.

Reset Data

First, remove the outdated files and reset the data.
rm $HOME/.blockxd/config/addrbook.json $HOME/.blockxd/config/genesis.json
blockxd tendermint unsafe-reset-all --home $HOME/.blockxd
Your node is now in a pristine state while keeping the original priv_validator.json and config.toml. If you had any sentry nodes or full nodes setup before, your node will still try to connect to them, but may fail if they haven't also been upgraded.
Warning
Make sure that every node has a unique priv_validator.json. Do not copy the priv_validator.json from an old node to multiple new nodes. Running two nodes with the same priv_validator.json will cause you to double sign.

Restart

To restart your node, just type:
blockxd start

Share your Peer

You can share your peer to posting it in the #find-peers channel in the BlockX Discord.
To get your Node ID, use:
blockxd tendermint show-node-id
Last modified 7mo ago