Update system and install build tools
Ensure your system is up to date and has all the necessary tools for the installation:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl tar wget clang pkg-config libssl-dev jq build-essential \
bsdmainutils git make ncdu gcc chrony liblz4-tool
Install Go (if needed)
cd "$HOME"
if ! command -v go >/dev/null 2>&1; then
VER="1.24.1"
wget "https://golang.org/dl/go${VER}.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go${VER}.linux-amd64.tar.gz"
rm "go${VER}.linux-amd64.tar.gz"
fi
[ -d "$HOME/go/bin" ] || mkdir -p "$HOME/go/bin"
if ! grep -q "/usr/local/go/bin" "$HOME/.bash_profile" 2>/dev/null; then
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> "$HOME/.bash_profile"
fi
source "$HOME/.bash_profile" 2>/dev/null || true
go version
Install node
cd "$HOME"
REPO_DIR=$(basename https://github.com/pushchain/push-chain-node.git .git)
rm -rf "$REPO_DIR"
git clone https://github.com/pushchain/push-chain-node.git
cd "$REPO_DIR"
VERSION="v0.0.18"
git checkout "tags/$VERSION"
make build
make install
pchaind version
Initialize Node
Replace <node_name> with your moniker.
pchaind init <node_name> --chain-id "push_42101-1"
Download genesis.json
curl -Ls <genesis_url> > "$HOME/.<chain_name>/config/genesis.json"
Download addrbook.json
curl -Ls https://snapshots.push.posthuman.digital/addrbook.json > "$HOME/.<chain_name>/config/addrbook.json"
Create systemd service
NODE_USER=$(whoami)
sudo tee /etc/systemd/system/pchaind.service > /dev/null <<EOF
[Unit]
Description=pchaind daemon
After=network-online.target
[Service]
User=${NODE_USER}
ExecStart=$(which pchaind) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable pchaind.service
sudo systemctl start pchaind.service
Sync node:
After that you sould sync node. You have 2 ways. State-sync or download snapsot. See this guides in next tabs.
Start service
sudo systemctl enable pchaind.service && sudo systemctl start pchaind.service && journalctl -u pchaind.service -f