From a93bd70c5ab1945d2ccc50250f769034523a7bff Mon Sep 17 00:00:00 2001 From: archipelago Date: Sat, 18 Jul 2026 19:55:06 -0400 Subject: [PATCH] fix(electrumx): probe bitcoin-knots/bitcoin-core for the daemon host instead of hardcoding knots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The manifest baked bitcoin-knots:8332 into DAEMON_URL. Nodes whose backend runs under the bitcoin-core name (and any future variant without a knots DNS alias) left electrumx permanently disconnected — 'connection problem' forever and a block index stuck at 0. The startup script now picks the first backend name that resolves on archy-net and falls back to bitcoin-knots. Catalog regenerated (catalog manifests override disk ones fleet-wide); this regen also embeds the recently-merged barkd/Ark manifest for the first time. Co-Authored-By: Claude Fable 5 --- apps/electrumx/manifest.yml | 9 ++++- releases/app-catalog.json | 76 ++++++++++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 3 deletions(-) diff --git a/apps/electrumx/manifest.yml b/apps/electrumx/manifest.yml index 36741b38..bdbb7e9b 100644 --- a/apps/electrumx/manifest.yml +++ b/apps/electrumx/manifest.yml @@ -10,9 +10,16 @@ app: network: archy-net data_uid: "1000:1000" entrypoint: ["sh", "-lc"] + # The bitcoin backend container is bitcoin-knots OR bitcoin-core depending + # on which version the node runs (multi-version switch) — probe which name + # resolves on archy-net instead of hardcoding knots, which left electrumx + # permanently disconnected (block index 0) on core nodes. custom_args: - >- - export DAEMON_URL="http://archipelago:$(printenv BITCOIN_RPC_PASS)@bitcoin-knots:8332/"; + for h in bitcoin-knots bitcoin-core; do + if getent hosts "$h" >/dev/null 2>&1; then BTC_HOST="$h"; break; fi; + done; + export DAEMON_URL="http://archipelago:$(printenv BITCOIN_RPC_PASS)@${BTC_HOST:-bitcoin-knots}:8332/"; exec electrumx_server secret_env: - key: BITCOIN_RPC_PASS diff --git a/releases/app-catalog.json b/releases/app-catalog.json index 720df197..b576a51c 100644 --- a/releases/app-catalog.json +++ b/releases/app-catalog.json @@ -1,6 +1,6 @@ { "schema": 1, - "updated": "2026-07-10", + "updated": "2026-07-18", "apps": { "adguardhome": { "version": "v0.107.55", @@ -333,6 +333,78 @@ } } }, + "barkd": { + "version": "0.3.0", + "manifest": { + "app": { + "id": "barkd", + "name": "Ark Wallet", + "version": "0.3.0", + "description": "Ark protocol wallet daemon (barkd). Lets the node hold self-custodial off-chain bitcoin via an Ark server; the wallet talks to it over a local REST API. Signet by default while Ark matures.", + "container": { + "image": "146.59.87.168:3000/lfg2025/barkd:0.3.0", + "pull_policy": "if-not-present", + "network": "archy-net", + "generated_secrets": [ + { + "name": "barkd-secret", + "kind": "hex32" + } + ], + "secret_env": [ + { + "key": "BARKD_SECRET", + "secret_file": "barkd-secret" + } + ], + "data_uid": "1000:1000" + }, + "dependencies": [ + { + "storage": "1Gi" + } + ], + "resources": { + "cpu_limit": 1, + "memory_limit": "512Mi", + "disk_limit": "1Gi" + }, + "security": { + "readonly_root": true, + "network_policy": "bridge" + }, + "ports": [ + { + "host": 3535, + "container": 3535, + "protocol": "tcp" + } + ], + "volumes": [ + { + "type": "bind", + "source": "/var/lib/archipelago/barkd", + "target": "/data", + "options": [ + "rw" + ] + } + ], + "environment": [ + "BARKD_DATADIR=/data", + "BARKD_BIND_HOST=0.0.0.0", + "BARKD_BIND_PORT=3535" + ], + "health_check": { + "type": "tcp", + "endpoint": "localhost:3535", + "interval": "30s", + "timeout": "5s", + "retries": 3 + } + } + } + }, "bitcoin-core": { "version": "latest", "manifest": { @@ -1085,7 +1157,7 @@ "-lc" ], "custom_args": [ - "export DAEMON_URL=\"http://archipelago:$(printenv BITCOIN_RPC_PASS)@bitcoin-knots:8332/\"; exec electrumx_server" + "for h in bitcoin-knots bitcoin-core; do if getent hosts \"$h\" >/dev/null 2>&1; then BTC_HOST=\"$h\"; break; fi; done; export DAEMON_URL=\"http://archipelago:$(printenv BITCOIN_RPC_PASS)@${BTC_HOST:-bitcoin-knots}:8332/\"; exec electrumx_server" ], "secret_env": [ {