Mainnet Node Guide - Linux
An initial set of instructions for running a Jupiter Callisto node. At the end of this guide you will be running an archive node on the Mainnet and you will be supporting the decentralized network!
These instructions were written for the Jupiter Mainnet after initial testing of the Cosmos-based Jupiter blockchain. Please report any problems in Jupiter Discord.
First we want to set up a user to run the node under. It is not recommended to run the node as root, because this comes with various security risks. If the node eventually gets used for validation these risks become much more severe, and could cause lost/stolen funds. Replace the text
username
with the username you wish to use. useradd username
usermod -aG sudo username
su username
For a more verbose set of instructions use Digital Ocean's guide (the original source of these commands).
NOTE: 2 GB may not be adequate, read about calculating the proper swap space
df -h
sudo fallocate -l 2G /swapfile
ls -lh /swapfile
sudo chmod 600 /swapfile
ls -lh /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon --show
free -h
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
wget https://go.dev/dl/go1.18.3.linux-amd64.tar.gz
It has been noticed that sudo doesn't work directly for installing go, so we want to temporarily switch to the root user for now:
sudo su
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
source ~/.profile
go version
Now let's exit to get out of our root user session:
exit
sudo apt install jq
git clone https://github.com/jupiter-project/jupiter-ng.git
cd jupiter-ng
sudo cp ./jupiterd /usr/local/bin
./init.sh
Let it run until you see output that blocks are being executed & committed. Then kill it with
CTRL + C
cp ./genesis.json ~/.ethermintd/config/genesis.json
Warning: This command can be dangerous if not copied correctly!
cd ~/.ethermintd/data/
sudo rm -rf application.db blockstore.db cs.wal evidence.db snapshots state.db tx_index.db
cd ~/jupiter-ng
A moniker is just a name used to identify your node. After running the init.sh file the moniker will be set to "jupiter" but it should be changed for easier identification of your node on the network and in other jupiterd commands.
Update
moniker="jupiter"
in the config.toml file with the following command:nano ~/.ethermintd/config/config.toml
# Comma separated list of seed nodes to connect to
seeds = ""
# Comma separated list of nodes to keep persistent connections to
persistent_peers = "0a[email protected]:26656"
jupiterd start --pruning=nothing --evm.tracer=json --trace --log_level info --minimum-gas-prices=0.0001ajup --json-rpc.api eth,txpool,personal,net,debug,web3,miner --api.enable
You should now see your node syncing with the network. Ask in Discord or visit the block explorer (not available yet) to check the current block height so you know how much longer you will be syncing for.