Skip to content

Commit

Permalink
Merge pull request #435 from cerc-io/reth
Browse files Browse the repository at this point in the history
Add reth stack
  • Loading branch information
iskay authored Jun 28, 2023
2 parents c76195c + 2ff490d commit 9872ce3
Show file tree
Hide file tree
Showing 9 changed files with 158 additions and 0 deletions.
35 changes: 35 additions & 0 deletions app/data/compose/docker-compose-reth.yml
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:
16 changes: 16 additions & 0 deletions app/data/config/reth/start-lighthouse.sh
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
24 changes: 24 additions & 0 deletions app/data/config/reth/start-reth.sh
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
5 changes: 5 additions & 0 deletions app/data/container-build/cerc-reth/build.sh
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
1 change: 1 addition & 0 deletions app/data/container-image-list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ cerc/watcher-gelato
cerc/lotus
cerc/go-opera
cerc/lasso
cerc/reth
1 change: 1 addition & 0 deletions app/data/pod-list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ watcher-gelato
fixturenet-lotus
mainnet-go-opera
lasso
reth
1 change: 1 addition & 0 deletions app/data/repository-list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,4 @@ github.com/filecoin-project/lotus
git.vdb.to/cerc-io/test-project
github.com/Fantom-foundation/go-opera
github.com/cerc-io/lasso
github.com/paradigmxyz/reth
65 changes: 65 additions & 0 deletions app/data/stacks/reth/README.md
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
10 changes: 10 additions & 0 deletions app/data/stacks/reth/stack.yml
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

0 comments on commit 9872ce3

Please sign in to comment.