Miscellaneous
Run an Ethereum Full Node
Only for Ethereum Mainnet
This section was prepared only for Forta node operators who would like to point their Forta nodes to their own Ethereum Mainnet nodes. If your Forta node is scanning chains other than Ethereum Mainnet, you can safely ignore this section altogether.
If you are planning on setting up a Forta node, your own full node is the most reliable option as a provider to your Forta node and we strongly recommend it.
The final command to run the Ethereum node will be:
erigon-rpcdaemon \
--http.vhosts '*' --http.port 8545 \
--http.addr 0.0.0.0 --http.corsdomain '*' \
--http.api 'eth,net,web3,trace' --private.api.addr=localhost:9090 \
--authrpc.addr 0.0.0.0 --authrpc.jwtsecret <secret>
erigon --private.api.addr=localhost:9090
Ethereum node access
Be sure to set --http.vhosts
to allow hostname access, and enable eth,net,web3
HTTP APIs. Note that trace
is only applicable for Ethereum mainnet.
The Merge
To make your Ethereum node support The Merge, your Erigon node (Execution Layer - EL) will need to be run with a beacon node (Consensus Layer - CL). A few consensus layer clients are listed below:
- Prysm
- Lighthouse
- Lodestar
- Nimbus
- Teku
For more information on versions of these clients, please see the Ethereum Merge announcement blog post.
You can run the consensus layer client on the same machine as the execution layer client (Erigon) by default Erigon's engine API listens on localhost. If you are running CL client on a different machine than Erigon, you will need to configure the Erigon node to connect to the CL client by passing --authrpc.addr 0.0.0.0
and --authrpc.vhosts <CL host>
.
Erigon node (execution layer client)
Upgrade your node to the latest "stable" version of Erigon 2022.08.03-alpha
.
If you are running Erigon directly from the binary (and not using docker-compose), you will need to pass --authrpc.jwtsecret <secret>
. For more information see Erigon documentation.
If you are running Erigon using docker-compose, you don't have to pass any extra flags for data dir or JWT secret since these are already configured in the docker-compose file.
Prysm (consensus layer client)
Upgrade your node to the latest "stable" version of Prysm v3.0.0
.
Use Docker
You can install Prysm and run a beacon node using Docker by following Prysm Docker.
Architecture Constraints
Running with docker might not work on Linux ARM64.
Install binary
Alternatively, you can install Prysm directly by downloading the Prysm client binary and making it executable.
You can run your beacon node with the following commands:
mkdir prysm && cd prysm
curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh \
--output prysm.sh &&\
chmod +x prysm.sh
Follow installation docs
As yet another option, you can run a beacon node using Prysm by following Prysm Beacon Node.
You will need to pass --jwt-secret=<path_to_erigon_jwt_hex>
to the beacon node. It doesn't require --suggested-fee-recipient
flag unless you are running a validator.
Additionally, you can pass the --slots-per-archive-point
flag to the beacon node. A lower number helps improve the CL API performance while increasing the storage cost. For more information on slots per archive point, please refer to Run an archival node section in Prysm docs.
After running with any method mentioned above, you should be able to see the beacon node running and syncing. This usually takes a couple of days, but it can take longer depending on your network and hardware specs.