Planned Start Time: October 1st at 15:00 UTC.
Please have your gentx submitted by Wednesday, September 29th, 10pm UTC if you wish to participate.
You will NEED to qualify for the Juno stakedrop (Feb 18th Cosmos Hub-3 Snapshot) to successfully submit a gentx. Alternatively validators may join the mainnet after block 1 by contacting the core development team and requesting some Juno to spin up or aquiring some Juno via Osmosis AMM shortly after launch.
Prerequisites: Make sure to have Golang >=1.17.
You need to ensure your gopath configuration is correct. If the following 'make' step does not work then you might have to add these lines to your .profile or .zshrc in the users home folder:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
git clone https://github.com/CosmosContracts/juno
cd juno
git checkout juno-1
make build && make install
This will build and install junod
binary into $GOBIN
.
Note: When building from source, it is important to have your $GOPATH
set correctly. When in doubt, the following should do:
mkdir ~/go
export GOPATH=~/go
- 2GB RAM
- 250GB of disk space
- 1.4 GHz amd64 CPU
Below are the instructions to generate & submit your genesis transaction
Similar to Osmosis, only nodes that received the airdrop will be able to validate. Others will be able to join the validator set at a later date.
-
Initialize the Juno directories and create the local genesis file with the correct chain-id
junod init <MONIKER-NAME> --chain-id=juno-1
-
Create a local key pair (you should use the same key associated with you airdropped account)
junod keys add <key-name>
Note: if you're using an offline key for signing (for example, with a Ledger), do this with
junod keys add <KEY-NAME> --pubkey <YOUR-PUBKEY>
. For the rest of the transactions, you will use the--generate-only
flag and sign them offline withjunod tx sign
. -
Download the pre-genesis file:
curl -s https://raw.githubusercontent.com/CosmosContracts/mainnet/main/juno-1/pre-genesis.json >~/.juno/config/genesis.json
Find your account in the
juno-1/pre-genesis.json
file. The balance of your airdrop is what you'll be able to use with your validator. -
Create the gentx, replace
<KEY-NAME>
and<BALANCE>
:junod gentx <KEY-NAME> <BALANCE>ujuno --chain-id=juno-1
If all goes well, you will see a message similar to the following:
Genesis transaction written to "/home/user/.juno/config/gentx/gentx-******.json"
-
Fork this repo into your Github account
-
Clone your repo using:
git clone https://github.com/<YOUR-GITHUB-USERNAME>/mainnet
-
Copy the generated gentx json file to
<REPO-PATH>/juno-1/gentx/
cd mainnet cp ~/.juno/config/gentx/gentx*.json ./juno-1/gentx/
-
Commit and push to your repo
-
Create a PR onto https://github.com/CosmosContracts/mainnet
-
Only PRs from individuals / groups with a history successfully running validator nodes and that have initial juno balance from the stakedrop will be accepted. This is to ensure the network successfully starts on time.
Note, we'll be going through some upgrades soon after Juno mainnet. Consider using Cosmovisor to make your life easier.
Download Genesis file when the time is right. Put it in your /home/<YOUR-USERNAME>/.juno
folder.
Create a systemd file for your Juno service:
sudo nano /etc/systemd/system/junod.service
Copy and paste the following and update <YOUR-USERNAME>
:
Description=Juno daemon
After=network-online.target
[Service]
User=<YOUR_USERNAME>
ExecStart=/home/<YOUR-USERNAME>/go/bin/junod start --home /home/<YOUR-USERNAME>/.juno
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
This assumes $HOME/.juno
to be your directory for config and data. Your actual directory locations may vary.
Enable and start the new service:
sudo systemctl enable junod
sudo systemctl start junod
Check status:
junod status
Check logs:
journalctl -u junod -f