Setting up cyber Genesis Validator
This guide will provide detailed instructions on how to submit gentx for the bostrom chain!
The primary point of communication for the whole gentx and lauch ceremonies will be our Cyber Hall of Fame telegram chat.
Some important notices about joining the genesis validator set:
- GenTx must be submited by 0:00 UTC 1st November
- We recommend only highly experienced validators who have run on past Cosmos SDK chains and have participated in a genesis ceremony before become genesis validators on Cyber.
- Being a Genesis validator for a Supercomputer is an honor, so we expect all participants to treat this opportunity accordingly. We want our validators to be pro-active, maintain good uptime, communicate and act professionally during chain upgrades, and respectfully participate in governance.
- To become a Genesis validator, you must have boot tokens on your account in Genesis. That might've happened if you participated in one of our previous testnets or Game of Links, or some other kind of incentivized activity.
Hardware setup
Recommended hardware setup stays the same as it was for the last Bostrom-testnets:
CPU: 6 cores
RAM: 32 GB
SSD: 1 TB
Connection: 50+Mbps, Stable and low-latency connection
GPU: Nvidia CUDA-cores; 4+ Gb of video memory*
Software: Ubuntu 18.04 LTS / 20.04 LTS
The blockchain is always growing. Therefore, in the future, hardware requirements might increase. Also, the specs above are not mandatory and may differ, but it always implies that the node might be powerful and reliable.
Instructions
All instructions provided are for the Ubuntu 20.04 system and may vary for other versions\OS.
Install GO 1.17+
Cyber is written in go, and we'll need the version 1.17+ to compile it.
Check which version you currently have with
If you need to update or install 'go' we'd recommend to use the handy go version manager called g. To install 'go' with it use:
|
Agree to install latest version, or manually install specific version:
You might see something like that:
Install cyber
Download source files from github:
Then install cyber daemon. Running the following command will install the executable cyber to your GOPATH:
Verify your installation by running:
Result must look like this:
If your cyber version does not match - please verify that you dont have any other daemons laying somewhere else in /usr/local/bin.
Initialize your node
Before you proceed verify that you don't have any old\test nodes initialized in that machine, check and remove folders inside ~/.cyber/. If you have the testnet node running, stop it and remove ~/.cyber/ folder (do not forget to backup your seeds before you remove anything):
Then run the following to init fresh one(replace <your_node_moniker> with something, for example web2_destroyer):
This will create a new .cyber folder in your HOME directory.
Download Pregenesis File
You can now download the "pregenesis" file for the chain. This is a genesis file with the chain-id and all balances.
Import Validator Key
To create a gentx, you will need the private key to an address that has some tokens in Genesis.
There are a couple options for how to import a key into cyber.
You can import such a key into via a mnemonic or add one from the Ledger.
You could use your ledger device with the Cosmos app installed on it to sign transactions. Add address from Ledger:
<your_key_name> is any name you pick to represent this key pair. You have to refer to that name later when you use cli to sign transactions.
Note
If you got an error saying
Error: No such interface “org...” on object at path /
during key import, please use file keyring with all cli key commands:
Create GenTx
Now that you have your key imported you are able to use it to create your gentx.
To create the Genesis transaction, you will have to choose the following parameters for your validator:
- moniker
- commission-rate
- commission-max-rate
- commission-max-change-rate
- min-self-delegation (must be >10000boot)
- website (optional)
- details (optional)
- identity (keybase key hash, this is used to get validator logos in block explorers. optional)
- pubkey (will be pulled automatically)
Note that your gentx will be rejected if you use an amount greater than what you have on you balance in Genesis.
An example Genesis command would look like this:
add --keyring-backend file if you used it during key import.
Output will look similar to this:
File content must look similar to this sample-gentx
Submit Your GenTx
To submit your GenTx for inclusion in the chain, please upload it to the github.com/cybercongress/networks repo by 0:00 UTC 1st November.
To upload the your Genesis file, please follow these steps:
- Rename the gentx file located in your
$HOME/.cyber/config/gentx/to gentx-{your-moniker}.json (please do not have any spaces or special characters in the file name) - Fork this repo by going to https://github.com/cybercongress/networks, clicking on fork, and choose your account (if multiple).
- Clone your copy of the fork to your local machine
- Copy the gentx to the networks repo (ensure that it is in the correct folder)
- Commit and push to your repo.
- Create a pull request from your fork to master on this repo.
- Let us know in Cyber Hall of Fame when you've completed this process!
- Stay tuned, further steps will be provided soon!
Back-up validator keys (!)
Your identity as validator consists of two things:
- your account (to sign transactions)
- your validator private key (to sign stuff on the chain consensus layer)
Please back up $HOME/.cyber/config/priv_validator_key.json along with your seed phrase. In case of occasional folder loss you would be able to restore you validator.
Those things should not be changed, otherwise, your validator won't start on Genesis.
Prepare node for chain start
Ok, so here is it, the final genesis for the bostrom network - QmYubyVNfghD4xCrTFj26zBwrF9s5GJhi1TmxvrwmJCipr. We have 33 valid genesis transactions submitted! Now only a few steps left to finalize the validator node setup for bostrom launch:
- Clear out old containers
- Download final genesis, and place it to working directory
$HOME/.cyber - Pull and deploy new Docker container
- Configure persistent peers, seeds, and some other stuff from
config.toml - Verify the correctness of the keys and files on the node
Cleaning up
If you somehow still have old containers like bostrom-testnet-6 or bostrom-testnet-7 sitting on your node - it is a good time to remove them now.
Check which docker containers you have:
And stop\delete all unnecessary:
Check and remove older images to save some space
If you have older nodes on your server, please remove the cosmovisor
directory from .cyber, so it will be updated with the latest version of binaries during docker startup:
Obtain signed genesis file
Hereby we mean that you already have your cyber node initialized in $HOME directory.
Remove pre-genesis from .cyber:
Download genesis file for bostrom:
Also, it is required to remove old chain data and reset the home directory to state of signed genesis:
Deploy docker container
To pull and deploy docker container for the bostrom chain use the following command:
Setup config.toml
Add correct seeds and persistent peers nodes. You may find some here Insert them into lines 185 and 188 of $HOME/.cyber/config/config.toml:
# Comma separated list of seed nodes to connect to
# Comma separated list of nodes to keep persistent connections to
For better network stability please update your .cyber/config/config.toml lines as follows:
addr_book_strict = false
max_num_inbound_peers = 60
max_num_outbound_peers = 30
persistent_peers_max_dial_period = "500s"
Verify validator keys
Verify that your priv_validator_key.json from $HOME/.cyber/config/ directory matches the one you used to create gentx.
Check that pub key value section is similar to the one corresponding your validator name below:
Launch
When all above are checked and completed please go ahead and restart the container:
Check the logs.
They have to contain the following:
If you got that message - congrats, you set everything up!
The chain will start at 5th November 13:22UTC. Please track Cyber Hall of Fame telegram chat, all coordination will be done there.
Also, watch the bostrom genesis at https://cyb.ai/genesis, you can find something beautiful and interesting there!
See you in the Cyber Era!