From d3fe2dd52f3393428923bb3ab3c0179663dfe656 Mon Sep 17 00:00:00 2001 From: Marketen Date: Wed, 20 May 2026 13:38:03 +0200 Subject: [PATCH] add gnosis multi image --- README.md | 16 ++++++++++++++++ beacon-chain/Dockerfile | 4 +++- package_variants/gnosis/docker-compose.yml | 4 ++++ setup-wizard.yml | 2 +- validator/Dockerfile | 4 +++- 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b535d33..2b4b52b 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,22 @@ From this repository, the Dappnode Nimbus package can be generated for 3 networks: the Hoodi Testnet, Ethereum Mainnet and Gnosis Chain. +## Gnosis support + +The generic Nimbus package already supports **Gnosis** and already uses the split-client layout. + +Default images for generic variants: +- `beacon-chain` → `statusim/nimbus-eth2` +- `validator` → `statusim/nimbus-validator-client` + +For the **Gnosis** variant specifically, the package should use the Gnosis-maintained images: +- `beacon-chain` → `ghcr.io/gnosischain/gnosis-nimbus-eth2` +- `validator` → `ghcr.io/gnosischain/gnosis-nimbus-validator-client` + +Gnosis images publish plain version tags, while the default Status images publish `multiarch-` prefixed tags. The Dockerfiles keep the default `statusim/*:multiarch-${UPSTREAM_VERSION}` behavior, and the Gnosis variant overrides both the image repository and image tag explicitly. + +For Gnosis users, this generic package should be treated as the canonical multiclient package path instead of maintaining a separate single-service packaging model. + Nimbus is a client implementation for both the consensus layer (eth2) and execution layer (eth1) that strives to be as lightweight as possible in terms of resources used. This allows it to perform well on embedded systems, resource-restricted devices (including Raspberry Pis and mobile devices). However, resource-restricted hardware is not the only thing Nimbus is good for. Its low resource consumption makes it easy to run Nimbus together with other workloads on your server (this is especially valuable for stakers looking to lower the cost of their server instances). diff --git a/beacon-chain/Dockerfile b/beacon-chain/Dockerfile index 20918a5..1132fcc 100644 --- a/beacon-chain/Dockerfile +++ b/beacon-chain/Dockerfile @@ -1,6 +1,8 @@ ARG UPSTREAM_VERSION +ARG BEACON_BASE_IMAGE=statusim/nimbus-eth2 +ARG BEACON_BASE_IMAGE_TAG=multiarch-${UPSTREAM_VERSION} -FROM statusim/nimbus-eth2:multiarch-${UPSTREAM_VERSION} +FROM ${BEACON_BASE_IMAGE}:${BEACON_BASE_IMAGE_TAG} ARG NETWORK ARG STAKER_SCRIPTS_VERSION diff --git a/package_variants/gnosis/docker-compose.yml b/package_variants/gnosis/docker-compose.yml index 345d39d..1641e67 100644 --- a/package_variants/gnosis/docker-compose.yml +++ b/package_variants/gnosis/docker-compose.yml @@ -10,6 +10,8 @@ services: args: NETWORK: gnosis P2P_PORT: 9706 + BEACON_BASE_IMAGE: ghcr.io/gnosischain/gnosis-nimbus-eth2 + BEACON_BASE_IMAGE_TAG: v26.5.0 ports: - 9706:9706 - 9706:9706/udp @@ -19,3 +21,5 @@ services: build: args: NETWORK: gnosis + VALIDATOR_BASE_IMAGE: ghcr.io/gnosischain/gnosis-nimbus-validator-client + VALIDATOR_BASE_IMAGE_TAG: v26.5.0 diff --git a/setup-wizard.yml b/setup-wizard.yml index 5360b79..5b9b076 100644 --- a/setup-wizard.yml +++ b/setup-wizard.yml @@ -17,7 +17,7 @@ fields: title: Checkpoint for fast sync description: >- To get Nimbus up and running in only a few minutes, you can start Nimbus 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. Check the [Nimbus docs](https://nimbus.guide/trusted-node-sync.html) for more information. - Use the Dappnode Official endpoint for your network (`https://checkpoint-sync.dappnode.net`, `https://checkpoint-sync-hoodi.dappnode.net`, `https://checkpoint-sync-gnosis.dappnode.net`) or get your checkpoint sync from [Infura](https://infura.io/) (i.e https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@eth2-beacon.infura.io) + Use the Dappnode Official endpoint for your network (`https://checkpoint-sync.dappnode.net`, `https://checkpoint-sync-hoodi.dappnode.net`, `https://checkpoint-sync-gnosis.dappnode.net`). For Gnosis you can also use the official endpoint `https://checkpoint.gnosischain.com`. If you want to use a third-party provider, you can also get your checkpoint sync from [Infura](https://infura.io/) (i.e https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@eth2-beacon.infura.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 diff --git a/validator/Dockerfile b/validator/Dockerfile index 1326b7c..2b2849a 100644 --- a/validator/Dockerfile +++ b/validator/Dockerfile @@ -1,6 +1,8 @@ ARG UPSTREAM_VERSION +ARG VALIDATOR_BASE_IMAGE=statusim/nimbus-validator-client +ARG VALIDATOR_BASE_IMAGE_TAG=multiarch-${UPSTREAM_VERSION} -FROM statusim/nimbus-validator-client:multiarch-${UPSTREAM_VERSION} +FROM ${VALIDATOR_BASE_IMAGE}:${VALIDATOR_BASE_IMAGE_TAG} ARG NETWORK ARG STAKER_SCRIPTS_VERSION