aboutsummaryrefslogtreecommitdiffstats
path: root/sampledata/fulcrum
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-06-27 11:00:08 -0700
committerAdam Soltys <[email protected]>2026-06-27 11:00:08 -0700
commite0a4a5e9d332f998456b637f5d8ba38563d19827 (patch)
tree099ec5b42f5bdd545e82243dfe6b5faddf1edff1 /sampledata/fulcrum
parent45a988b3554f44abd03a2d89f1b9087c993186c1 (diff)
downloadcoinos-server-regtest-fulcrum.tar.gz
coinos-server-regtest-fulcrum.zip
regtest: add Fulcrum (Electrum/WS) with ZMQ push for Hal realtimeregtest-fulcrum
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 <[email protected]>
Diffstat (limited to 'sampledata/fulcrum')
-rw-r--r--sampledata/fulcrum/db/.gitkeep0
-rw-r--r--sampledata/fulcrum/fulcrum.conf17
2 files changed, 17 insertions, 0 deletions
diff --git a/sampledata/fulcrum/db/.gitkeep b/sampledata/fulcrum/db/.gitkeep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/sampledata/fulcrum/db/.gitkeep
diff --git a/sampledata/fulcrum/fulcrum.conf b/sampledata/fulcrum/fulcrum.conf
new file mode 100644
index 00000000..cafdc05d
--- /dev/null
+++ b/sampledata/fulcrum/fulcrum.conf
@@ -0,0 +1,17 @@
+# Fulcrum for the local regtest stack (mirrors prod's config, pointed at `bc`).
+# Serves the Electrum protocol over TCP (50001) and WebSocket (50003) — the WS
+# is what the Hal browser wallet connects to for data + realtime push. Block and
+# mempool notifications arrive over bitcoind's ZMQ (auto-discovered via the
+# getzmqnotifications RPC), so polltimesecs is just a slow safety net.
+datadir = /data
+bitcoind = bc:18443
+rpcuser = admin1
+rpcpassword = 123
+tcp = 0.0.0.0:50001
+ws = 0.0.0.0:50003
+peering = false
+announce = false
+db_mem = 1000
+bitcoind_clients = 1
+polltimesecs = 5
+zmq_allow_hashtx = true