We are excited to announce the upcoming genesis process for the Side Chain mainnet. Thank you for joining as a genesis validator. Below are instructions for submitting your GenTx and starting the network.
To ensure seamless coordination, the #genesis-mainnet channel on our Side Protocol Discord will serve as the primary communication hub. The channel is private—please contact Sally on Discord to gain access. Joining Discord during this period is crucial, as it will be the central platform for updates and issue resolution throughout the launch process.
After collecting all GenTx submissions, we will share the genesis.json file for review. If no changes are recommended during the review period, the finalized Genesis file will be released shortly after.
Recommended minimum hardware requirements:
- 4 or more physical CPU cores
- At least 500GB of SSD disk storage
- At least 16GB of memory
- At least 100mbps network bandwidth
These instructions are for creating a basic setup of a single node. Validators should modify these instructions for their own custom setups as needed.
Prerequisites: Make sure to have Golang >=1.22. You need to ensure your GOPATH configuration is correct.
git clone https://github.com/sideprotocol/side.git
git checkout v1.0.0-rc.1
cd side
make install
This will install sided
binary into $GOBIN
.
You can copy the sided executable to the following destination for global use:
sudo cp ~/go/bin/sided /usr/local/bin/
Check that you have the right version installed:
sided version
Returns:
1.0.0-rc.1
- Initialize the Side Chain directories and create a local genesis file with the correct chain-id. You will be asked to replace the temporary Genesis file with the finalized Genesis file once all participating validators submit their Gentx.
sided init <NODE_NAME> --chain-id=sidechain-1
- Import validator key pair: You should use the validator key or mnemonic from the testnet phase and import it into the current environment to create a genesis transaction. We have deposited appropriate Side token rewards into your validator address based on the node statistics from the testnet phase, which can be used to create a validator node for the mainnet.
// Import validator by private key:
sided keys import-hex <KEY_NAME> <HEX> --key-type segwit
// Import validator by mnemonics:
sided keys add <KEY_NAME> --recover --key-type segwit
- Replace the genesis.json file with pre-genesis.json.
cd ~/.side/config
rm genesis.json
wget https://github.com/sideprotocol/networks/raw/main/sidechain-1/pre-genesis.json -O genesis.json
Make sure your validator account is in the genesis file.
- Create the Gentx.
The
sided genesis gentx -h
command will provide helpful flags to configure your validator node.
sided genesis gentx <KEY_NAME> 1000000uside \
--chain-id="sidechain-1" \
--moniker=<MONIKER> \
--website="<webside>" \
--details="<DETAILS>" \
--commission-rate="0.1" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--identity="<IDENTITY>" \
--pubkey="<PUBKEY>"
If all goes well, you will see a message similar to the following:
Genesis transaction written to "/home/user/.side/config/gentx/gentx-******.json"
-
Rename the Gentx file to gentx-{your-moniker}.json (please do not have any spaces or special characters in the file name).
-
Fork the networks repo into your GitHub account
-
Clone your repo using:
git clone https://github.com/<your-github-username>/networks
cd networks
- Copy the generated gentx json file to
/sidechain-1/gentxs/
:
cd sidechain-1
cp ~/.side/config/gentx/gentx*.json ./gentx/
- Commit and push to your repo:
git add .
git commit -m "<your validator moniker> gentx"
git push origin main
- Create a PR to https://github.com/sideprotocol/networks
For a demonstration of a step-by-step guide to creating a PR please follow the GitHub documentation or watch this helpful youtube video.
Please DM on SideProtocol's discord with a link of the GitHub PR. Only PRs from selected validators will be accepted. Validators must submit their PRs prior to the deadline submission date.
The Side Chain core team will provide Part 2 instructions for replacing the genesis.json after collecting Gentxs. Please follow on-going communication on Discord and reach out to the Side Chain core team whenever you have any questions.