How to participate in bitsong-testnet-4 (incentivized)
Ladies and gentlemen,
The wait is over!!
The guide to joining bitsong-testnet-4 is out now!
The penultimate step before the Mainnet 1.0 is about to be completed.
We remind you that the goal of this testnet-4 is testing the sdk 0.39.1 the official release that we will use for Mainnet 1.0.
Prepare your node and start validating from the first block, ensuring a minimum reward of 5000btsg (max 64 validators).
Send your gentx no later than Tuesday October 13th at 15:00 UTC.
How to participate in bitsong-testnet-4 (incentivized)
This article is aimed at those validators who intend to participate in the third BitSong testnet. This guide replaces the previous ones and is not to be confused with other versions of the blockchain.
Awards & Conditions
This is a contest dedicated to validators who will take part in BitSong Testnet 4 and who will continue their participation also in Mainnet.
- Total Max Prize: 320,000btsg
- Max Partecipants: 64 validators
Conditions & further rewards:
- To be able to get the 5,000btsg prize, the validator must sign at least 90% of the blocks and be online no later than the first 100 blocks.
Disclaimer
Registration to the form does not imply automatic approval by BitSong Group Ltd. The contest program is in testing phase, it may change at any time and it may be necessary to perform a KYC/AML procedure. All approval requirements will be announced before the endline. The participants in this phase are aware that they may not receive the rewards if the KYC/AML procedures are not approved.
Pre-requisites
First of all, some preparations need to be made on your server (dedicated or cloud). Using a dedicated server ensures high performance (even in high load situations). The network uses the Tendermint consensus, which will elect a leader for each block. If your validator is offline, consensus will delay the inclusion of the block and you may be slashed!
For this guide we used the following specifications:
- Ubuntu 18.04 OS
- 2 vCPUs
- 4GB RAM
- 40GB SSD
- Release of incoming connections on port 26656
- Static ip address (Elastic IP for AWS, floating IP for DigitalOcean)
You can find these features at any cloud provider (AWS, DigitalOcean, Google Cloud, Hetzner, Linode, etc.)
Installing the necessary software
First you need to log into the server via ssh and install the security updates
sudo apt update && sudo apt upgrade -y
- Install the packages necessary for Golang to work
sudo apt install build-essential libleveldb1v5 git unzip -y
2. Install Golang (1.13.x)
wget https://dl.google.com/go/go1.13.6.linux-amd64.tar.gz
sudo tar -xvzf go1.13.6.linux-amd64.tar.gz
sudo mv go /usr/local
3. Update system variables
cat <<EOF >> ~/.profile
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOFsource ~/.profile
4. We verify that golang is properly working
go version
5. If everything went well, we should get this type of output
go version go1.13.6 linux/amd64
Install Go-BitSong
After installing go-lang
and the necessary packages, we can proceed to installgo-bitsong
(the bitsong blockchain)
- Clone the BitSong repository
git clone https://github.com/bitsongofficial/go-bitsong.git
2. Select the correct tag
cd go-bitsong
git checkout v0.6.0-beta1
3. Fill the binaries
make install
4. Check go-bitsong
version
bitsongd version --long
5. If everything went well, we should get this type of output
name: go-bitsong
server_name: bitsongd
client_name: bitsongcli
version: 0.6.0-beta1
commit: ed1332e344a28984e5bce8e4b87ea6597aa6384c
build_tags: netgo,ledger
go: go version go1.13.6 linux/amd64
Configure Go-BitSong
Let’s proceed with the configuration of go-bitsong
, replace <your-moniker>
with the public name you want to assign to your validator, bitsong-testnet-4
is the name of the testnet we will use
- Initialize
go-bitsong
indicating the name of your validator and the chain we wish to connect to
bitsongd init --chain-id bitsong-testnet-4 <your-moniker>
Note:
bitsongd init
sets thenode-id
of your validator. You can get this by typing the commandbitsongd tendermint show-node-id
. The value ofnode-id
will be part of the transaction we will create for the genesis, so if you plan to send thegenesis-transaction
, don’t reset yournode-id
using thebitsong unsafe-reset-all
or by changing your ip address
2. Create a wallet for your node
<your-wallet-name>
should be replaced with the name you want to give to the wallet. The name may differ from your moniker
.
bitsongcli keys add <your-wallet-name>
BEFORE CONTINUING, DON’T FORGET TO SAVE AND KEEP SAFE THE MNEMONIC PHRASE!
Genesis transaction
If you plan to activate your validator from the first block, you need to execute these simple instructions and open a pull request. Make sure that the steps have been properly completed and your validator is active before the network is launched.
If you don’t intend to start your node from the first block, you can skip this guide.
- Create a genesis account with
1000000000ubtsg
(1000btsg)
bitsongd add-genesis-account $(bitsongcli keys show <your-wallet-name> -a) 1000000000ubtsg
Do not change the amount, in this way we will all have a correct distribution of btsg. We remind you that
1btsg
is equivalent to1000000ubtsg
or10 ^ 6
2. Sign the gentx
that will be included in genesis
, if you want, you can add the --ip
flag to indicate your public ip address
bitsongd gentx --name <your-wallet-name> --amount 1000000000ubtsg --ip <your-public-ip>
By running the command, a genesis transaction will be created and saved on the path $HOME/.bitsongd/config/gentx/gentx-<gen-tx-hash>.json
. This should also be the only file inside the gentx
directory. If you find other files inside, we suggest you delete them and reissue the command for the gentx
(as described above).
3. Fork the repository dedicated to networks
Make sure you haven’t fork the repository previously, otherwise we recommend deleting it before continuing.
Make sure you fork the correct repository (https://github.com/bitsongofficial/networks) under your username.
cd $HOME && git clone https://github.com/<YOUR-USERNAME>/networks.git && cd $HOME/networks
4. Create the branch dedicated to sending the tx
git checkout -b genesis-<your-moniker>
5. Check that there are no other TXs inside
ls $HOME/.bitsongd/config/gentx
6. Copy the gentx
cp $HOME/.bitsongd/config/gentx/* $HOME/networks/bitsong-testnet-4/
7. If this is your first time using git, you need to do some configuration (optional)
Remember to change the data with those of your github account+
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
8. Add files and commit changes
git add bitsong-testnet-4/*
git commit -m 'feat: gentx for <your-moniker>'
9. Push the local branch to the remote repository
git push -u origin genesis-<your-moniker>
Great! If you have performed all the steps listed above, all you have to do now is opening a Pull Request
Create a Pull Request
- Click on this link https://github.com/bitsongofficial/networks/pulls
- Click on
New Pull Requst
3. Click on compare across forks
4. Change the following parameters
base repository: bitsongofficial/networks
base: masterhead repository: <YOUR-USERNAME>/networks
compare: genesis-<your-moniker
5. Continue by clicking on “Create pull request”
6. Confirm by clicking on “Create pull request”
Make sure you double check the previous steps before opening a PR.
Note: all gentx
must be sent no later than Tuesday October 13th at 15:00 UTC.
In case you don’t have time to send the gentx
, don’t worry, you can run your validator after the network has been launched.
Launching the testnet 🚀
[Wait for further instructions.]
Fill out the form
In order to coordinate and/or send notifications to the validators, we invite you to fill in the form available here
Website | Discord | Telegram | Github