⚒️Installation

  1. Update packages and install useful tools.

sudo apt update && sudo apt upgrade --yes && \
sudo apt install git build-essential ufw curl jq snapd screen ncdu nano fuse ufw --yes

apt-get update
sudo apt-get install libsnappy-dev libleveldb-dev --yes
  1. Install go using snap.

sudo snap install go --classic && \
echo 'export GOPATH="$HOME/go"' >> ~/.profile && \
echo 'export GOBIN="$GOPATH/bin"' >> ~/.profile && \
echo 'export PATH="$GOBIN:$PATH"' >> ~/.profile && \
source ~/.profile && \
go version

snap refresh go --channel="1.23/stable"
  1. Build the binary from source.

git clone https://github.com/provenance-io/provenance
cd provenance
git checkout v1.22.0
make clean
make install
provenanced version
  1. Initialize your node.

provenanced init <node_name> --chain-id pio-mainnet-1
  1. Download genesis and addrbook, set up gas prices.

sed -i -e 's/namespace = "cometbft"/namespace = "provenance"/' $HOME/.provenanced/config/config.toml
wget -O $HOME/.provenanced/config/genesis.json https://server-5.itrocket.net/mainnet/provenance/genesis.json
wget -O $HOME/.provenanced/config/addrbook.json  https://server-5.itrocket.net/mainnet/provenance/addrbook.json
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "1905nhash"|g' $HOME/.provenanced/config/app.toml
  1. Add seed and persistent peers to config.toml.

SEEDS="a280ec7a1b563cb71510723b860ed37d40494308@provenance-mainnet-seed.itrocket.net:57656"
PEERS="b75bb5d0c033b5a8ca24df607a757d09e4f99acd@provenance-mainnet-peer.itrocket.net:57656,[email protected]:28656,[email protected]:26656,[email protected]:36696,[email protected]:26656,[email protected]:26656,[email protected]:46656,[email protected]:46656,[email protected]:26656,[email protected]:20006,[email protected]:42656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
       -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.provenanced/config/config.toml
  1. Set up pruning (optional).

sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.provenanced/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.provenanced/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"10\"/" $HOME/.provenanced/config/app.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.provenanced/config/config.toml
  1. Create service file.

sudo tee /etc/systemd/system/provenanced.service > /dev/null <<EOF
[Unit]
Description=Provenance Daemon
After=network-online.target

[Service]
User=$USER
ExecStart=$(which provenanced) start --home /root/.provenanced
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
  1. Enable and start service.

systemctl daemon-reload
systemctl enable provenanced
systemctl restart provenanced
journalctl -u provenanced -f -o cat

If you would like to speed up the sync process, you may try using State Sync.

Last updated