Sync a Mainnet Node
In order to run a validator on mainnet, you will have to sync it from genesis, up to the present block. This means replaying all of the chain's history, as well as navigating the upgrades that have happened.
The mainnet repo contains a history of everything that has happened on mainnet.
When configuring your node, make sure that your validator's commission is set to at least 5%, and make sure that minimum gas fees are set to at least 0.0025ujuno in app.toml
First, configure fees:
1
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025ujuno\"/" ~/.juno/config/app.toml
Copied!

Genesis

The first binary to use for genesis is v1.0.0:
1
git clone https://github.com/CosmosContracts/juno
2
cd juno
3
git checkout v1.0.0
4
make build && make install
5
junod version --long
Copied!
The final command will return:
1
name: juno
2
server_name: junod
3
version: HEAD-e507450f2e20aa4017e046bd24a7d8f1d3ca437a
4
commit: e507450f2e20aa4017e046bd24a7d8f1d3ca437a
Copied!

Moneta

Then, you will need to set up the moneta upgrade. We will assume that you are using cosmovisor, because you should be. You will hit this upgrade at block 1055000 and the chain will halt.
1
# get the new version (from inside the juno repo)
2
git checkout main && git pull
3
git checkout v2.0.6
4
make build && make install
5
6
# check the version - should be v2.0.6
7
# junod version --long will be commit d9c8ee6d13076f549688662aaeade4499e108d15
8
junod version --long
Copied!
Full instructions for the upgrade can be found here.

Moneta Security Patch

At height 1165200 the chain will stop again. A patched version of the binary was used to armor the validator set against an attack, so building yourself is not recommended. When this is no longer the current version, for sync purposes you will be able to build it yourself.
The instructions for getting and verifying the patched binary are here.