-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #435 from cerc-io/reth
Add reth stack
- Loading branch information
Showing
9 changed files
with
158 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
version: "3.8" | ||
|
||
services: | ||
reth: | ||
restart: unless-stopped | ||
hostname: reth | ||
image: cerc/reth:local | ||
entrypoint: ["sh", "/docker-entrypoint-scripts.d/start-reth.sh"] | ||
volumes: | ||
- ../config/reth/start-reth.sh:/docker-entrypoint-scripts.d/start-reth.sh | ||
- reth_data:/root/.local/share/reth | ||
- shared_data:/root/.shared_data | ||
ports: | ||
- "8545:8545" # http rpc | ||
- "8546:8546" # ws rpc | ||
- "30303:30303" # network listening port | ||
- "30303:30303/udp" | ||
- "8551" # consensus auth | ||
|
||
lighthouse: | ||
restart: unless-stopped | ||
hostname: lighthouse | ||
image: cerc/lighthouse:local | ||
entrypoint: ["sh", "/docker-entrypoint-scripts.d/start-lighthouse.sh"] | ||
volumes: | ||
- ../config/reth/start-lighthouse.sh:/docker-entrypoint-scripts.d/start-lighthouse.sh | ||
- lighthouse_data:/root/.lighthouse/mainnet | ||
- shared_data:/root/.shared_data | ||
ports: | ||
- "8001" | ||
|
||
volumes: | ||
reth_data: | ||
lighthouse_data: | ||
shared_data: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#!/bin/bash | ||
|
||
# Wait for reth container to create jwt auth token | ||
while [ ! -f /root/.shared_data/jwt.hex ]; do | ||
echo "Jwt auth token not found, sleeping for 5s..." | ||
sleep 5 | ||
done | ||
|
||
echo "Jwt token found. Starting Lighthouse..." | ||
export RUST_LOG=info | ||
lighthouse bn \ | ||
--network mainnet \ | ||
--execution-endpoint http://reth:8551 \ | ||
--execution-jwt /root/.shared_data/jwt.hex \ | ||
--checkpoint-sync-url https://mainnet.checkpoint.sigp.io \ | ||
--disable-deposit-contract-sync |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#!/bin/bash | ||
|
||
# generate jwt token for reth/lighthouse authentication | ||
echo "Installing OpenSSL..." | ||
apt update | ||
apt install openssl | ||
echo "Generating jwt token for lighthouse auth..." | ||
openssl rand -hex 32 | tr -d "\n" | tee /root/.shared_data/jwt.hex | ||
|
||
# start reth | ||
echo "Starting Reth..." | ||
export RUST_LOG=info | ||
reth node \ | ||
--authrpc.jwtsecret /root/.shared_data/jwt.hex \ | ||
--authrpc.addr 0.0.0.0 \ | ||
--authrpc.port 8551 \ | ||
--http \ | ||
--http.addr 0.0.0.0 \ | ||
--http.corsdomain * \ | ||
--http.api eth,web3,net,rpc \ | ||
--ws \ | ||
--ws.addr 0.0.0.0 \ | ||
--ws.origins * \ | ||
--ws.api eth,web3,net,rpc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/usr/bin/env bash | ||
# Build cerc/go-opera | ||
source ${CERC_CONTAINER_BASE_DIR}/build-base.sh | ||
|
||
docker build -t cerc/reth:local ${build_command_args} ${CERC_REPO_BASE_DIR}/reth |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -43,3 +43,4 @@ cerc/watcher-gelato | |
cerc/lotus | ||
cerc/go-opera | ||
cerc/lasso | ||
cerc/reth |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,3 +29,4 @@ watcher-gelato | |
fixturenet-lotus | ||
mainnet-go-opera | ||
lasso | ||
reth |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# Reth | ||
Deploy a Reth API node alongside Lighthouse. | ||
|
||
## Clone required repositories | ||
|
||
``` | ||
$ laconic-so --stack reth setup-repositories | ||
``` | ||
|
||
## Build the Reth stack containers | ||
|
||
``` | ||
$ laconic-so --stack reth build-containers | ||
``` | ||
|
||
## Deploy the stack | ||
|
||
``` | ||
$ laconic-so --stack reth deploy up | ||
``` | ||
|
||
## Check logs | ||
|
||
``` | ||
$ laconic-so --stack reth deploy logs | ||
``` | ||
|
||
Verify that your node is syncing. You should see entries similar to this from the Lighthouse container: | ||
|
||
``` | ||
laconic-200e8f8ff7891515d777cd0f719078e3-lighthouse-1 | Jun 23 20:59:01.226 INFO New block received root: 0x9cd4a2dd9333cf802c2963c2f029deb0f94e511d2481fa0724ae8752e4c49b15, slot: 6727493 | ||
``` | ||
and entries similar to this from the Reth container: | ||
``` | ||
laconic-200e8f8ff7891515d777cd0f719078e3-reth-1 | 2023-06-23T20:59:11.557389Z INFO reth::node::events: Stage committed progress pipeline_stages=1/13 stage=Headers block=0 checkpoint=4.9% eta=1h 3m 57s | ||
``` | ||
|
||
## Test the API | ||
|
||
Reth's http api is accessible on port `8545` and the websocket api is accessible on port `8546`. | ||
``` | ||
$ curl --request POST \ | ||
--url http://localhost:8545/ \ | ||
--header 'Content-Type: application/json' \ | ||
--data '{ | ||
"jsonrpc": "2.0", | ||
"method": "eth_blockNumber", | ||
"params": [], | ||
"id": 0 | ||
}' | ||
# Response | ||
{"jsonrpc":"2.0","result":"0x0","id":0} | ||
``` | ||
|
||
## Clean up | ||
|
||
Stop all services running in the background: | ||
|
||
```bash | ||
$ laconic-so --stack reth deploy down | ||
``` | ||
To also delete the docker data volumes: | ||
```bash | ||
$ laconic-so --stack reth deploy down --delete-volumes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
version: "1.1" | ||
name: reth | ||
decription: "Reth node" | ||
repos: | ||
- github.com/paradigmxyz/reth | ||
containers: | ||
- cerc/reth | ||
- cerc/lighthouse | ||
pods: | ||
- reth |