Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Push work to main branch #225

Closed
wants to merge 12 commits into from
24 changes: 23 additions & 1 deletion .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,28 @@
# Comma separated list of MEV-Boost relays. You can choose public relays from https://research.lido.fi/t/lido-on-ethereum-call-for-relay-providers/2844.
#MEVBOOST_RELAYS=

##### validator-ejector Config #####

# validator-ejector container image version, e.g. `stable` or `1.2.0`
#VALIDATOR_EJECTOR_VERSION=

# Disable oracle transaction verification, don't toggle unless explicitly told to do so.
#DISABLE_EJECTOR_SECURITY=

# Lido locator address
#VE_LOCATOR_ADDRESS=

# Lido staking module ID
#VE_STAKING_MODULE_ID=

# Lido operator ID
#VE_OPERATOR_ID=

######## lido-dv-exit config ########

# lido-dv-exit container image version, e.g. `stable`
#LIDO_DV_EXIT_VERSION=

######### Monitoring Config #########

# Grafana docker container image version, e.g. `latest` or `9.4.3`.
Expand Down Expand Up @@ -115,4 +137,4 @@
#LOKI_VERSION=

# Loki host exposed port
#MONITORING_PORT_LOKI=
#MONITORING_PORT_LOKI=
33 changes: 9 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,30 +17,15 @@ A distributed validator node is a machine running:

Check the Obol [docs](https://docs.obol.tech/docs/int/quickstart) for detailed instructions on how to get started using this repo.

# Examples

In the `examples/` directory, you will find a collection of docker compose configuration files that demonstrate various clients and
their configurations for running a Distributed Validator Node. These files are with filenames as {EC}-{CC}-{VC}.yml (where
EC: Execution Client, CC: Consensus Client, VC: Validator Client). For example,
if you wish to run a DV node with Nethermind EL, Teku CL and Lighthouse VC, you can run `nethermind_teku_lighthouse.yml`.

⚠️⚠️⚠️ **Important:**
The configurations provided in the examples are meant for demonstration purposes only and may not be suitable for production environments.
These examples are primarily intended for advanced users who are familiar with Docker and have a good understanding of execution and consensus clients.
Please exercise caution when using them and ensure that you thoroughly review and customize the configurations according to your specific requirements.

To run any of the examples, use the following command:

```
docker compose -f examples/nethermind_teku_lighthouse.yml up
```


# Project Status

It is still early days for the Obol Network and everything is under active development.
It is NOT ready for mainnet.
Keep checking in for updates, [here](https://dvt.obol.tech/) is the latest on charon's supported clients and duties.
While the quick-start guide linked above is adequate for general-purpose deployments, this repository needs further setup:

1. copy `.env.sample` to `.env`:
```sh
cp .env.sample .env
```
2. grab your operator ID from [https://operators-holesky.testnet.fi/](https://operators-holesky.testnet.fi/)
3. find `VE_OPERATOR_ID` in `.env` and set it to your operator ID
4. save and close `.env`

# FAQs

Expand Down
73 changes: 59 additions & 14 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ services:
# |___/

geth:
image: ethereum/client-go:${GETH_VERSION:-v1.12.2}
image: ethereum/client-go:${GETH_VERSION:-v1.13.4}
ports:
- ${GETH_PORT_P2P:-30303}:30303/tcp # P2P TCP
- ${GETH_PORT_P2P:-30303}:30303/udp # P2P UDP
command: |
--${NETWORK:-goerli}
--${NETWORK:-holesky}
--http
--http.addr=0.0.0.0
--http.port=8545
Expand All @@ -45,14 +45,14 @@ services:
# |___/

lighthouse:
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v4.2.0}
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v4.5.0}
ports:
- ${LIGHTHOUSE_PORT_P2P:-9000}:9000/tcp # P2P TCP
- ${LIGHTHOUSE_PORT_P2P:-9000}:9000/udp # P2P UDP
command: |
lighthouse bn
--network=${NETWORK:-goerli}
--checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL:-https://checkpoint-sync.goerli.ethpandaops.io}
--network=${NETWORK:-holesky}
--checkpoint-sync-url=${LIGHTHOUSE_CHECKPOINT_SYNC_URL:-https://checkpoint-sync.holesky.ethpandaops.io}
--execution-endpoint=http://geth:8551
--execution-jwt=/opt/jwt/jwt.hex
--datadir=/opt/app/beacon/
Expand Down Expand Up @@ -97,21 +97,21 @@ services:
healthcheck:
test: wget -qO- http://localhost:3620/readyz

# _ _ _
# | | ___ __| | ___ ___| |_ __ _ _ __
# _ _ _
# | | ___ __| | ___ ___| |_ __ _ _ __
# | |/ _ \ / _` |/ _ \/ __| __/ _` | '__|
# | | (_) | (_| | __/\__ \ || (_| | |
# |_|\___/ \__,_|\___||___/\__\__,_|_|
# | | (_) | (_| | __/\__ \ || (_| | |
# |_|\___/ \__,_|\___||___/\__\__,_|_|

lodestar:
image: chainsafe/lodestar:${LODESTAR_VERSION:-v1.10.0}
image: chainsafe/lodestar:${LODESTAR_VERSION:-v1.11.3}
depends_on: [charon]
entrypoint: /opt/lodestar/run.sh
networks: [dvnode]
environment:
BEACON_NODE_ADDRESS: http://charon:3600
NETWORK: ${NETWORK:-goerli}
BUILDER_API_ENABLED: ${BUILDER_API_ENABLED:-false}
NETWORK: ${NETWORK:-holesky}
BUILDER_API_ENABLED: ${BUILDER_API_ENABLED:-true}
volumes:
- ./lodestar/run.sh:/opt/lodestar/run.sh
- .charon/validator_keys:/home/charon/validator_keys
Expand All @@ -126,11 +126,11 @@ services:
mev-boost:
image: flashbots/mev-boost:${MEVBOOST_VERSION:-1.5.0}
command: |
-${NETWORK:-goerli}
-${NETWORK:-holesky}
-loglevel=debug
-addr=0.0.0.0:18550
-relay-check
-relays=${MEVBOOST_RELAYS:-"https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@boost-relay-goerli.flashbots.net"}
-relays=${MEVBOOST_RELAYS:-"https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@boost-relay-holesky.flashbots.net"}
restart: unless-stopped

# _ _ _
Expand Down Expand Up @@ -163,5 +163,50 @@ services:
- ./data/grafana:/var/lib/grafana
restart: unless-stopped


# _ _ _ _ _ _
# __ ____ _| (_) __| | __ _| |_ ___ _ __ ___ (_) ___ ___| |_ ___ _ __
# \ \ / / _` | | |/ _` |/ _` | __/ _ \| '__|____ / _ \| |/ _ \/ __| __/ _ \| '__|
# \ V / (_| | | | (_| | (_| | || (_) | | |_____| __/| | __/ (__| || (_) | |
# \_/ \__,_|_|_|\__,_|\__,_|\__\___/|_| \___|/ |\___|\___|\__\___/|_|
# |__/

# validator-ejector:
# image: lidofinance/validator-ejector:${VALIDATOR_EJECTOR_VERSION:-stable}
# user: ":"
# networks: [dvnode]
# volumes:
# - ./validator-ejector:/exitmessages
# restart: unless-stopped
# environment:
# - EXECUTION_NODE=http://geth:8545
# - CONSENSUS_NODE=http://lighthouse:5052
# - LOCATOR_ADDRESS=${VE_LOCATOR_ADDRESS:-0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb}
# - STAKING_MODULE_ID=${VE_STAKING_MODULE_ID:-2}
# - OPERATOR_ID=${VE_OPERATOR_ID}
# - ORACLE_ADDRESSES_ALLOWLIST="[\"0x442af784a788a5bd6f42a01ebe9f287a871243fb\"]"
# - MESSAGES_LOCATION=/exitmessages
# - RUN_METRICS=true
# - DISABLE_SECURITY_DONT_USE_IN_PRODUCTION=${DISABLE_EJECTOR_SECURITY:-false}

# _ _ _ _ _ _
# | (_) __| | ___ __| |_ __ _____ _(_) |_
# | | |/ _` |/ _ \ _____ / _` \ \ / /____ / _ \ \/ / | __|
# | | | (_| | (_) |_____| (_| |\ V /_____| __/> <| | |_
# |_|_|\__,_|\___/ \__,_| \_/ \___/_/\_\_|\__|
#

lido-dv-exit:
image: obolnetwork/lido-dv-exit:${LIDO_DV_EXIT_VERSION:-latest}
user: ":"
networks: [dvnode]
volumes:
- ./validator-ejector:/exitmessages
- .charon:/charon
environment:
- LIDODVEXIT_BEACON_NODE_URL=http://lighthouse:5052
- LIDODVEXIT_CHARON_RUNTIME_DIR=/charon
- LIDODVEXIT_EJECTOR_EXIT_PATH=/exitmessages
restart: on-failure
networks:
dvnode:
6 changes: 0 additions & 6 deletions prometheus/prometheus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,3 @@ scrape_configs:
- job_name: "lodestar"
static_configs:
- targets: [ "lodestar:5064" ]
- job_name: "node-exporter"
static_configs:
- targets: ["node-exporter:9100"]
- job_name: "cadvisor"
static_configs:
- targets: [ "cadvisor:8080" ]