forked from cerc-io/stack-orchestrator
node sync, initial
This commit is contained in:
parent
c94fa3cccf
commit
b120682d8e
35
app/data/compose/docker-compose-reth.yml
Normal file
35
app/data/compose/docker-compose-reth.yml
Normal file
@ -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
app/data/config/reth/start-lighthouse.sh
Normal file
16
app/data/config/reth/start-lighthouse.sh
Normal file
@ -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
app/data/config/reth/start-reth.sh
Normal file
24
app/data/config/reth/start-reth.sh
Normal file
@ -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
app/data/container-build/cerc-reth/build.sh
Executable file
5
app/data/container-build/cerc-reth/build.sh
Executable file
@ -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
|
@ -42,3 +42,4 @@ cerc/ipld-eth-state-snapshot
|
|||||||
cerc/watcher-gelato
|
cerc/watcher-gelato
|
||||||
cerc/lotus
|
cerc/lotus
|
||||||
cerc/go-opera
|
cerc/go-opera
|
||||||
|
cerc/reth
|
||||||
|
@ -29,3 +29,4 @@ watcher-azimuth
|
|||||||
watcher-gelato
|
watcher-gelato
|
||||||
fixturenet-lotus
|
fixturenet-lotus
|
||||||
mainnet-go-opera
|
mainnet-go-opera
|
||||||
|
reth
|
||||||
|
@ -35,3 +35,4 @@ github.com/cerc-io/gelato-watcher-ts
|
|||||||
github.com/filecoin-project/lotus
|
github.com/filecoin-project/lotus
|
||||||
git.vdb.to/cerc-io/test-project
|
git.vdb.to/cerc-io/test-project
|
||||||
github.com/Fantom-foundation/go-opera
|
github.com/Fantom-foundation/go-opera
|
||||||
|
github.com/paradigmxyz/reth
|
||||||
|
65
app/data/stacks/reth/README.md
Normal file
65
app/data/stacks/reth/README.md
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# Reth
|
||||||
|
Deploy a Reth API node alongside Lighthouse.
|
||||||
|
|
||||||
|
## Clone required repositories
|
||||||
|
|
||||||
|
```
|
||||||
|
$ laconic-so --stack reth setup-repositories
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build the fixturenet-eth 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
app/data/stacks/reth/stack.yml
Normal file
10
app/data/stacks/reth/stack.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
version: "1.1"
|
||||||
|
name: reth
|
||||||
|
decription: "Reth node"
|
||||||
|
repos:
|
||||||
|
- github.com/paradigmxyz/reth
|
||||||
|
containers:
|
||||||
|
- cerc/reth
|
||||||
|
- cerc/lighthouse
|
||||||
|
pods:
|
||||||
|
- reth
|
Loading…
Reference in New Issue
Block a user