Skip to content

Commit

Permalink
Merge pull request #2 from dappnode/pablo/add-holesky
Browse files Browse the repository at this point in the history
Setup holesky network
  • Loading branch information
pablomendezroyo authored Nov 2, 2023
2 parents c0277a5 + dd05a16 commit 444368c
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 50 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- uses: actions/checkout@v3
- run: npx @dappnode/dappnodesdk@latest github-action test-end-to-end --errorLogsTimeout 120 --healthCheckUrl http://beacon-chain.lodestar-prater.dappnode:3500/eth/v1/beacon/genesis --network prater
env:
VALIDATOR_INDEX: ${{ secrets.PRATER_VALIDATOR_INDEX }}
VALIDATOR_INDEX: ${{ secrets.HOLESKY_VALIDATOR_INDEX }}

release:
name: Release
Expand Down
8 changes: 4 additions & 4 deletions GETTING_STARTED.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Welcome to the Merged Goerli/Prater Consensus Client: Lodestar
## Welcome to the Holesky Consensus Client Lodestar

- Your keystores should now be managed in the Web3Signer's [New Staking Brain](http://brain.web3signer-prater.dappnode/)
- Don't have the Web3Signer installed yet? It can be manually installed [here](http://my.dappnode/#/installer/web3signer-prater.dnp.dappnode.eth)
- All Staking Management has a new home in the Comprehensive [StakersUI](http://my.dappnode/#/stakers/prater)
- Your keystores should now be managed in the Web3Signer's [New Staking Brain](http://brain.web3signer-holesky.dappnode/)
- Don't have the Web3Signer installed yet? It can be manually installed [here](http://my.dappnode/installer/dnp/web3signer-holesky.dnp.dappnode.eth)
- All Staking Management has a new home in the [Stakers UI](http://my.dappnode/stakers/holesky)
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# DAppNodePackage Lodestar Prater
# DAppNodePackage Lodestar Holesky

**Lodestar Goerli/Prater Ethereum Consensus Layer Client**
**Lodestar Holesky Ethereum Consensus Layer Client**

Typescript Ethereum Consensus Layer Implementation by ChainSafe

Expand Down
32 changes: 16 additions & 16 deletions beacon-chain/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,40 @@
# Concatenate EXTRA_OPTS string
[[ -n "$CHECKPOINT_SYNC_URL" ]] && EXTRA_OPTS="${EXTRA_OPTS} --checkpointSyncUrl=${CHECKPOINT_SYNC_URL}"

case $_DAPPNODE_GLOBAL_EXECUTION_CLIENT_PRATER in
"goerli-geth.dnp.dappnode.eth")
HTTP_ENGINE="http://goerli-geth.dappnode:8551"
case $_DAPPNODE_GLOBAL_EXECUTION_CLIENT_HOLESKY in
"holesky-geth.dnp.dappnode.eth")
HTTP_ENGINE="http://holesky-geth.dappnode:8551"
;;
"goerli-nethermind.dnp.dappnode.eth")
HTTP_ENGINE="http://goerli-nethermind.dappnode:8551"
"holesky-nethermind.dnp.dappnode.eth")
HTTP_ENGINE="http://holesky-nethermind.dappnode:8551"
;;
"goerli-besu.dnp.dappnode.eth")
HTTP_ENGINE="http://goerli-besu.dappnode:8551"
"holesky-besu.dnp.dappnode.eth")
HTTP_ENGINE="http://holesky-besu.dappnode:8551"
;;
"goerli-erigon.dnp.dappnode.eth")
HTTP_ENGINE="http://goerli-erigon.dappnode:8551"
"holesky-erigon.dnp.dappnode.eth")
HTTP_ENGINE="http://holesky-erigon.dappnode:8551"
;;
*)
echo "Unknown value for _DAPPNODE_GLOBAL_EXECUTION_CLIENT_PRATER: $_DAPPNODE_GLOBAL_EXECUTION_CLIENT_PRATER"
HTTP_ENGINE=$_DAPPNODE_GLOBAL_EXECUTION_CLIENT_PRATER
echo "Unknown value for _DAPPNODE_GLOBAL_EXECUTION_CLIENT_HOLESKY: $_DAPPNODE_GLOBAL_EXECUTION_CLIENT_HOLESKY"
HTTP_ENGINE=$_DAPPNODE_GLOBAL_EXECUTION_CLIENT_HOLESKY
;;
esac

# MEV-Boost: https://chainsafe.github.io/lodestar/usage/mev-integration/
if [ -n "$_DAPPNODE_GLOBAL_MEVBOOST_PRATER" ] && [ "$_DAPPNODE_GLOBAL_MEVBOOST_PRATER" == "true" ]; then
if [ -n "$_DAPPNODE_GLOBAL_MEVBOOST_HOLESKY" ] && [ "$_DAPPNODE_GLOBAL_MEVBOOST_HOLESKY" == "true" ]; then
echo "MEV-Boost is enabled"
MEVBOOST_URL="http://mev-boost.mev-boost-goerli.dappnode:18550"
MEVBOOST_URL="http://mev-boost.mev-boost-holesky.dappnode:18550"
if curl --retry 5 --retry-delay 5 --retry-all-errors "${MEVBOOST_URL}"; then
EXTRA_OPTS="--builder --builder.urls=${MEVBOOST_URL} ${EXTRA_OPTS}"
else
echo "MEV-Boost is enabled but the Prater MEV-Boost package at ${MEVBOOST_URL} is not reachable"
curl -X POST -G 'http://my.dappnode/notification-send' --data-urlencode 'type=danger' --data-urlencode title="${MEVBOOST_URL} can not be reached" --data-urlencode 'body=Make sure the Prater MEV-Boost DNP is available and running'
echo "MEV-Boost is enabled but the Holesky MEV-Boost package at ${MEVBOOST_URL} is not reachable"
curl -X POST -G 'http://my.dappnode/notification-send' --data-urlencode 'type=danger' --data-urlencode title="${MEVBOOST_URL} can not be reached" --data-urlencode 'body=Make sure the Holesky MEV-Boost DNP is available and running'
fi
fi

exec node --max-old-space-size=${MEMORY_LIMIT} /usr/app/node_modules/.bin/lodestar \
beacon \
--network=goerli \
--network=holesky \
--suggestedFeeRecipient=${FEE_RECIPIENT_ADDRESS} \
--jwt-secret=/jwtsecret \
--execution.urls=$HTTP_ENGINE \
Expand Down
22 changes: 11 additions & 11 deletions dappnode_package.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"name": "lodestar-prater.dnp.dappnode.eth",
"version": "0.1.7",
"upstreamVersion": "v1.11.1",
"name": "lodestar-holesky.dnp.dappnode.eth",
"version": "0.1.0",
"upstreamVersion": "v1.11.3",
"architectures": ["linux/amd64", "linux/arm64"],
"upstreamRepo": "ChainSafe/lodestar",
"upstreamArg": "UPSTREAM_VERSION",
"shortDescription": "Lodestar Prater Beacon chain + validator",
"description": "Lodestar Prater is an open-source Ethereum Consensus Client on the Goerli/Prater Testnet written in Typescript; maintained by ChainSafe Systems",
"shortDescription": "Lodestar Holesky Beacon chain + validator",
"description": "Lodestar Holesky is an open-source Ethereum Consensus Client on the Holesky Testnet written in Typescript; maintained by ChainSafe Systems",
"type": "service",
"author": "DAppNode Association <admin@dappnode.io> (https://github.com/dappnode)",
"contributors": [
Expand All @@ -16,13 +16,13 @@
"categories": ["Blockchain", "ETH2.0"],
"repository": {
"type": "git",
"url": "https://github.com/dappnode/DAppNodePackage-Lodestar-Prater.git"
"url": "https://github.com/dappnode/DAppNodePackage-Lodestar-Holesky.git"
},
"bugs": {
"url": "https://github.com/dappnode/DAppNodePackage-Lodestar-Prater/issues"
"url": "https://github.com/dappnode/DAppNodePackage-Lodestar-Holesky/issues"
},
"links": {
"ui": "http://brain.web3signer-prater.dappnode/",
"ui": "http://brain.web3signer-holesky.dappnode/",
"homepage": "https://lodestar.chainsafe.io/",
"docs": "https://chainsafe.github.io/lodestar/",
"readme": "https://github.com/ChainSafe/lodestar/blob/stable/README.md"
Expand All @@ -37,15 +37,15 @@
"portNumber": 3500
},
"warnings": {
"onRemove": "Make sure your Göerli/Prater StakersUI does not have Lodestar Prater selected as your Consensus Layer Client or you will stop validating!"
"onRemove": "Make sure your Göerli/Holesky StakersUI does not have Lodestar Holesky selected as your Consensus Layer Client or you will stop validating!"
},
"globalEnvs": [
{
"envs": ["EXECUTION_CLIENT_PRATER", "MEVBOOST_PRATER"],
"envs": ["EXECUTION_CLIENT_HOLESKY", "MEVBOOST_HOLESKY"],
"services": ["beacon-chain"]
},
{
"envs": ["MEVBOOST_PRATER"],
"envs": ["MEVBOOST_HOLESKY"],
"services": ["validator"]
}
]
Expand Down
16 changes: 7 additions & 9 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,40 @@
version: "3.5"
services:
beacon-chain:
image: "beacon-chain.lodestar-prater.dnp.dappnode.eth:0.1.0"
build:
context: beacon-chain
args:
UPSTREAM_VERSION: v1.11.1
UPSTREAM_VERSION: v1.11.3
volumes:
- "beacon-data:/var/lib/data"
ports:
- "9512:9512/tcp"
- "9512:9512/udp"
- "9612:9612/tcp"
- "9612:9612/udp"
restart: unless-stopped
security_opt:
- "seccomp:unconfined"
environment:
DEBUG_LEVEL: info
BEACON_API_PORT: 3500
CHECKPOINT_SYNC_URL: ""
P2P_PORT: 9512
P2P_PORT: 9612
EXTRA_OPTS: ""
FEE_RECIPIENT_ADDRESS: ""
MEMORY_LIMIT: 4096
validator:
image: "validator.lodestar-prater.dnp.dappnode.eth:0.1.0"
build:
context: validator
args:
UPSTREAM_VERSION: v1.11.1
UPSTREAM_VERSION: v1.11.3
volumes:
- "validator-data:/var/lib/data"
restart: unless-stopped
security_opt:
- "seccomp:unconfined"
environment:
DEBUG_LEVEL: info
HTTP_WEB3SIGNER: "http://web3signer.web3signer-prater.dappnode:9000"
BEACON_NODE_ADDR: "http://beacon-chain.lodestar-prater.dappnode:3500"
HTTP_WEB3SIGNER: "http://web3signer.web3signer-holesky.dappnode:9000"
BEACON_NODE_ADDR: "http://beacon-chain.lodestar-holesky.dappnode:3500"
GRAFFITI: validating_from_DAppNode
EXTRA_OPTS: ""
FEE_RECIPIENT_ADDRESS: ""
Expand Down
Binary file modified lodestar-avatar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 14 additions & 3 deletions lodestar-grafana-dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
"keepTime": true,
"tags": ["lodestar"],
"targetBlank": false,
"title": "Lodestar Prater Dashboards",
"title": "Lodestar Holesky Dashboards",
"tooltip": "",
"type": "dashboards",
"url": ""
Expand Down Expand Up @@ -2809,10 +2809,21 @@
"to": "now"
},
"timepicker": {
"refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"]
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
]
},
"timezone": "",
"title": "Lodestar Prater",
"title": "Lodestar Holesky",
"uid": "lodestar",
"version": 7,
"weekStart": ""
Expand Down
2 changes: 1 addition & 1 deletion setup-wizard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ fields:
title: Checkpoint for fast sync
description: >-
To get Lodestar up and running in only a few minutes, you can start Lodestar from a recent finalized checkpoint state rather than syncing from genesis. This is substantially **faster** and consumes **less resources** than syncing from genesis, while still providing all the same features. Be sure you are using a trusted node for the fast sync.
Use the dappnode official endpoint `https://checkpoint-sync-prater.dappnode.io`
Use the dappnode official endpoint `https://checkpoint-sync-holesky.dappnode.io`
*Note - If you are going to provide your own checkpoint sync endpoint, make sure you do not use a slash `/` at the end of the URL.*
required: false
- id: feeRecipientAddress
Expand Down
6 changes: 3 additions & 3 deletions validator/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
#!/bin/sh

# MEV-Boost: https://chainsafe.github.io/lodestar/usage/mev-integration/
if [ -n "$_DAPPNODE_GLOBAL_MEVBOOST_PRATER" ] && [ "$_DAPPNODE_GLOBAL_MEVBOOST_PRATER" == "true" ]; then
if [ -n "$_DAPPNODE_GLOBAL_MEVBOOST_HOLESKY" ] && [ "$_DAPPNODE_GLOBAL_MEVBOOST_HOLESKY" == "true" ]; then
echo "MEV-Boost is enabled"
EXTRA_OPTS="--builder ${EXTRA_OPTS}"
fi

# Handle Graffiti Character Limit
oLang=$LANG oLcAll=$LC_ALL
LANG=C LC_ALL=C
LANG=C LC_ALL=C
graffitiString=${GRAFFITI:0:32}
LANG=$oLang LC_ALL=$oLcAll

exec node /usr/app/node_modules/.bin/lodestar \
validator \
--network=goerli \
--network=holesky \
--suggestedFeeRecipient=${FEE_RECIPIENT_ADDRESS} \
--graffiti="${graffitiString}" \
--dataDir=/var/lib/data \
Expand Down

0 comments on commit 444368c

Please sign in to comment.