Tested on Ubuntu 20.04 but should be very similar for all Ubuntu/Debian systems. Logged in as root because I'm feeling lucky.
# Base installation
apt update && apt upgrade -y \
&& apt install -y joe git build-essential jq screen
# Reboot?
reboot
# Install Go
wget -N https://go.dev/dl/go1.17.linux-amd64.tar.gz \
&& rm -rf /usr/local/go && tar -C /usr/local -xzf go1.17.linux-amd64.tar.gz \
&& echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile \
&& echo 'export PATH=$PATH:~/go/bin' >> $HOME/.profile \
&& source $HOME/.profile \
&& go version
# Install IPFS
wget -N https://dist.ipfs.io/go-ipfs/v0.12.0/go-ipfs_v0.12.0_linux-amd64.tar.gz \
&& tar -xvzf go-ipfs_v0.12.0_linux-amd64.tar.gz \
&& (cd go-ipfs && bash install.sh) \
&& ipfs --version \
&& ipfs init
ipfs daemon &
git clone https://github.com/CosmosContracts/juno.git \
&& cd ~/juno \
&& git checkout v3.0.0 \
&& make install \
&& junod version
rm -rf ~/.juno \
&& export CHAIN_ID=juno-1 \
&& export MONIKER_NAME="Validatron 9000" \
&& export MORE_PEERS="cf9c45145f06198d3c72aa819b89b916f275e404@sentry-1.juno.ezstaking.io:26009,dedcf7bc2de6e4f27705bdab4b8f3f11fcbe1354@sentry-2.juno.ezstaking.io:26656,8656957a311dc882523654e25a1d8e2f014cd353@sentry-3.juno.ezstaking.io:26656" \
&& export PEERS="$(curl -s https://raw.githubusercontent.com/CosmosContracts/mainnet/main/juno-1/persistent_peers.txt),$MORE_PEERS" \
&& junod init "$MONIKER_NAME" \
&& ipfs get bafybeicg7e6ird3trbjklxyocjhiao4w65crje5bdp5gq6ypwtknrvetkq --output juno-phoenix-genesis.tar.gz \
&& tar -xvf juno-phoenix-genesis.tar.gz -C $HOME/.juno/config \
&& sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.juno/config/config.toml
cd ~ && junod start --halt-height 2616300 >>junod_3.0.0.log 2>&1
Notes:
- This version has a memory leak in Wasmer. Better disable swap. You might need to restart the node during sync a few times when it is killed due to OOM.
- Not sure if halt-height is neede because the node will crash with.
- You might want to add
--x-crisis-skip-assert-invariants
if you feel like YOLO
That way you don't have to go through genesis loading and invariant checks later on if something goes wrong.
# Check disk space and folder size
df
du -hs ~/.juno
# Copy
cp -R ~/.juno ~/.juno_backup
Build:
cd ~/juno \
&& git fetch --all \
&& git checkout v3.1.1 \
&& make install \
&& junod version
Start:
cd ~ && junod start >>junod_3.1.1.log 2>&1
Notes:
- This version seems to leak memory too. Better disable swap. You might need to restart the node during sync a few times when it is killed due to OOM.