Skip to content

Install

Website

Twitter

Discord

GitHub

Explorer

Chain ID: source-1 Latest Version: v3.0.3 Custom Port: 155
Section titled “Chain ID: Latest Version: Custom Port: ”
Specify the name of your “MONIKER” (validator) which will be visible in the explorer
Section titled “Specify the name of your “MONIKER” (validator) which will be visible in the explorer”
MONIKER="YOUR_MONIKER_NAME"
sudo apt update && sudo apt upgrade -y
sudo apt install curl build-essential git jq lz4 ncdu btop -y
cd $HOME
version="1.23.3"
wget "https://golang.org/dl/go$version.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$version.linux-amd64.tar.gz"
rm "go$version.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest
cd $HOME
git clone https://github.com/Source-Protocol-Cosmos/source.git
cd source
git checkout v3.0.3
make install
sourced version --long | grep -e commit -e version
# Set node configuration
sourced config chain-id source-1
sourced config keyring-backend file
sourced config node tcp://localhost:15557
# Initialize node
sourced init $MONIKER --chain-id source-1
# Download genesis and addrbook
curl -Ls https://snapshots.moonbridge.org/mainnet/source/genesis.json > $HOME/.source/config/genesis.json
curl -Ls https://snapshots.moonbridge.org/mainnet/source/addrbook.json > $HOME/.source/config/addrbook.json
# Set seeds and peers
SEEDS=""
PEERS=""
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.source/config/config.toml
# Setting minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.25usource\"|" $HOME/.source/config/app.toml
# Setting pruning
sed -i -e 's|^pruning *=.*|pruning = "custom"|' $HOME/.source/config/app.toml
sed -i -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' $HOME/.source/config/app.toml
sed -i -e 's|^pruning-interval *=.*|pruning-interval = "19"|' $HOME/.source/config/app.toml
# Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.source/config/config.toml
# Enable Prometheus
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.source/config/config.toml
# Setting custom ports
sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:15558\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://0.0.0.0:15557\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:15560\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:15556\"%; s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):15556\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":15566\"%" $HOME/.source/config/config.toml
sed -i -e "s%:1317%:15517%g; s%:8080%:15580%g; s%:9090%:15590%g; s%:9091%:15591%g; s%:8545%:15545%g; s%:8546%:15546%g; s%:6065%:15565%g" $HOME/.source/config/app.toml
mkdir -p $HOME/.source/cosmovisor/genesis/bin
mkdir -p $HOME/.source/cosmovisor/upgrades
cp $HOME/go/bin/sourced $HOME/.source/cosmovisor/genesis/bin/
sudo tee /etc/systemd/system/sourced.service > /dev/null << EOF
[Unit]
Description=Source Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=always
RestartSec=5
LimitNOFILE=65535
Environment="DAEMON_NAME=sourced"
Environment="DAEMON_HOME=$HOME/.source"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable sourced
curl -o - -L https://snapshots.moonbridge.org/mainnet/source/snapshot_latest.tar.lz4 | lz4 -dc - | tar -x -C $HOME/.source
[[ -f $HOME/.source/data/upgrade-info.json ]] && cp $HOME/.source/data/upgrade-info.json $HOME/.source/cosmovisor/genesis/upgrade-info.json
sudo systemctl start sourced && sudo journalctl -u sourced -f --no-hostname -o cat
sourced keys add wallet
sourced q bank balances $(sourced keys show wallet -a)
sourced tx staking create-validator \
--amount 1000000usource \
--pubkey $(sourced tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--security-contact "YOUR_EMAIL_ADDRESS" \
--chain-id source-1 \
--commission-rate 0.10 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--from wallet \
--fees=50000usource \
-y
sudo systemctl stop sourced
sudo systemctl disable sourced
sudo rm -rf /etc/systemd/system/sourced.service
sudo systemctl daemon-reload
sudo rm -f $(which sourced)
sudo rm -rf $HOME/.source
sudo rm -rf $HOME/source