Running an Etherlink EVM node
The Etherlink EVM nodes are responsible for maintaining a copy of the Etherlink context and applying new blocks that process EVM transactions.
Prerequisites
- Make sure you understand the interaction between different nodes as described in Etherlink architecture.
- If you want to verify the blocks that come from the sequencer, run an Etherlink Smart Rollup node as described in Running an Etherlink Smart Rollup node. Public Smart Rollup nodes for Etherlink are not yet available, so you must run your own if you want to participate in the Etherlink network.
System requirements
The system requirements for the node depend on the History mode:
| Mode | Minimal | Recommended |
|---|---|---|
| Rolling | 16GB memory, 100GB storage | 32GB memory, 100GB storage |
| Full | 16GB memory, 300GB storage | 32GB memory, 1TB storage |
| Archive | 16GB memory, 1TB storage | 32GB memory, 2TB storage |
The recommended disk space allows extra space to accommodate growth.
Quickstart
If you don't want to see all of the options and settings for the EVM node, you can run the node quickly with these steps:
-
Download the latest release of the
octez-evm-nodebinary from https://gitlab.com/tezos/tezos/-/releases.As of version 6.0, Etherlink requires at least version 0.48 of the
octez-evm-nodebinary. -
Run the
octez-evm-node run observercommand to start the node as an observer:- Etherlink Mainnet
- Etherlink Ghostnet Testnet
- Etherlink Shadownet Testnet
Use this command for Etherlink Mainnet:
octez-evm-node run observer \
--network mainnet \
--history rolling:1 \
--dont-track-rollup-node \
--init-from-snapshotUse this command for Etherlink Ghostnet Testnet:
octez-evm-node run observer \
--network testnet \
--history rolling:1 \
--dont-track-rollup-node \
--init-from-snapshotEtherlink Ghostnet Testnet will sunset on 15 January 2026, and will then no longer be available. Please migrate to Etherlink Shadownet Testnet.
Use this command for Etherlink Shadownet Testnet:
octez-evm-node run observer \
--network shadownet \
--history rolling:1 \
--dont-track-rollup-node \
--init-from-snapshotBy default, the node stores its data and configuration file in the folder
$HOME/.octez-evm-node. You can change these default locations by passing the--data-dirand--config-filearguments or setting the equivalent environment variables as described in Configuring the node. -
Wait for the node to download a snapshot and catch up to the current state of the network. See Verifying that the node is running.
Modes
The EVM node supports these history modes:
-
archive(the default): The node stores a copy of all available Etherlink information. -
full: The node stores all of the necessary information to construct the current Etherlink state plus the states for a certain number of previous days, known as the retention period. -
rolling: The node stores the current context plus the complete transaction data for a certain number of previous days, known as the retention period.
The Octez EVM node history modes follow the same semantics as the Octez layer 1 node history modes. For more information about modes, see History modes in the Octez documentation.
To switch modes, see Switching history modes.
Getting the octez-evm-node binary
The easiest way to get the octez-evm-node binary is to download the binaries distributed as part of its latest release from https://gitlab.com/tezos/tezos/-/releases.
The release page provides static binaries for Linux systems (for amd64 and arm64 architectures).
As an alternative, you can use the minimal Docker image tezos/tezos-bare with a tag that includes octez-evm-node.
These images contain the correct version of the binary. Docker examples below use tezos/tezos-bare:octez-evm-node-latest which will always be the most recent release.
When you run the Docker image, you must expose the port that the EVM node runs on to the host system.
For example, this command runs the EVM node in the Docker container on port 8545 (the default) and uses the Docker -p argument to expose that port as port 8545 on the host system:
- Etherlink Mainnet
- Etherlink Ghostnet Testnet
- Etherlink Shadownet Testnet
docker run -it -p 8545:8545 \
--rm tezos/tezos-bare:octez-evm-node-latest octez-evm-node run observer \
--network mainnet --history rolling:1 --dont-track-rollup-node \
--init-from-snapshot --rpc-addr "0.0.0.0" --rpc-port "8545"
docker run -it -p 8545:8545 \
--rm tezos/tezos-bare:octez-evm-node-latest octez-evm-node run observer \
--network testnet --history rolling:1 --dont-track-rollup-node \
--init-from-snapshot --rpc-addr "0.0.0.0" --rpc-port "8545"
Etherlink Ghostnet Testnet will sunset on 15 January 2026, and will then no longer be available. Please migrate to Etherlink Shadownet Testnet.
docker run -it -p 8545:8545 \
--rm tezos/tezos-bare:octez-evm-node-latest octez-evm-node run observer \
--network shadownet --history rolling:1 --dont-track-rollup-node \
--init-from-snapshot --rpc-addr "0.0.0.0" --rpc-port "8545"