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

Lido Community Staking integration #1754

Merged
merged 90 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from 85 commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
3f50320
Lido integration (#4)
vgorkavenko Feb 15, 2024
59bf37a
feat: lido relays (#5)
vgorkavenko Feb 15, 2024
6380f3d
fix: change mech of relay selection for Lido (#6)
vgorkavenko Feb 16, 2024
0805e05
fix: Obol integration
vgorkavenko Feb 19, 2024
e2a2120
fix: linter
vgorkavenko Feb 19, 2024
0db0d39
feat: add obol dashboards
vgorkavenko Feb 19, 2024
1295e13
feat: add obol loki dashboards
vgorkavenko Feb 19, 2024
eac8d02
fix: obol metrics
vgorkavenko Feb 22, 2024
6f12315
fix: use `.eth` instead of `.charon`
vgorkavenko Feb 22, 2024
c6f9e9b
feat: backup ENR public key to the file
vgorkavenko Feb 29, 2024
9b0efff
fix: `OWNER` for macOS
vgorkavenko Feb 29, 2024
ab54b27
fix: exitstatus check for charon-run-dkg
vgorkavenko Feb 29, 2024
9169a69
feat: add ssv-dkg for Lido integration
vgorkavenko Mar 4, 2024
1d59a72
fix: linter
vgorkavenko Mar 4, 2024
a0af9ca
fix: sed
vgorkavenko Mar 5, 2024
b1cc7f0
feat: backup .eth when exists
vgorkavenko Mar 5, 2024
00aac1a
fix: linter
vgorkavenko Mar 5, 2024
86153d4
fix: charon dir
vgorkavenko Mar 5, 2024
fc30769
fix: lido_ssv flow
vgorkavenko Mar 5, 2024
af032d9
fix: permissions
vgorkavenko Mar 7, 2024
0501018
fix: jq for obol
vgorkavenko Mar 7, 2024
c219e1b
feat: add `--distributed` for prysm and lodestar
vgorkavenko Mar 8, 2024
1de6599
fix: lint
vgorkavenko Mar 8, 2024
f444110
fix: obol flow
vgorkavenko Mar 12, 2024
184b165
fix: linter
vgorkavenko Mar 12, 2024
bce057a
fix: Relays list window size
vgorkavenko Mar 13, 2024
c2e1c98
fix: obol flow
vgorkavenko Mar 13, 2024
28c7efb
fix: backup folder with keys
vgorkavenko Mar 13, 2024
8982d80
fix: linter
vgorkavenko Mar 13, 2024
33fbe1f
fix: prysm rest api
vgorkavenko Mar 14, 2024
153cc63
fix: add mkdir for obol
vgorkavenko Mar 18, 2024
162a200
fix: add `--publish` flag to dkg
vgorkavenko Mar 18, 2024
627bb67
feat: add LIDO_DV_EXIT_EXIT_EPOCH
vgorkavenko Mar 19, 2024
4410f89
fix: update image for lido-dv-exit
vgorkavenko Mar 19, 2024
459ca92
fix: lido-dv-exit and exit epoch
vgorkavenko Mar 20, 2024
d25c267
fix: ssv-dkg config path
vgorkavenko Mar 24, 2024
de155bd
fix: ssv dashboard
vgorkavenko Mar 29, 2024
4eabc9e
fix: lido ssv flow
vgorkavenko Apr 1, 2024
ec275ef
fix: add curl-jq
vgorkavenko Apr 1, 2024
0d08c93
Merge remote-tracking branch 'origin/main' into chore/sync
vgorkavenko Apr 1, 2024
478d840
chore: remove goerli
vgorkavenko Apr 1, 2024
d2c7240
fix: compose files
vgorkavenko Apr 1, 2024
7961290
fix: permissions
vgorkavenko Apr 1, 2024
d26e7f9
Merge pull request #7 from lidofinance/chore/sync
vgorkavenko Apr 1, 2024
a50767f
feat: holesky relays, user flow adjustment
vgorkavenko Apr 18, 2024
35e61f6
feat: update VE_ORACLE_ADDRESSES_ALLOWLIST for holesky
vgorkavenko Apr 25, 2024
3d756c4
Merge branch 'eth-educators:main' into main
vgorkavenko Apr 26, 2024
98dfbde
fix: extra chown for .eth
vgorkavenko Apr 27, 2024
563782c
fix: add `-u` for enr and dkg services
vgorkavenko Apr 27, 2024
2dce7db
fix: linter
vgorkavenko Apr 27, 2024
e13f6aa
Fix: Argument list too long error when verifying Oblol cluster defini…
cnupy Apr 29, 2024
789f515
feat: automatic import N keystore files with different passwords
vgorkavenko Apr 29, 2024
b837b46
Fix: "Argument list too long" when verifying existing cluster definit…
cnupy Apr 29, 2024
26eb5a2
Fix: pre-commit errors "SC2046 (warning): Quote this to prevent word …
cnupy Apr 30, 2024
7ccebdb
Merge pull request #8 from cnupy/main
vgorkavenko Apr 30, 2024
e02e202
chore: fix typo
cnupy Apr 30, 2024
626f019
chore: update `VE_ORACLE_ADDRESSES_ALLOWLIST` for holesky
vgorkavenko May 30, 2024
6490611
feat: `distributed` arg for lh, nim, teku VC clients
vgorkavenko Jun 7, 2024
37b7d76
fix: `OBOL_NODE_TAG` -> `CHARON_VERSION`
vgorkavenko Jun 10, 2024
9ebd8ed
fix: charon version
vgorkavenko Jun 12, 2024
7d4682e
feat: csm testnet (#9)
vgorkavenko Jun 17, 2024
2e0173b
Merge branch 'lidofinance:main' into main
cnupy Jun 17, 2024
f8482a2
fix: link to csm widget
vgorkavenko Jun 27, 2024
0c55c8e
Support Nethermind 1.27 (#1848)
yorickdowne Jun 11, 2024
aba781a
Merge branch 'lidofinance:main' into main
cnupy Jun 28, 2024
3540ca1
Merge branch 'upstream-main' into chore/sync-with-upstream
vgorkavenko Jun 28, 2024
9458dd1
fix: after sync
vgorkavenko Jun 28, 2024
c874734
Merge pull request #11 from lidofinance/chore/sync-with-upstream
vgorkavenko Jun 28, 2024
6002833
Merge branch 'lidofinance:main' into main
cnupy Jun 28, 2024
46fd24a
Fix link to the repo in the README.md
dgusakov Jul 4, 2024
d23e9aa
fix: lighthouse dashboards
vgorkavenko Jul 9, 2024
3066854
Merge branch 'upstream-main' into chore/sync
vgorkavenko Jul 12, 2024
9620dd0
Merge pull request #10 from cnupy/main
vgorkavenko Jul 12, 2024
5fe1787
Merge pull request #13 from lidofinance/chore/sync
vgorkavenko Jul 12, 2024
1784991
fix: export vars for deposit-cli
vgorkavenko Jul 12, 2024
071851b
fix: save vars for deposit-cli
vgorkavenko Jul 12, 2024
93492b6
fix: linter
vgorkavenko Jul 12, 2024
983f447
Merge pull request #14 from lidofinance/fix/export-vars
vgorkavenko Jul 12, 2024
d5cd73a
Merge pull request #15 from eth-educators/main
vgorkavenko Jul 15, 2024
e23fba9
Merge branch 'upstream-main' into chore/sync
vgorkavenko Jul 27, 2024
ffdf974
Merge pull request #17 from lidofinance/chore/sync
vgorkavenko Jul 27, 2024
00f4738
Merge branch 'upstream-main' into chore/sync
vgorkavenko Aug 13, 2024
f0a8545
Merge pull request #18 from lidofinance/chore/sync
vgorkavenko Aug 13, 2024
0f885ef
Merge branch 'upstream-main'
vgorkavenko Aug 14, 2024
71aa8b2
fix: sed for macOS in Obol config
vgorkavenko Aug 14, 2024
9cc9c11
feat: changes for upstream (#19)
vgorkavenko Sep 2, 2024
1b05a86
Merge branch 'upstream-main' into chore/sync
vgorkavenko Sep 3, 2024
4ce36e3
feat: follow to refactoring
vgorkavenko Sep 3, 2024
15a5f4c
Merge pull request #20 from lidofinance/chore/sync
vgorkavenko Sep 3, 2024
1c46166
fix: docompose -> __docompose
vgorkavenko Sep 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ ext-network.yml
ext-network.yml.original
ext-network.yml.bak
.eth/*
.eth_backup*
.charon/*
validator-ejector/*
!.eth/README.md
!.eth/validator_keys/.empty
!.eth/exit_messages/.empty
Expand All @@ -23,4 +26,5 @@ ssv-config/config.yaml
ssv-config/config.yaml.original
ssv-config/dkg-config.yaml
ssv-config/dkg-config.yaml.original
ssv-config/operator.yaml
.nada
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Please see the [official documentation](https://ethdocker.com).

For a quick testnet start, you can install prerequisites and configure Eth Docker, as any user not named `root`:

* `cd ~ && git clone https://github.com/eth-educators/eth-docker.git && cd eth-docker`
* `cd ~ && git clone https://github.com/lidofinance/eth-docker.git && cd eth-docker`
yorickdowne marked this conversation as resolved.
Show resolved Hide resolved
* `./ethd install`
* `./ethd config`

Expand Down
28 changes: 28 additions & 0 deletions default.env
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
COMPOSE_FILE=teku.yml:besu.yml:deposit-cli.yml
# Set the ETH address that priority fees and MEV rewards should be sent to
FEE_RECIPIENT=
# Set the ETH address that validator rewards should be sent to
WITHDRAWAL_CREDENTIALS=
# Decide whether to connect the CL to Flashbots MEV boost, and configure the VC to register with it.
# Set MEV_BOOST to "true" for MEV boost, or any other value including empty for not using MEV boost.
# If "true" and used with a CL, it also requires :mev-boost.yml in COMPOSE_FILE
Expand Down Expand Up @@ -36,6 +38,11 @@ ANCIENT_DIR=
# Password for Lighthouse Siren
SIREN_PASSWORD=

# Variables for deposit-cli
NUM_VALIDATORS=1
KEYSTORE_PASSWORD=
EXECUTION_ADDRESS=

# Promtail logs label, something unique like the server name
LOGS_LABEL=eth-docker

Expand Down Expand Up @@ -79,6 +86,9 @@ HOST_IP=
# IP address to use when host-mapping a port through *-shared.yml. Set this to 127.0.0.1 to restrict the share to localhost
SHARE_IP=

# Relays to connect charon node
OBOL_P2P_RELAYS=

# P2P ports you will forward to your staking node. Adjust here if you are
# going to use something other than defaults.
EL_P2P_PORT=30303
Expand Down Expand Up @@ -115,6 +125,8 @@ SSV_P2P_PORT=13001
SSV_P2P_PORT_UDP=12001
# SSV DKG port
SSV_DKG_PORT=3030
# OBOL Node ports
OBOL_P2P_PORT=3610
# Engine port. Only for distributed setups, this should otherwise be left alone
EE_PORT=8551
# Consensus layer REST port. Only for distributed setups, this should otherwise be left alone
Expand Down Expand Up @@ -154,12 +166,19 @@ JWT_SECRET=
DISTRIBUTED=
# Authenticated execution client endpoint. This default uses the execution node container.
EL_NODE=http://execution:8551
# EL node for Lido Validator Ejector
VE_EXECUTION_NODE_URL=http://execution:8551
yorickdowne marked this conversation as resolved.
Show resolved Hide resolved
# Consensus client address. This could be comma-separated for Lighthouse or Teku VC clients, with failover,
# or could just be a remote consensus client URL for "validator only" setups.
# For Nimbus VC client, put the first beacon node here, and use VC_EXTRAS for additional.
CL_NODE=http://consensus:5052
# MEV-boost address. This would only be changed for Vouch setups
MEV_NODE=http://mev-boost:18550
# Beacon enpoint for OBOL node
OBOL_NODE_BEACON_ENDPOINT=http://consensus:5052
# Beacon enpoint for Lido Validator Ejector
VE_BEACON_NODE_URL=http://consensus:5052
LIDO_DV_EXIT_BEACON_NODE_URL=http://consensus:5052
yorickdowne marked this conversation as resolved.
Show resolved Hide resolved

# You can set specific version targets and choose binary or compiled from source builds below,
# via "Dockerfile.binary" or "Dockerfile.source"
Expand All @@ -174,6 +193,15 @@ ETH_DOCKER_TAG=
SSV_NODE_TAG=latest
SSV_DKG_TAG=latest

# Lido OBOL
CHARON_VERSION=latest
VE_OPERATOR_ID=
VE_STAKING_MODULE_ID=
VE_LOCATOR_ADDRESS=
VE_ORACLE_ADDRESSES_ALLOWLIST=
ENABLE_DIST_ATTESTATION_AGGR=
LIDO_DV_EXIT_EXIT_EPOCH=

# MEV-Boost
# SRC build target can be a tag, a branch, or a pr as "pr-ID"
MEV_SRC_BUILD_TARGET=develop
Expand Down
435 changes: 419 additions & 16 deletions ethd

Large diffs are not rendered by default.

18 changes: 16 additions & 2 deletions grafana/provision.sh
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,22 @@ case "$CLIENT" in
__url='https://raw.githubusercontent.com/bloxapp/ssv/main/monitoring/grafana/dashboard_ssv_node.json'
__file='/etc/grafana/provisioning/dashboards/ssv_node_dashboard.json'
wget -t 3 -T 10 -qcO - "${__url}" | jq '.title = "SSV Node Dashboard"' \
| jq '.templating.list[0].current |= {selected: false, text: "ssv-node", value: "ssv-node"} | .templating.list[0].options = [ { "selected": true, "text": "ssv-node", "value": "ssv-node" } ] | .templating.list[0].query = "ssv-node"' \
| sed 's/eXfXfqH7z/Prometheus/g' >"${__file}"
| jq 'walk(if . == "${DS_PROMETHEUS}" then "Prometheus" else . end)' >"${__file}"
;;&
*lido-obol.yml* )
# Lido Obol Dashboard
__url_charon='https://raw.githubusercontent.com/ObolNetwork/lido-charon-distributed-validator-node/main/grafana/dashboards/dash_charon_overview.json'
__file_charon='/etc/grafana/provisioning/dashboards/charon.json'
wget -t 3 -T 10 -qcO - "${__url_charon}" | sed 's/"uid": "prometheus"/"uid": "PBFA97CFB590B2093"/g' >"${__file_charon}"
__url_single_node='https://raw.githubusercontent.com/ObolNetwork/lido-charon-distributed-validator-node/main/grafana/dashboards/single_node_dashboard.json'
__file_single_node='/etc/grafana/provisioning/dashboards/single_node_dashboard.json'
wget -t 3 -T 10 -qcO - "${__url_single_node}" | sed 's/"uid": "prometheus"/"uid": "PBFA97CFB590B2093"/g' >"${__file_single_node}"
__url_validator_ejector='https://raw.githubusercontent.com/ObolNetwork/lido-charon-distributed-validator-node/main/grafana/dashboards/validator_ejector_overview.json'
__file_validator_ejector='/etc/grafana/provisioning/dashboards/validator_ejector_overview.json'
wget -t 3 -T 10 -qcO - "${__url_validator_ejector}" | sed 's/"uid": "prometheus"/"uid": "PBFA97CFB590B2093"/g' >"${__file_validator_ejector}"
__url_logs='https://raw.githubusercontent.com/ObolNetwork/lido-charon-distributed-validator-node/main/grafana/dashboards/logs_dashboard.json'
__file_logs='/etc/grafana/provisioning/dashboards/logs_dashboard.json'
wget -t 3 -T 10 -qcO - "${__url_logs}" | sed 's/"uid": "loki"/"uid": "P8E80F9AEF21F6940"/g' >"${__file_logs}"
;;&
!(*grafana-rootless*) )
# cadvisor and node exporter dashboard
Expand Down
73 changes: 73 additions & 0 deletions lido-deposit-cli.yml
yorickdowne marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
services:
deposit-cli-new:
profiles: ["tools"]
restart: "no"
build:
context: ./staking-deposit-cli
args:
- BUILD_TARGET=${DEPCLI_SRC_BUILD_TARGET:-'$(git describe --tags $(git rev-list --tags --max-count=1))'}
- SRC_REPO=${DEPCLI_SRC_REPO:-https://github.com/ethereum/staking-deposit-cli}
image: staking-deposit-cli:local
pull_policy: never
volumes:
- ./.eth:/app/.eth/
entrypoint:
- docker-entrypoint.sh
- python3
- /app/staking_deposit/deposit.py
- --non_interactive
- --language
- 'English'
- new-mnemonic
- --chain
- ${NETWORK}
- --mnemonic_language
- 'English'
- --num_validators
- ${NUM_VALIDATORS}
- --execution_address
- ${EXECUTION_ADDRESS}
- --keystore_password
- ${KEYSTORE_PASSWORD}
deposit-cli-existing:
profiles: ["tools"]
restart: "no"
build:
context: ./staking-deposit-cli
args:
- BUILD_TARGET=${DEPCLI_SRC_BUILD_TARGET:-'$(git describe --tags $(git rev-list --tags --max-count=1))'}
- SRC_REPO=${DEPCLI_SRC_REPO:-https://github.com/ethereum/staking-deposit-cli}
image: staking-deposit-cli:local
pull_policy: never
volumes:
- ./.eth:/app/.eth/
entrypoint:
- docker-entrypoint.sh
- python3
- /app/staking_deposit/deposit.py
- existing-mnemonic
- --chain
- ${NETWORK}
deposit-cli-change:
profiles: ["tools"]
build:
context: ./staking-deposit-cli
args:
- BUILD_TARGET=${DEPCLI_SRC_BUILD_TARGET:-'$(git describe --tags $(git rev-list --tags --max-count=1))'}
- SRC_REPO=${DEPCLI_SRC_REPO:-https://github.com/ethereum/staking-deposit-cli}
restart: "no"
image: staking-deposit-cli:local
pull_policy: never
volumes:
- ./.eth:/app/.eth
entrypoint:
- docker-entrypoint.sh
- python3
- /app/staking_deposit/deposit.py
- generate-bls-to-execution-change
- --chain
- ${NETWORK}

networks:
default:
enable_ipv6: ${IPV6:-false}
104 changes: 104 additions & 0 deletions lido-obol.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
x-logging: &logging
logging:
driver: json-file
options:
max-size: 100m
max-file: "3"
tag: '{{.ImageName}}|{{.Name}}|{{.ImageFullID}}|{{.FullID}}'

services:
charon:
restart: "unless-stopped"
image: obolnetwork/charon:${CHARON_VERSION:-latest}
volumes:
- .eth:/opt/charon/.charon
<<: *logging
environment:
- CHARON_BEACON_NODE_ENDPOINTS=${OBOL_BEACON_NODE_ENDPOINT:-http://consensus:5052}
- CHARON_LOG_LEVEL=${OBOL_LOG_LEVEL:-debug}
- CHARON_LOG_FORMAT=${OBOL_LOG_FORMAT:-console}
- CHARON_P2P_RELAYS=${OBOL_P2P_RELAYS:-https://0.relay.obol.tech,https://1.relay.obol.tech/}
- CHARON_P2P_EXTERNAL_HOSTNAME=${OBOL_P2P_EXTERNAL_HOSTNAME:-} # Empty default required to avoid warnings.
- CHARON_P2P_TCP_ADDRESS=0.0.0.0:${OBOL_P2P_PORT:-3610}
- CHARON_VALIDATOR_API_ADDRESS=0.0.0.0:3600
- CHARON_MONITORING_ADDRESS=0.0.0.0:3620
- CHARON_BUILDER_API=${BUILDER_API_ENABLED:-true}
- CHARON_FEATURE_SET_ENABLE=eager_double_linear,consensus_participate
- CHARON_LOKI_ADDRESSES=${CHARON_LOKI_ADDRESSES:-http://loki:3100/loki/api/v1/push}
- CHARON_LOKI_SERVICE=charon
ports:
- ${OBOL_P2P_PORT:-3610}:${OBOL_P2P_PORT:-3610}/tcp # P2P TCP libp2p
healthcheck:
test: wget -qO- http://localhost:3620/readyz
labels:
- metrics.scrape=true
- metrics.path=/metrics
- metrics.port=3620
- metrics.instance=charon

charon-create-enr:
profiles: ["tools"]
restart: "no"
image: obolnetwork/charon:${CHARON_VERSION:-latest}
command: create enr
volumes:
- .eth:/opt/charon/.charon
charon-run-dkg:
profiles: ["tools"]
restart: "no"
image: obolnetwork/charon:${CHARON_VERSION:-latest}
volumes:
- .eth:/opt/charon/.charon
command: dkg --publish
curl-jq:
image: curl-jq:local
pull_policy: build
build:
context: ./traefik
dockerfile: Dockerfile.jq
restart: "no"
profiles: [ "tools" ]

validator-ejector:
platform: linux/amd64
image: lidofinance/validator-ejector:${VALIDATOR_EJECTOR_VERSION:-1.5.0}
user: ":"
volumes:
- ./validator-ejector:/exitmessages
restart: unless-stopped
environment:
- EXECUTION_NODE=${VE_EXECUTION_NODE_URL:-http://execution:8551}
- CONSENSUS_NODE=${VE_BEACON_NODE_URL:-http://consensus:5052}
- LOCATOR_ADDRESS=${VE_LOCATOR_ADDRESS:-0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8}
- STAKING_MODULE_ID=${VE_STAKING_MODULE_ID:-2}
- OPERATOR_ID=${VE_OPERATOR_ID}
- ORACLE_ADDRESSES_ALLOWLIST=${VE_ORACLE_ADDRESSES_ALLOWLIST:-["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xEC4BfbAF681eb505B94E4a7849877DC6c600Ca3A","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]}
- MESSAGES_LOCATION=/exitmessages
- RUN_METRICS=true
- HTTP_PORT=8989
- DISABLE_SECURITY_DONT_USE_IN_PRODUCTION=${VE_DISABLE_SECURITY:-false}
- FORCE_DENCUN_FORK_MODE=true
labels:
- metrics.scrape=true
- metrics.path=/metrics
- metrics.port=8989
- metrics.instance=validator-ejector

lido-dv-exit:
image: obolnetwork/lido-dv-exit:${LIDO_DV_EXIT_VERSION:-e8bee1f}
user: ":"
volumes:
- ./validator-ejector:/exitmessages
- .eth:/charon
environment:
- LIDODVEXIT_BEACON_NODE_URL=${LIDO_DV_EXIT_BEACON_NODE_URL:-http://consensus:5052}
- LIDODVEXIT_CHARON_RUNTIME_DIR=/charon
- LIDODVEXIT_EJECTOR_EXIT_PATH=/exitmessages
- LIDODVEXIT_EXIT_EPOCH=${LIDO_DV_EXIT_EXIT_EPOCH:-194048}
- LIDODVEXIT_LOG_LEVEL=${LIDO_DV_EXIT_LOG_LEVEL:-info}
- LIDODVEXIT_VALIDATOR_QUERY_CHUNK_SIZE=${LIDO_DV_EXIT_VALIDATOR_QUERY_CHUNK_SIZE:-5}
restart: on-failure

networks:
default:
enable_ipv6: ${IPV6:-false}
1 change: 1 addition & 0 deletions lighthouse-vc-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ services:
- GRAFFITI=${GRAFFITI:-}
- DEFAULT_GRAFFITI=${DEFAULT_GRAFFITI:-false}
- NETWORK=${NETWORK}
- ENABLE_DIST_ATTESTATION_AGGR=${ENABLE_DIST_ATTESTATION_AGGR:-false}
volumes:
- lhvalidator-data:/var/lib/lighthouse
- /etc/localtime:/etc/localtime:ro
Expand Down
1 change: 1 addition & 0 deletions lighthouse.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ services:
- GRAFFITI=${GRAFFITI:-}
- DEFAULT_GRAFFITI=${DEFAULT_GRAFFITI:-false}
- NETWORK=${NETWORK}
- ENABLE_DIST_ATTESTATION_AGGR=${ENABLE_DIST_ATTESTATION_AGGR:-false}
volumes:
- lhvalidator-data:/var/lib/lighthouse
- /etc/localtime:/etc/localtime:ro
Expand Down
11 changes: 9 additions & 2 deletions lighthouse/docker-entrypoint-vc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,19 @@ else
__doppel=""
fi

# Distributed attestation aggregation
if [ "${ENABLE_DIST_ATTESTATION_AGGR}" = "true" ]; then
__att_aggr="--distributed"
else
__att_aggr=""
fi

if [ "${DEFAULT_GRAFFITI}" = "true" ]; then
# Word splitting is desired for the command line parameters
# shellcheck disable=SC2086
exec "$@" ${__network} ${__mev_boost} ${__beacon_stats} ${__doppel} ${VC_EXTRAS}
exec "$@" ${__network} ${__mev_boost} ${__beacon_stats} ${__doppel} ${__att_aggr} ${VC_EXTRAS}
else
# Word splitting is desired for the command line parameters
# shellcheck disable=SC2086
exec "$@" ${__network} "--graffiti" "${GRAFFITI}" ${__mev_boost} ${__beacon_stats} ${__doppel} ${VC_EXTRAS}
exec "$@" ${__network} "--graffiti" "${GRAFFITI}" ${__mev_boost} ${__beacon_stats} ${__doppel} ${__att_aggr} ${VC_EXTRAS}
fi
1 change: 1 addition & 0 deletions lodestar-vc-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ services:
- DEFAULT_GRAFFITI=${DEFAULT_GRAFFITI:-false}
- WEB3SIGNER=${WEB3SIGNER}
- NETWORK=${NETWORK}
- ENABLE_DIST_ATTESTATION_AGGR=${ENABLE_DIST_ATTESTATION_AGGR:-false}
volumes:
- lsvalidator-data:/var/lib/lodestar/validators
- /etc/localtime:/etc/localtime:ro
Expand Down
1 change: 1 addition & 0 deletions lodestar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ services:
- DEFAULT_GRAFFITI=${DEFAULT_GRAFFITI:-false}
- WEB3SIGNER=${WEB3SIGNER}
- NETWORK=${NETWORK}
- ENABLE_DIST_ATTESTATION_AGGR=${ENABLE_DIST_ATTESTATION_AGGR:-false}
volumes:
- lsvalidator-data:/var/lib/lodestar/validators
- /etc/localtime:/etc/localtime:ro
Expand Down
11 changes: 9 additions & 2 deletions lodestar/docker-entrypoint-vc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,19 @@ else
__w3s_url=""
fi

# Distributed attestation aggregation
if [ "${ENABLE_DIST_ATTESTATION_AGGR}" = "true" ]; then
__att_aggr="--distributed"
else
__att_aggr=""
fi

if [ "${DEFAULT_GRAFFITI}" = "true" ]; then
# Word splitting is desired for the command line parameters
# shellcheck disable=SC2086
exec "$@" ${__network} ${__mev_boost} ${__beacon_stats} ${__doppel} ${__w3s_url} ${VC_EXTRAS}
exec "$@" ${__network} ${__mev_boost} ${__beacon_stats} ${__doppel} ${__w3s_url} ${__att_aggr} ${VC_EXTRAS}
else
# Word splitting is desired for the command line parameters
# shellcheck disable=SC2086
exec "$@" ${__network} "--graffiti" "${GRAFFITI}" ${__mev_boost} ${__beacon_stats} ${__doppel} ${__w3s_url} ${VC_EXTRAS}
exec "$@" ${__network} "--graffiti" "${GRAFFITI}" ${__mev_boost} ${__beacon_stats} ${__doppel} ${__w3s_url} ${__att_aggr} ${VC_EXTRAS}
fi
1 change: 1 addition & 0 deletions nimbus-allin1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ services:
- DEFAULT_GRAFFITI=${DEFAULT_GRAFFITI:-false}
- WEB3SIGNER=${WEB3SIGNER:-false}
- EMBEDDED_VC=true
- ENABLE_DIST_ATTESTATION_AGGR=${ENABLE_DIST_ATTESTATION_AGGR:-false}
ports:
- ${HOST_IP:-}:${CL_P2P_PORT:-9000}:${CL_P2P_PORT:-9000}/tcp
- ${HOST_IP:-}:${CL_P2P_PORT:-9000}:${CL_P2P_PORT:-9000}/udp
Expand Down
1 change: 1 addition & 0 deletions nimbus-vc-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ services:
- GRAFFITI=${GRAFFITI:-}
- DEFAULT_GRAFFITI=${DEFAULT_GRAFFITI:-false}
- WEB3SIGNER=${WEB3SIGNER:-false}
- ENABLE_DIST_ATTESTATION_AGGR=${ENABLE_DIST_ATTESTATION_AGGR:-false}
networks:
default:
aliases:
Expand Down
Loading