Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]

### Added

- Add support for Reth client
- New command `lido-status` to display data of Lido Node Operator.
- Monitoring stack setup with Grafana, Prometheus, and Node Exporter.

Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ read more about it in [our documentation](https://docs.sedge.nethermind.io/docs/
| Nethermind | Lodestar | Lodestar |
| Erigon | Prysm | Prysm |
| Besu | Teku | Teku |
| Reth | | |

### Sepolia

Expand All @@ -155,6 +156,7 @@ read more about it in [our documentation](https://docs.sedge.nethermind.io/docs/
| Nethermind | Lodestar | Lodestar |
| Erigon | Prysm | Prysm |
| Besu | Teku | Teku |
| Reth | | |

### Holesky

Expand All @@ -164,6 +166,7 @@ read more about it in [our documentation](https://docs.sedge.nethermind.io/docs/
| Nethermind | Lodestar | Lodestar |
| Erigon | Teku | Teku |
| Besu | Prysm | Prysm |
| Reth | | |

### Gnosis

Expand Down
3 changes: 3 additions & 0 deletions configs/client_images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ execution:
erigon:
name: thorax/erigon
version: v2.60.6
reth:
name: ghcr.io/paradigmxyz/reth
version: v0.2.0-beta.6
consensus:
lighthouse:
name: sigp/lighthouse
Expand Down
1 change: 1 addition & 0 deletions configs/images.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ var ClientImages struct {
Besu Image `yaml:"besu"`
Nethermind Image `yaml:"nethermind"`
Erigon Image `yaml:"erigon"`
Reth Image `yaml:"reth"`
}
Consensus struct {
Lighthouse Image `yaml:"lighthouse"`
Expand Down
88 changes: 45 additions & 43 deletions docs/docs/commands/clients.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,75 +30,77 @@ The execution of `sedge clients` will result in an output like this, that will s

```
$ sedge clients
2024-08-21 12:17:07 -- [INFO] [Logger Init] Log level: info
2024-08-21 12:17:08 -- [INFO] You are running the latest version of sedge. Version: v1.4.0
2024-08-21 12:17:08 -- [INFO] Listing supported clients for network chiado
024-09-18 18:26:07 -- [INFO] [Logger Init] Log level: info
2024-09-18 18:26:07 -- [WARN] Unable to check for new Version. Please check manually at https://github.com/NethermindEth/sedge/releases, with error: error while checking for new Version, please check your internet connection
2024-09-18 18:26:07 -- [INFO] Listing supported clients for network chiado



# │Execution Clients │Consensus Clients │Validator Clients
# │Execution Clients │Consensus Clients │Validator Clients
────────┼───────────────────────┼───────────────────────┼───────────────────────
1 │nethermind │lighthouse │lighthouse
2 │- │teku │teku
3 │- │lodestar │lodestar
1 │nethermind │lighthouse │lighthouse
2 │- │teku │teku
3 │- │lodestar │lodestar


2024-08-21 12:17:08 -- [INFO] Listing supported clients for network custom
2024-09-18 18:26:07 -- [INFO] Listing supported clients for network custom



# │Execution Clients │Consensus Clients │Validator Clients
# │Execution Clients │Consensus Clients │Validator Clients
────────┼───────────────────────┼───────────────────────┼───────────────────────
1 │nethermind │lighthouse │lighthouse
2 │- │prysm │prysm
3 │- │teku │teku
4 │- │lodestar │lodestar
1 │nethermind │lighthouse │lighthouse
2 │- │prysm │prysm
3 │- │teku │teku
4 │- │lodestar │lodestar


2024-08-21 12:17:08 -- [INFO] Listing supported clients for network gnosis
2024-09-18 18:26:07 -- [INFO] Listing supported clients for network gnosis



# │Execution Clients │Consensus Clients │Validator Clients
# │Execution Clients │Consensus Clients │Validator Clients
────────┼───────────────────────┼───────────────────────┼───────────────────────
1 │nethermind │lighthouse │lighthouse
2 │erigon │teku │teku
3 │- │lodestar │lodestar
1 │nethermind │lighthouse │lighthouse
2 │erigon │teku │teku
3 │- │lodestar │lodestar


2024-08-21 12:17:08 -- [INFO] Listing supported clients for network holesky
2024-09-18 18:26:07 -- [INFO] Listing supported clients for network holesky



# │Execution Clients │Consensus Clients │Validator Clients
# │Execution Clients │Consensus Clients │Validator Clients
────────┼───────────────────────┼───────────────────────┼───────────────────────
1 │nethermind │lighthouse │lighthouse
2 │geth │prysm │prysm
3 │erigon │teku │teku
4 │besu │lodestar │lodestar
1 │nethermind │lighthouse │lighthouse
2 │geth │prysm │prysm
3 │erigon │teku │teku
4 │besu │lodestar │lodestar
5 │reth │- │-


2024-08-21 12:17:08 -- [INFO] Listing supported clients for network mainnet
2024-09-18 18:26:07 -- [INFO] Listing supported clients for network mainnet



# │Execution Clients │Consensus Clients │Validator Clients
# │Execution Clients │Consensus Clients │Validator Clients
────────┼───────────────────────┼───────────────────────┼───────────────────────
1 │nethermind │lighthouse │lighthouse
2 │geth │prysm │prysm
3 │erigon │teku │teku
4 │besu │lodestar │lodestar
1 │nethermind │lighthouse │lighthouse
2 │geth │prysm │prysm
3 │erigon │teku │teku
4 │besu │lodestar │lodestar
5 │reth │- │-


2024-08-21 12:17:08 -- [INFO] Listing supported clients for network sepolia
2024-09-18 18:26:07 -- [INFO] Listing supported clients for network sepolia



# │Execution Clients │Consensus Clients │Validator Clients
# │Execution Clients │Consensus Clients │Validator Clients
────────┼───────────────────────┼───────────────────────┼───────────────────────
1 │nethermind │lighthouse │lighthouse
2 │geth │prysm │prysm
3 │erigon │teku │teku
4 │besu │lodestar │lodestar

1 │nethermind │lighthouse │lighthouse
2 │geth │prysm │prysm
3 │erigon │teku │teku
4 │besu │lodestar │lodestar
5 │reth │- │-
```
1 change: 1 addition & 0 deletions docs/docs/networks/holesky.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Holesky is Ethereum's public testnet that serves as a technical experimentation
- [Geth](https://geth.ethereum.org/docs/)
- [Erigon](https://github.com/ledgerwatch/erigon)
- [Besu](https://besu.hyperledger.org/en/stable/)
- [Reth](https://paradigmxyz.github.io/reth/)

## Supported Consensus Clients
- [Lighthouse](https://lighthouse-book.sigmaprime.io/)
Expand Down
1 change: 1 addition & 0 deletions docs/docs/networks/mainnet.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ secured by the Proof-of-Stake (PoS) algorithm.
- [Geth](https://geth.ethereum.org/docs/)
- [Erigon](https://github.com/ledgerwatch/erigon)
- [Besu](https://besu.hyperledger.org/en/stable/)
- [Reth](https://paradigmxyz.github.io/reth/)

## Supported Consensus Clients
- [Lighthouse](https://lighthouse-book.sigmaprime.io/)
Expand Down
1 change: 1 addition & 0 deletions docs/docs/networks/sepolia.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Sepolia is a permissioned Ethereum test network. It is one of the testnets that
- [Geth](https://geth.ethereum.org/docs/)
- [Erigon](https://github.com/ledgerwatch/erigon)
- [Besu](https://besu.hyperledger.org/en/stable/)
- [Reth](https://paradigmxyz.github.io/reth/)

## Supported Consensus Clients
- [Lighthouse](https://lighthouse-book.sigmaprime.io/)
Expand Down
6 changes: 3 additions & 3 deletions internal/pkg/clients/clients_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ func TestClients(t *testing.T) {
map[string][]string{
"consensus": {"lighthouse", "prysm", "teku", "lodestar"},
"validator": {"lighthouse", "prysm", "teku", "lodestar"},
"execution": {"nethermind", "geth", "besu", "erigon"},
"execution": {"nethermind", "geth", "besu", "erigon", "reth"},
},
[]string{"consensus"},
"mainnet",
Expand All @@ -112,7 +112,7 @@ func TestClients(t *testing.T) {
{
map[string][]string{
"validator": {"lighthouse", "prysm", "teku", "lodestar"},
"execution": {"nethermind", "geth", "besu", "erigon"},
"execution": {"nethermind", "geth", "besu", "erigon", "reth"},
},
[]string{"execution", "validator"},
"mainnet",
Expand All @@ -122,7 +122,7 @@ func TestClients(t *testing.T) {
map[string][]string{
"validator": {"lighthouse", "prysm", "teku", "lodestar"},
"consensus": {"lighthouse", "prysm", "teku", "lodestar"},
"execution": {"nethermind", "geth", "besu", "erigon"},
"execution": {"nethermind", "geth", "besu", "erigon", "reth"},
},
[]string{"consensus", "other"},
"mainnet",
Expand Down
1 change: 1 addition & 0 deletions internal/pkg/clients/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ var AllClients map[string][]string = map[string][]string{
"geth",
"erigon",
"besu",
"reth",
},
"consensus": {
"lighthouse",
Expand Down
2 changes: 2 additions & 0 deletions internal/pkg/clients/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ func (c *Client) setExecutionImage(image string) {
c.Image = valueOrDefault(image, configs.ClientImages.Execution.Nethermind.String())
case "erigon":
c.Image = valueOrDefault(image, configs.ClientImages.Execution.Erigon.String())
case "reth":
c.Image = valueOrDefault(image, configs.ClientImages.Execution.Reth.String())
}
}

Expand Down
4 changes: 4 additions & 0 deletions scripts/check-image-updates.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ update-client "Nethermind" "execution" ".execution.nethermind" "$NETHERMIND_LATE
ERIGON_LATEST=$(curl -H "Authorization: Bearer $PAT" -sL https://api.github.com/repos/ledgerwatch/erigon/releases/latest | jq -r ".tag_name")
update-client "Erigon" "execution" ".execution.erigon" "$ERIGON_LATEST"

# Reth
RETH_LATEST_VERSION=$(curl -H "Authorization: Bearer $PAT" -sL https://api.github.com/paradigmxyz/reth/releases/latest | jq -r ".tag_name")
update-client "Reth" "execution" ".execution.reth" "$RETH_LATEST_VERSION"

# Lighthouse
LIGHTHOUSE_LATEST_VERSION=$(curl -H "Authorization: Bearer $PAT" -sL https://api.github.com/repos/sigp/lighthouse/releases/latest | jq -r ".tag_name")
update-client "Lighthouse" "consensus" ".consensus.lighthouse" "$LIGHTHOUSE_LATEST_VERSION"
Expand Down
9 changes: 9 additions & 0 deletions templates/envs/holesky/execution/reth.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{{/* reth.tmpl */}}
{{ define "execution" }}
# --- Execution Layer - Execution Node - configuration ---
EC_IMAGE_VERSION={{.ElImage}}
RETH_LOG_LEVEL=info
EC_DATA_DIR={{.ElDataDir}}
EC_SYNC_MODE=snap
EC_JWT_SECRET_PATH={{.JWTSecretPath}}
{{ end }}
9 changes: 9 additions & 0 deletions templates/envs/mainnet/execution/reth.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{{/* reth.tmpl */}}
{{ define "execution" }}
# --- Execution Layer - Execution Node - configuration ---
EC_IMAGE_VERSION={{.ElImage}}
RETH_LOG_LEVEL=info
EC_DATA_DIR={{.ElDataDir}}
EC_SYNC_MODE=snap
EC_JWT_SECRET_PATH={{.JWTSecretPath}}
{{ end }}
9 changes: 9 additions & 0 deletions templates/envs/sepolia/execution/reth.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{{/* reth.tmpl */}}
{{ define "execution" }}
# --- Execution Layer - Execution Node - configuration ---
EC_IMAGE_VERSION={{.ElImage}}
RETH_LOG_LEVEL=info
EC_DATA_DIR={{.ElDataDir}}
EC_SYNC_MODE=snap
EC_JWT_SECRET_PATH={{.JWTSecretPath}}
{{ end }}
42 changes: 42 additions & 0 deletions templates/services/merge/execution/reth.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{{/* reth.tmpl */}}
{{ define "execution" }}
execution:
stop_grace_period: 30m
container_name: sedge-execution-client{{if .ContainerTag}}-{{.ContainerTag}}{{end}}
restart: unless-stopped
image: ${EC_IMAGE_VERSION}
networks:
- sedge
volumes:
- ${EC_DATA_DIR}:/root/.local/share/reth/mainnet
- ${EC_JWT_SECRET_PATH}:/root/jwt
pid: host
ports:
- "{{.ElDiscoveryPort}}:{{.ElDiscoveryPort}}/tcp"
- "{{.ElDiscoveryPort}}:{{.ElDiscoveryPort}}/udp"
- "{{.ElMetricsPort}}:{{.ElMetricsPort}}/tcp" {{if .MapAllPorts}}
- "{{.ElApiPort}}:{{.ElApiPort}}"
- "{{.ElAuthPort}}:{{.ElAuthPort}}"{{end}}
expose:
- {{.ElApiPort}}
- {{.ElAuthPort}}
command:
- node
- --chain={{if .SplittedNetwork}}${EL_NETWORK}{{else}}${NETWORK}{{end}}
- --log.file.directory=/root/logs
- --authrpc.addr=0.0.0.0
- --authrpc.port={{.ElAuthPort}}
- --authrpc.jwtsecret=/root/jwt
- --http
- --http.addr=0.0.0.0
- --http.port={{.ElApiPort}}
- --http.api
- eth,net,web3
- --metrics=0.0.0.0:{{.ElMetricsPort}}{{range $flag := .ElExtraFlags}}
- --{{$flag}}{{end}}{{if .LoggingDriver}}
logging:
driver: "{{.LoggingDriver}}"{{if eq .LoggingDriver "json-file"}}
options:
max-size: "10m"
max-file: "10"{{end}}{{end}}
{{ end }}