💻Baremetal
Authors: [man4ela | catapulta.eth]
System Requirements
Comment
CPU
OS
RAM
DISK
8 Cores (Fastest per core speed)
Debian 12/Ubuntu 22.04
16 GB
2TB+ (SSD)
The Moonriver tracing node has a size of 1.8TB on January 30, 2025
Run a tracing node
Geth's debug
and txpool
APIs and OpenEthereum's trace
module provide non-standard RPC methods for getting a deeper insight into transaction processing. Supporting these RPC methods is important because many projects, such as The Graph, rely on them to index blockchain data.
To use the supported RPC methods, you need to run a tracing node. This guide covers the steps on how to setup and sync a tracing node on Moonriver.
Pre-Requisites
Setting up Firewall
Set explicit default UFW rules
Allow SSH
Allow remote RPC connections with Moonriver node (The default port for parachains is 9944
and 9945
for the embedded relay chain)
Not advised to allow all or unknown IP address to RPC port
Enable Firewall
Building a Node on Moonriver
Download the Latest Release Binary
Check release binary page and take the following steps to download the latest version:
Create a directory to store the binary and chain data (you might need sudo
)
Use wget
to grab the latest release binary and output it to the directory created in the previous step:
To verify that you have downloaded the correct version, you can run the following command in your terminal
You should receive the following output:
9b645b2fd9e575b26ea727e96dc2a81486a73461bb961ba33ea2136e4c9060d8
Setup the Wasm Overrides (required for a tracing node)
You'll need to create a directory for the Wasm runtime overrides and obtain them from the Moonbeam Runtime Overrides repository on GitHub
Move the Wasm overrides into your on-chain data directory:
Delete the override files for the networks that you aren't running
Set permissions for the overrides
Create the Configuration File
The next step is to create the systemd configuration file, you'll need to:
Replace
INSERT_YOUR_NODE_NAME
in two different places with the preffered name (it specifies a human-readable name for the node, which can be seen on telemetry, if enabled)--db-cache
specifies the memory the database cache is limited to use. It is recommended to set it to 50% of the actual RAM your server has. For example, for 128 GB RAM, the value must be set to64000
. The minimum value is2000
, but it is below the recommended specsDouble-check that the binary is in the proper path as described below (ExecStart)
Double-check the base path if you've used a different directory
Name the file
/etc/systemd/system/moonriver.service
Ensure that you grant execute permission to the binary file
Copy/Paste and edit INSERT_YOUR_NODE_NAME
and --db-cache
according to your parameters:
Ctrl+X and Y to save changes
--rpc-port
sets the unified port for both HTTP and WS connections. The default port for parachains is 9944
and 9945
for the embedded relay chain
We run an RPC endpoint so we must use the --unsafe-rpc-external
flag to run the Moonbeam node with external access to the RPC ports
To check or modify moonriver.service
parameters simply run
sudo nano /etc/systemd/system/
moonriver.service
Ctrl+X and Y to save changes
Maintain Your Node
As Moonbeam development continues, it will sometimes be necessary to upgrade your node software.
To update moonriver client, you can keep your existing chain data in tact, and only update the binary by following these steps:
Stop the systemd service
Remove the old binary file
Get the latest version of the Moonbeam release binary on GitHub and run the following command to update to that version (ensure to replace
INSERT_NEW_VERSION_TAG
with actual version)
Update permissions
Start moonriver service
References
Last updated
Was this helpful?