Run a Taiko node with Docker
This guide will help you start up a Taiko RPC node using simple-taiko-node.
Software Dependencies
Dependency | Version | Version Check Command |
---|---|---|
git | ^2 | git --version |
Docker | ^24.0 | docker --version |
Prerequisites
- If using Windows, you should install Git BASH or WSL to use as your terminal.
- Meet the Geth minimum hardware requirements except for the storage requirement because Taiko nodes will require less storage (at the time of writing).
Run a Taiko node with simple-taiko-node
-
Clone simple-taiko-node
Terminal window git clone https://github.com/taikoxyz/simple-taiko-node.gitcd simple-taiko-nodeTerminal window git clone https://github.com/taikoxyz/simple-taiko-node.gitcd simple-taiko-node && git config core.autocrlf false -
Copy the sample .env files
Terminal window cp .env.sample .env -
Set the L1 node endpoint
First, open the
.env
in your preferred text editor:Terminal window nano .envTerminal window notepad .envNext, you will set the L1 node endpoints. If you are running a local L1 node, you cannot reference the L1 endpoints as
http://127.0.0.1:8545
,ws://127.0.0.1:8546
andhttp://127.0.0.1:5052
because that is local to inside the simple-taiko-node Docker networking. Instead you can try:- Using
host.docker.internal
(see: stack overflow). - Using the private ip address of your machine (use something like
ip addr show
to get this ip address).
After getting the address of the L1 node, set the following L1 node endpoints in your
.env
file. Here is an example:L1_ENDPOINT_HTTP=http://192.168.1.15:8545
L1_ENDPOINT_WS=ws://192.168.1.15:8546
L1_BEACON_HTTP=http://192.168.1.15:5052
- Using
-
Remove old testnet volumes
If you ran a testnet node previously, make sure to first remove the old volumes:
Terminal window docker compose down -v -
Set the profiles you want to run
In your
.env
, please setCOMPOSE_PROFILES
to whichever set of services you’d like to run in a comma separated list (i.e.,l2_execution_engine,proposer,prover
or any combination of the three).Note that if you include
proposer
orprover
, the services will still be disabled if you do not setENABLE_PROPOSER=true
orENABLE_PROVER=true
respectively. -
Start the node
Terminal window docker compose up -d -
Verify node is running
Option 1: Check with the node dashboard
A node dashboard will be running on
localhost
on theGRAFANA_PORT
you set in your.env
file, which defaults to3001
: http://localhost:3001/d/L2ExecutionEngine/l2-execution-engine-overview.You can verify that your node is syncing by checking that the chain head on the dashboard is increasing. Once the chain head matches what’s on the block explorer, you are fully synced.
Option 2: Check with curl commands
-
Check if the Execution Layer client is connected to Taiko L2:
Terminal window curl http://localhost:8547 \-X POST \-H "Content-Type: application/json" \--data '{"method":"eth_chainId","params":[],"id":1,"jsonrpc":"2.0"}'which should return the chainId as
0x28c61
(167009):{ "jsonrpc": "2.0", "id": 1, "result": "0x28c61" } -
Check if the Execution Layer client is synced by requesting the latest Taiko L2 / L3 block from the Execution Layer client:
Terminal window curl http://localhost:8547 \-X POST \-H "Content-Type: application/json" \--data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -
If the blockNumber response value is
0
or not growing, check the Taiko L2 logs here:Terminal window docker compose logs -fNote: You may need to use
sudo docker compose logs -f
if you are not in thedocker
group.
-
Video tutorial
See the video tutorial Run a Taiko L2 node (YouTube). It’s for a previous testnet but the overall steps are the same!
Full simple-taiko-node CLI reference
Make sure you are in the simple-taiko-node folder. If you are not:
cd simple-taiko-node
Start node
docker compose up -d
Stop node
docker compose down
Restart node
docker compose down && docker compose up -d
Update node
git pull origin main && docker compose pull
Remove node
docker compose down -v
Start and remove orphan containers
This command will start and remove containers that are not part of the current docker compose file.
docker compose up -d --remove-orphans
View grafana dashboard
open http://localhost:3001/d/L2ExecutionEngine/l2-execution-engine-overview
View logs
docker compose logs -f
View execution logs
docker compose logs -f l2_execution_engine
View client driver logs
docker compose logs -f taiko_client_driver
View client proposer logs
docker compose logs -f taiko_client_proposer
View system resource usage stats
docker stats
Compare .env and .env.sample
sdiff .env .env.sample
Troubleshooting
- Visit the Discord for help on any common error codes / issues.
- View the logs of the node (see above).