From e0a4a5e9d332f998456b637f5d8ba38563d19827 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 27 Jun 2026 11:00:08 -0700 Subject: regtest: add Fulcrum (Electrum/WS) with ZMQ push for Hal realtime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a regtest Fulcrum service matching what prod runs, replacing the old electrs + ews bridge as the data/realtime backend for the Hal browser wallet. It connects to `bc` and gets instant block/mempool notifications over bitcoind's ZMQ (hashblock/hashtx), serving them to the browser over an Electrum WebSocket (:50003) — sub-second deposit + confirmation updates on regtest. - docker/fulcrum.Dockerfile: Fulcrum on ghcr.io/coinos/base (shares layers with the rest of the stack instead of a separate image tree). - compose.fulcrum.yml: opt-in overlay (`-f compose.fulcrum.yml up -d`), config + datadir under the gitignored data/ (seeded from sampledata by setup.sh). - sampledata/fulcrum/fulcrum.conf: regtest config pointed at `bc`, ZMQ enabled. - sampledata/bitcoin/bitcoin.conf: add zmqpubhashblock/hashtx (18508/18509) so Fulcrum can subscribe for instant notifications. Co-Authored-By: Claude Opus 4.8 --- docker/fulcrum.Dockerfile | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docker/fulcrum.Dockerfile (limited to 'docker') diff --git a/docker/fulcrum.Dockerfile b/docker/fulcrum.Dockerfile new file mode 100644 index 00000000..3f80b95a --- /dev/null +++ b/docker/fulcrum.Dockerfile @@ -0,0 +1,13 @@ +# Fulcrum on the coinos base image. The static upstream release binary is +# self-contained, so we just drop it onto ghcr.io/coinos/base — the rest of the +# coinos stack already uses that base, so this shares layers instead of pulling +# a separate Fulcrum image tree. Matches the prod Fulcrum version. +FROM ghcr.io/coinos/base +USER root +ARG VERSION=2.1.1 +ADD https://github.com/cculianu/Fulcrum/releases/download/v${VERSION}/Fulcrum-${VERSION}-x86_64-linux.tar.gz /tmp/f.tar.gz +RUN tar xzf /tmp/f.tar.gz -C /usr/local/bin --strip-components=1 \ + Fulcrum-${VERSION}-x86_64-linux/Fulcrum Fulcrum-${VERSION}-x86_64-linux/FulcrumAdmin \ + && rm /tmp/f.tar.gz && mkdir -p /etc/fulcrum /data +ENTRYPOINT ["Fulcrum"] +CMD ["/etc/fulcrum/fulcrum.conf"] -- cgit v1.2.3