TechHubs
  • XRPL
  • Structs
  • Airchains
  • Lumera
Powered by GitBook
On this page
  • Install Go
  • Configure Go
  • Install Cosmovisor
  • Initialize Node
  • Install WASMVM
  • Config port, pruning, minimum gas price, enable prometheus and disable indexing
  • Configure Seed
  • Download Genesis
  • Configure addrbook
  • Configure Cosmovisor Folder
  • Create Service File
  • Download snapshot
  • Start Node Service

XRPL

XRPL Node Guild

Recommended Hardware Requirements

OS: Linux (AMD64)
CPU: 8x
RAM: 32GB
Storage: 1TB Cloud Storage (AWS), SSD or NVMe
Network: 100Mbps

Install Go and Cosmovisor

Install Go

We will use Go v1.23.4 as example here

sudo rm -rvf /usr/local/go/
wget https://golang.org/dl/go1.23.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.23.4.linux-amd64.tar.gz
rm go1.23.4.linux-amd64.tar.gz

Configure Go

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin

Install Cosmovisor

Using Cosmovisor v1.0.0

go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0

Install Node

git clone https://github.com/xrplevm/node xrp
cd xrp
git checkout v6.0.0
make install

Configure Node

Initialize Node

Please replace YOUR_MONIKER with your own moniker.

exrpd init TechHubs --chain-id xrplevm_1449000-1
exrpd config set client chain-id xrplevm_1449000-1
exrpd config set client keyring-backend os

Install WASMVM

export WASMVM_VERSION=v2.1.2
export LD_LIBRARY_PATH=$HOME/.exrpd/lib
mkdir -p $LD_LIBRARY_PATH
wget "https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm.$(uname -m).so" -O "$LD_LIBRARY_PATH/libwasmvm.$(uname -m).so"
echo "export LD_LIBRARY_PATH=$HOME/.exrpd/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc

Config port, pruning, minimum gas price, enable prometheus and disable indexing

echo "export XRPL_PORT="47"" >> $HOME/.bashrc
source $HOME/.bashrc

# set custom ports in app.toml
sed -i.bak -e "s%:1317%:${XRPL_PORT}317%g;
s%:8080%:${XRPL_PORT}080%g;
s%:9090%:${XRPL_PORT}090%g;
s%:9091%:${XRPL_PORT}091%g;
s%:8545%:${XRPL_PORT}545%g;
s%:8546%:${XRPL_PORT}546%g;
s%:6065%:${XRPL_PORT}065%g" $HOME/.exrpd/config/app.toml

# set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${XRPL_PORT}658%g;
s%:26657%:${XRPL_PORT}657%g;
s%:6060%:${XRPL_PORT}060%g;
s%:26656%:${XRPL_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${XRPL_PORT}656\"%;
s%:26660%:${XRPL_PORT}660%g" $HOME/.exrpd/config/config.toml

# config pruning
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.exrpd/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.exrpd/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.exrpd/config/app.toml

# set minimum gas price, enable prometheus and disable indexing
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0axrp"|g' $HOME/.exrpd/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.exrpd/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"kv\"/" $HOME/.exrpd/config/config.toml

Configure Seed

PEERS=972f58b459debdbaa92fd8479d89128b653d7eb8@65.21.29.250:3640,f8452f28064e9cf9ef1df0c055ac0280576143b6@65.108.69.56:26696,b96d3e221688108e40706d51cca59d80a60f67e9@65.21.200.7:3640,1881f3f71603b7eba91b8b84148834c7322122be@45.77.195.1:26656,6c5b34685a0c1956bde097914e42bc537f5ca5c7@79.137.70.143:26646
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.exrpd/config/config.toml

Download Genesis

wget -O genesis.json https://snapshots.polkachu.com/testnet-genesis/xrp/genesis.json --inet4-only
mv genesis.json ~/.exrpd/config

Configure addrbook

wget -O addrbook.json https://snapshots.polkachu.com/testnet-addrbook/xrp/addrbook.json --inet4-only
mv addrbook.json ~/.exrpd/config

Launch Node

Configure Cosmovisor Folder

Create Cosmovisor folders and load the node binary.

# Create Cosmovisor Folders
mkdir -p ~/.exrpd/cosmovisor/genesis/bin
mkdir -p ~/.exrpd/cosmovisor/upgrades

# Load Node Binary into Cosmovisor Folder
cp ~/go/bin/exrpd ~/.exrpd/cosmovisor/genesis/bin

Create Service File

[Unit]
Description="xrp node"
After=network-online.target

[Service]
User=USER
ExecStart=/root/go/bin/cosmovisor run start --home /root/.exrpd
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="DAEMON_NAME=exrpd"
Environment="DAEMON_HOME=/home/USER/.exrpd"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"

[Install]
WantedBy=multi-user.target

Download snapshot

sudo apt install lz4

wget -O xrp_243913.tar.lz4 https://xrpl-testnet-snapshots.techhubs.asia/xrp_243913.tar.lz4 --inet4-only

# Back up priv_validator_state.json if needed
cp ~/.exrpd/data/priv_validator_state.json  ~/.exrpd/priv_validator_state.json

# Reset node state
exrpd tendermint unsafe-reset-all --home $HOME/.exrpd --keep-addr-book

lz4 -c -d xrp_243913.tar.lz4  | tar -x -C $HOME/.exrpd

# Replace with the backed-up priv_validator_state.json
cp ~/.exrpd/priv_validator_state.json  ~/.exrpd/data/priv_validator_state.json

Start Node Service

sudo systemctl daemon-reload
sudo systemctl enable exrpd
sudo systemctl start exrpd && sudo journalctl -u exrpd -fo cat
NextStructs

Last updated 3 months ago