From bda550eef6c9e4dc9a840b8f5f455a08bbacccc7 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Fri, 19 Jun 2026 11:05:34 +0000 Subject: [PATCH 1/2] shibarium: add bone fork build-from-source assets - Update heimdall init.sh with heimdall-109 chain_id and mainnet seeds - Update cometbft.Dockerfile with v1.0.7-bone version - Add bor.Dockerfile for building shibaone/bor from source at v1.3.9-bone Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe --- shibarium/bor.Dockerfile | 38 +++++++++++++++++++++++++++++++++++ shibarium/cometbft.Dockerfile | 2 +- shibarium/scripts/init.sh | 7 +++++-- 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 shibarium/bor.Dockerfile diff --git a/shibarium/bor.Dockerfile b/shibarium/bor.Dockerfile new file mode 100644 index 00000000..8597daf5 --- /dev/null +++ b/shibarium/bor.Dockerfile @@ -0,0 +1,38 @@ +# Shibarium bor execution client Dockerfile +# Build from shibaone/bor source repository. +# +# Build args: +# BOR_REPO - repository URL (default: https://github.com/shibaone/bor) +# BOR_VERSION - version tag (default: v1.3.9-bone) +# +# The shibaone/bor repo has a working Dockerfile that builds via `make bor`. +# ENTRYPOINT is `bor` +# +# This Dockerfile is used for building shibarium bor from source, +# as shibaone does not publish pre-built Docker images to Docker Hub. + +ARG BOR_REPO=https://github.com/shibaone/bor +ARG BOR_VERSION=v1.3.9-bone + +# Use a Go builder image to clone and build bor from source +FROM golang:1.21-alpine AS builder + +RUN apk add --no-cache git make gcc musl-dev + +WORKDIR /src +RUN git clone --depth 1 --branch ${BOR_VERSION} ${BOR_REPO} . + +RUN make bor + +# Final stage: copy the built binary +FROM alpine:3.18 + +WORKDIR /usr/local/bin +COPY --from=builder /src/build/bor /usr/local/bin/bor + +# Create data directory +RUN mkdir -p /root/.bor + +WORKDIR /root/.bor + +ENTRYPOINT ["bor"] diff --git a/shibarium/cometbft.Dockerfile b/shibarium/cometbft.Dockerfile index cb83e992..022a5589 100644 --- a/shibarium/cometbft.Dockerfile +++ b/shibarium/cometbft.Dockerfile @@ -10,7 +10,7 @@ # the node before exec'ing heimdalld start. ARG CL_IMAGE=shibaone/heimdall -ARG CL_VERSION=TODO_VERIFY_VERSION +ARG CL_VERSION=v1.0.7-bone FROM ${CL_IMAGE}:${CL_VERSION} diff --git a/shibarium/scripts/init.sh b/shibarium/scripts/init.sh index 2af85089..038233d2 100644 --- a/shibarium/scripts/init.sh +++ b/shibarium/scripts/init.sh @@ -31,10 +31,13 @@ set -e . /usr/local/bin/cometbft-common.sh CMT_HOME="${CMT_HOME:-/root/.heimdalld}" -CHAIN_ID="${CHAIN_ID:-shibarium-mainnet}" -CHAIN="${CHAIN:-mainnet}" +CHAIN_ID="${CHAIN_ID:-heimdall-109}" +CHAIN="${CHAIN:-shibarium}" P2P_PORT="${P2P_PORT:-26656}" MONIKER="${MONIKER:-d${DOMAIN:-local}}" +# Shibarium heimdall mainnet seeds (verified from shibaone/node-ansible branch shibarium) +# These are the persistent peers that match the bor bootnodes +PERSISTENT_PEERS="${PERSISTENT_PEERS:-96f333f77d5e2f877d3afe4a3643e4f99949ef5c@44.204.200.100:26656,e6676c16d8a9ec98bbbce8d137a3765632720328@18.136.201.99:26656,8c71c016de039e50e48f74683784054f46bd0a1c@3.99.233.157:26656,fb613910f04f0ae0001d93b70552d4d5c358ad78@63.32.53.219:26656,08c3509327941a593eef258f23ab568c10d28905@52.12.214.141:26656}" ct_log "Starting heimdalld bootstrap for chain ${CHAIN_ID} (home=${CMT_HOME})" From ee21a0245ee27bfedf381c5530ec1f2477ccc4a2 Mon Sep 17 00:00:00 2001 From: rob Date: Fri, 19 Jun 2026 11:46:00 +0000 Subject: [PATCH 2/2] shibarium: build bor + heimdall from source (no published images) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit shibaone ships no docker images for the bone fork — only source + .deb config packages — so both Dockerfiles must clone+build, not FROM a (nonexistent) image. - bor.Dockerfile: clone shibaone/bor@${BOR_VERSION}, make bor, cp build/bin/bor (was: alpine + wrong /src/build/bor path). golang:1.22.1 like upstream. - cometbft.Dockerfile: clone shibaone/heimdall@${CL_VERSION}, make install (was: FROM shibaone/heimdall:v1.0.7-bone — that tag does not exist on any registry), then layer the CometBFT init entrypoint. Co-Authored-By: Claude Opus 4.8 (1M context) --- shibarium/bor.Dockerfile | 47 ++++++++++++++++------------------- shibarium/cometbft.Dockerfile | 43 +++++++++++++++++++++----------- 2 files changed, 50 insertions(+), 40 deletions(-) diff --git a/shibarium/bor.Dockerfile b/shibarium/bor.Dockerfile index 8597daf5..25e12319 100644 --- a/shibarium/bor.Dockerfile +++ b/shibarium/bor.Dockerfile @@ -1,38 +1,33 @@ -# Shibarium bor execution client Dockerfile -# Build from shibaone/bor source repository. +# Shibarium bor execution client — BUILT FROM SOURCE. +# +# shibaone publishes NO bor docker image (and vanilla 0xpolygon/bor is the WRONG +# fork — Polygon, chainId 137). We mirror the upstream shibaone/bor Dockerfile +# (`make bor` -> build/bin/bor) but clone the pinned tag so the image is +# self-contained. Running `bor server --chain=shibarium` self-configures the +# shibarium genesis (builder/files/genesis-shibarium.json, chainId 109) and the +# bootnodes bundled in builder/files/config.toml. # # Build args: -# BOR_REPO - repository URL (default: https://github.com/shibaone/bor) -# BOR_VERSION - version tag (default: v1.3.9-bone) -# -# The shibaone/bor repo has a working Dockerfile that builds via `make bor`. -# ENTRYPOINT is `bor` -# -# This Dockerfile is used for building shibarium bor from source, -# as shibaone does not publish pre-built Docker images to Docker Hub. +# BOR_REPO - bor source repo (default: https://github.com/shibaone/bor) +# BOR_VERSION - bor version tag (passed by the template, e.g. v1.3.9-bone) ARG BOR_REPO=https://github.com/shibaone/bor ARG BOR_VERSION=v1.3.9-bone -# Use a Go builder image to clone and build bor from source -FROM golang:1.21-alpine AS builder +FROM golang:1.22.1 -RUN apk add --no-cache git make gcc musl-dev +ARG BOR_REPO +ARG BOR_VERSION -WORKDIR /src -RUN git clone --depth 1 --branch ${BOR_VERSION} ${BOR_REPO} . +RUN apt-get update -y && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends build-essential git ca-certificates \ + && rm -rf /var/lib/apt/lists/* -RUN make bor +WORKDIR /var/lib/bor +RUN git clone --depth 1 --branch ${BOR_VERSION} ${BOR_REPO} . \ + && make bor \ + && cp build/bin/bor /usr/bin/ -# Final stage: copy the built binary -FROM alpine:3.18 - -WORKDIR /usr/local/bin -COPY --from=builder /src/build/bor /usr/local/bin/bor - -# Create data directory RUN mkdir -p /root/.bor - -WORKDIR /root/.bor - +EXPOSE 8545 8546 8547 30303 30303/udp ENTRYPOINT ["bor"] diff --git a/shibarium/cometbft.Dockerfile b/shibarium/cometbft.Dockerfile index 022a5589..752acc87 100644 --- a/shibarium/cometbft.Dockerfile +++ b/shibarium/cometbft.Dockerfile @@ -1,25 +1,40 @@ -# Shibarium heimdall node Dockerfile -# Build from the base heimdall image + copy entrypoint scripts. -# Uses the standard cometbft-node pattern from vibe-node. +# Shibarium heimdall consensus node — BUILT FROM SOURCE. +# +# shibaone publishes NO heimdall docker image (only source + release .deb config +# packages), so we cannot `FROM shibaone/heimdall:` — that tag does not exist +# on any registry. Instead we mirror the upstream shibaone/heimdall Dockerfile +# (`make install`) but clone the pinned tag, then layer the vibe-node CometBFT +# bootstrap entrypoint (init.sh + cometbft-common.sh). # # Build args: -# CL_IMAGE - base heimdall image (default: shibaone/heimdall) -# CL_VERSION - heimdall version tag +# CL_REPO - heimdall source repo (default: https://github.com/shibaone/heimdall) +# CL_VERSION - heimdall version tag (passed by the template, e.g. v1.0.7-bone) # -# The entrypoint is init.sh which sources cometbft-common.sh and bootstraps -# the node before exec'ing heimdalld start. +# `make install` puts heimdalld + heimdallcli on /go/bin (already on PATH). +# The entrypoint is init.sh: it sources cometbft-common.sh, runs heimdalld init +# --chain shibarium, fetches the heimdall-109 genesis from GENESIS_URL, sets the +# shibarium seeds/persistent_peers, then exec's `heimdalld start --rest-server`. -ARG CL_IMAGE=shibaone/heimdall +ARG CL_REPO=https://github.com/shibaone/heimdall ARG CL_VERSION=v1.0.7-bone -FROM ${CL_IMAGE}:${CL_VERSION} +FROM golang:1.22 -# Copy the shared CometBFT helpers and chain-specific entrypoint +ARG CL_REPO +ARG CL_VERSION + +RUN apt-get update -y && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends build-essential git curl jq ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /var/lib/heimdall +RUN git clone --depth 1 --branch ${CL_VERSION} ${CL_REPO} . \ + && make install + +# vibe-node CometBFT bootstrap entrypoint (context is ./shibarium) COPY ./scripts/cometbft-common.sh /usr/local/bin/cometbft-common.sh COPY ./scripts/init.sh /usr/local/bin/init.sh +RUN chmod +x /usr/local/bin/init.sh /usr/local/bin/cometbft-common.sh -# Make init.sh executable -RUN chmod +x /usr/local/bin/init.sh - -# Set entrypoint to our init script +EXPOSE 1317 26656 26657 ENTRYPOINT ["init.sh"]