Dear Band Community,
Last Thursday, we announced our test upgrade from Wenchang to GuanYu in preparation for the official launch of BandChain Phase 1 on the Mainnet. We are proud to say that most validators successfully participated in the upgrade process and will work closely with the Band Protocol team to perform stress tests before the public Mainnet launch of GuanYu.
In this article, we have provided the steps for the remaining validator set to join Testnet #3 if they have missed the test upgrade process. We will be communicating all updates on this document on the
guanyu-testnet Discord channel.
For this guide, we will be assuming that you will be running your node on a Ubuntu 18.04 LTS machine that is allowing connections to port 26656.
To start, you’ll need to install the various utility tools and Golang on the machine.
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y build-essential curl wgetwget https://dl.google.com/go/go1.13.9.linux-amd64.tar.gz
tar xf go1.13.9.linux-amd64.tar.gz
sudo mv go /usr/local/goecho "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> $HOME/.profile
Next, you will need to clone and build BandChain. The canonical version for this GuanYu testnet3 is v1.2.6.
git clone https://github.com/bandprotocol/bandchain
git checkout v1.2.6
Initialize the chain environment, download the official testnet genesis file, and add the initial peers to your node.
bandd init --chain-id band-guanyu-testnet3 YOUR_MONIKER
mv genesis.json ~/.bandd/configsed -E -i
's/persistent_peers = ".*"/persistent_peers = "[email protected]ode.bandchain.org:26656,[email protected]e.bandchain.org:26656"/'
With the configurations ready, you can now start your node. In this tutorial, however, we will show you a simple way to set up
systemd to run the node daemon with auto-restart.
Description=BandChain Node Daemon
Install the service and start the node.
sudo systemctl enable bandd
sudo systemctl start bandd
You can tail the log output with
journalctl -u bandd.service -f. If all goes well, you should see that the node daemon has started syncing. Now you should wait until your node caught up with the most recent block.
... bandd: I[..] Executed block ... module=state height=20000 ...
... bandd: I[..] Committed state ... module=state height=20000 ...
... bandd: I[..] Executed block ... module=state height=20001 ...
... bandd: I[..] Committed state ... module=state height=20002 ...
See the explorer for the height of the latest block. Syncing should take a few hours depending on your internet connection.
⚠️ NOTE: You should not proceed to the next step until your node caught up to the latest block.
Create your account using
bandcli and request 10 testnet BAND tokens with curl. Feel free to change
YOUR_WALLET to whatever wallet name you want.
bandcli keys add YOUR_WALLETcurl --location --request POST 'https://guanyu-testnet3.bandchain.org/faucet/request'
--header 'Content-Type: application/json'
Send a transaction to apply as a validator. You can change
YOUR_MONIKER to any name you want reflected on the block explorer.
bandcli tx staking create-validator
--pubkey $(bandd tendermint show-validator)
Once the transaction is mined, you should see yourself on the validators page.
Congratulations — you are now a working BandChain GuanYu testnet3 validator! Don’t worry if you have low voting power, we will delegate more testnet tokens to your validator node within a few days.
For phase 1, BandChain validators are also responsible for responding to oracle data requests. Whenever someone submits a request message to BandChain, the chain will autonomously choose a subset of active oracle validators to perform the data query.
The validators chosen submit a report message to BandChain within a given timeframe as specified by a chain parameter (100 blocks in this testnet). We provide a program called yoda to do this task for you. For more information on the data request process, please see here
Yoda uses an external executor to resolve requests to data sources. Currently, it supports AWS Lambda (through REST interface).
In future releases, yoda will support more executors and allow you to specify multiple executors to add redundancy. Please follow to setup lambda function
You also need to set up
yodaand activate oracle status (guide)
That’s it! You can verify that your validator is now an oracle provider on the block explorer. Your yoda process must be responding to oracle requests assigned to your node. If the process misses a request, your oracle provider status will automatically get deactivated and you must send MsgActivate to activate again after a 10-minute waiting period and make sure that yoda is up.
With the successful upgrade from Wenchang to GuanYu on the testnet, the last step before the public upgrade on Mainnet via governance proposal on CosmoScan is battle-testing the network to ensure everything works smoothly without problems from various attack vectors.
We welcome existing and new validators to join the testnet to help us through this final stage which will secure decentralized oracle functionality on BandChain once live in the production environment.