RPC Daemon

Remote Procedure Call Daemon

The RPC daemon is a vital part of Erigon, as it implements the RPC Service by processing JSON remote procedure calls (RPCs). This is what allows clients to access Erigon's APIs. Its flexible architecture means it can be deployed in-process (running inside Erigon) or out-of-process (as a standalone service).

RPC Deployment Modes

The Erigon RPC service offers three distinct deployment modes when it comes to the logical functionality, depending on whether it runs as part of the main erigon process or as a standalone rpcdaemon process.

Mode

Configuration

CLI Command to Run

Key Characteristics

Embedded 🏡

RPC server is hosted within the erigon process.

./build/bin/erigon

The simplest, all-in-one solution. No separate RPC command is needed.

Local ⚙️

rpcdaemon runs as a standalone process on the same machine as erigon. It directly accesses local data storage.

First (Erigon):

./build/bin/erigon --private.api.addr="<host_IP>:9090"

Second (rpcdaemon):

./build/bin/rpcdaemon --datadir="<erigon_data_path>"

Improves isolation, increases tuning options, and maintains high-performance data access. Requires two processes running on the same machine.

Remote 🌐

rpcdaemon runs as a standalone process on a separate machine and accesses data storage remotely via the Erigon gRPC interface.

First (Erigon):

./build/bin/erigon --private.api.addr="<host_IP>:9090" --grpc

Second (rpcdaemon):

./build/bin/rpcdaemon --private.api.addr="<erigon_IP>:9090"

Highly scalable, leverages the same data storage for multiple service endpoints. Uses the --private.api.addr flag to point the daemon to the remote Erigon instance.

For a comprehensive understanding and the latest instructions, the official documentation is essential:

circle-check

Command Line Options

When running RPC daemon in Local or Remote deployment mode, use this command to display available options:

./build/bin/rpcdaemon --help

The --help flag listing is reproduced below for your convenience.

Last updated

Was this helpful?