Installation

Manual Installation

Chain ID
Version
Custom Port

xrplevm_1449000-1

7.0.0

24

Official Documentation Recommended Hardware: 4 Cores, 32GB RAM, 500GB of storage (NVME)

# install dependencies, if needed
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y

Node NameWalletPortPruningPruning Keep RecentPruning Interval

# install go, if needed
cd $HOME
VER="1.21.3"
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin

# set vars
echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="test"" >> $HOME/.bash_profile
echo "export XRPL_CHAIN_ID="xrplevm_1449000-1"" >> $HOME/.bash_profile
echo "export XRPL_PORT="24"" >> $HOME/.bash_profile
source $HOME/.bash_profile

# download binary
cd $HOME
rm -rf xrp
git clone https://github.com/xrplevm/node.git
cd node
git checkout v6.0.0
make install

# config and init app
exrpd config set client chain-id $XRPL_CHAIN_ID
exrpd init $MONIKER --chain-id $XRPL_CHAIN_ID
sed -i -e "s|^node *=.*|node = \"tcp://localhost:${XRPL_PORT}657\"|" $HOME/.exrpd/config/client.toml

# download genesis and addrbook
wget -O $HOME/.exrpd/config/genesis.json https://server-2.itrocket.net/testnet/xrplevm/genesis.json
wget -O $HOME/.exrpd/config/addrbook.json  https://server-2.itrocket.net/testnet/xrplevm/addrbook.json

# set seeds and peers
SEEDS="6a271a9b7d07393a1521b1c7386a9fa9147a1762@xrplevm-testnet-seed.itrocket.net:16656"
PEERS="7acc7bf700acfc04705538a823dc0ac3567392b5@xrp-testnet-peer.monkeylabs.me:24656,166f7e48e1c756cc663fee5be96ab2bbdb4db970@xrplevm-testnet-peer.itrocket.net:13656,a4f2d903cebf5bc83fcb66fbda0af5cb922a6436@135.181.139.249:47656,de2117667b79d2e89aa9dd7b97b9f34c923692a1@94.130.23.254:30056,b01a918af85f90d38dda24238500fc5573f9145a@207.180.222.90:26656,5998f89c7549ec10672bf16a4d5b90786e856393@195.3.223.73:22656,3445cd5447b3d1993f0c4235a74057a11950f52c@192.3.6.118:26656,2d14b84e5e2f1784b8e942216a330df05cecd137@152.53.49.146:13656,6c5b34685a0c1956bde097914e42bc537f5ca5c7@79.137.70.143:26646,e8b19c2f802327f42da554f099aab959611c3e66@144.76.112.58:19656,72d6ee0a449bcd3d70f7f4807be526a536c45398@88.99.137.138:19656,24b71f58417414fa1bd21c788a0a85a98f49e7f9@162.55.181.91:26656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
       -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.exrpd/config/config.toml

# 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 = \"null\"/" $HOME/.exrpd/config/config.toml

# create service file
sudo tee /etc/systemd/system/exrpd.service > /dev/null <<EOF
[Unit]
Description=XRPL EVM node
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/.exrpd
ExecStart=$(which exrpd) start --home $HOME/.exrpd
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

# reset and download snapshot
exrpd tendermint unsafe-reset-all --home $HOME/.exrpd
if curl -s --head curl https://server-2.itrocket.net/testnet/xrplevm/xrplevm_2025-03-20_477281_snap.tar.lz4 | head -n 1 | grep "200" > /dev/null; then
  curl https://server-2.itrocket.net/testnet/xrplevm/xrplevm_2025-03-20_477281_snap.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.exrpd
    else
  echo "no snapshot found"
fi

# enable and start service
sudo systemctl daemon-reload
sudo systemctl enable exrpd
sudo systemctl restart exrpd && sudo journalctl -u exrpd -fo cat

Automatic Installation

pruning: custom: 100/0/19 | indexer: null

Create wallet

Node Sync Status Checker

Create validator

MonikerIdentityDetailsAmount, uxrpCommission rateCommission max rateCommission max change rateWebsite

Security

To protect you keys please don`t share your privkey, mnemonic and follow basic security rules

Firewall security

Set the default to allow outgoing connections, deny all incoming, allow ssh and node p2p port

Delete node

Last updated