Fullnode Install
This manual offers a detailed, step-by-step approach for establishing and operating a full node on the Junction, utilizing pre-assembled binaries. Designed to be user-friendly, it caters to both newcomers and seasoned node operators, ensuring an easy-to-follow procedure.
tip: the following commands are executed as root by default. If you are not a root user, please prepend the commands with sudo
Requirements
The minimum hardware requirements for running an Junction node are:
Install Tools
apt -q update
apt -qy install curl git jq lz4 build-essential aria2 unzip wget
rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.22.0.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/gobinpath.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | sudo tee /etc/profile.d/gopath.sh)
Clone and Build Junction
export TAG=v0.1.0
wget https://github.com/airchains-network/junction/releases/download/$TAG/junctiond
chmod +x junctiond && mv junctiond /usr/local/bin
junctiond version --long | grep -e version -e commit
Junction basic setup
# Set home dir, example: /data/junction
export DIR=/data/junction
export Moniker="xx"
mkdir -pv $DIR
ln -sv $DIR $HOME/.junction
# A moniker is a human-readable name for your node. Moniker can contain only ASCII characters, and cannot exceed 70 characters.
junctiond init $Moniker
Set Custom Port
Get Script for <portset.sh>
export DIR=$HOME/.junction
export MIN_GAS=0amf
export NUM=2
bash portset.sh $DIR $MIN_GAS $NUM
Genesis File
export DIR=$HOME/.junction
export TAG=v0.1.0
curl -Ls https://github.com/airchains-network/junction/releases/download/$TAG/genesis.json > \
$DIR/config/genesis.json
Add Seeds
export DIR=$HOME/.junction
export SEEDS="[email protected]:26656,[email protected]:24656"
sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$SEEDS\"|" $DIR/config/config.toml
Address Book
export DIR=$HOME/.junction
rm -rf $DIR/config/addrbook.json
curl -Ls https://snapshots2.stakerhouse.com/addrbook/airchains/addrbook.json > $HOME/.junction/config/addrbook.json
Create Service with Cosmovisor
DIR=$HOME/.junction
BIN=$(which junctiond)
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest
mkdir -pv $DIR/cosmovisor/genesis/bin
ln -sv $DIR/cosmovisor/genesis $DIR/cosmovisor/current
cp $BIN $DIR/cosmovisor/genesis/bin/
tee /etc/systemd/system/junctiond.service > /dev/null << EOF
[Unit]
Description=junction node service
After=network-online.target
[Service]
User=$USER
Restart=on-failure
Type=simple
ExecStart=$(which cosmovisor) run start
WorkingDirectory=$DIR
SyslogIdentifier=junctiond
LimitNOFILE=65545
Environment="DAEMON_NAME=junctiond"
Environment="DAEMON_HOME=$DIR"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable junctiond.service
systemctl start junctiond.service
journalctl -u junctiond.service -f -o cat
Last updated