A guide to setting up Juno full node and joining mainnet validator set

https://cdn-images-1.medium.com/max/880/1*JSF_i8VFjp9V5xxDaAbWTw.png

Official manual: https://docs.junonetwork.io/validators/joining-mainnet

Minimum Hardware Requirements

4 Cores  16GB RAM 1TB of storage (SSD or NVME)

On AWS, a t3.xlarge (4 vCPUs, 16GB Memory) should suffice. We recommend at least 1.5T of storage. We’ll be setting up the node on Ubuntu 20.04


Install Juno Full Node

Dependencies

# Update the local package list and install any available upgrades and depencencies
sudo apt-get update && sudo apt upgrade -y
sudo apt-get install make build-essential gcc git jq chrony -y

Install Go

# Download latest binary
wget <https://go.dev/dl/go1.18.linux-amd64.tar.gz>

# Make sure no existing installation
sudo rm -rf /usr/local/go

# Extract binaries over
sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz

# Add bin to the PATH environment variable
export PATH=$PATH:$(go env GOPATH)/bin

# Check version
go version #go version go1.18 linux/amd64

# Clean up
rm go1.18.linux-amd64.tar.gz

Install Junod Binary

git clone <https://github.com/CosmosContracts/juno> 
cd juno 

# For mainnet validator, we'll need to sync from genesis
git checkout v1.0.0 version
make install

# check to see if it's installed properly
junod version

Env Variables

#.profile
export CHAIN_ID=juno-1 #mainnet
source .profile
MONIKER_NAME="<Your Team Name>"

# Set the base repo URL for mainnet & retrieve peers
CHAIN_REPO="<https://raw.githubusercontent.com/CosmosContracts/mainnet/main/$CHAIN_ID>" && \\
export PEERS="$(curl -s "$CHAIN_REPO/persistent_peers.txt")"

# Minimum gas price
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \\"0.0025ujuno\\"/" ~/.juno/config/app.toml