fix(electrumx): probe bitcoin-knots/bitcoin-core for the daemon host instead of hardcoding knots

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 <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-07-18 19:55:06 -04:00
parent 25162ee846
commit a93bd70c5a
2 changed files with 82 additions and 3 deletions

View File

@ -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

View File

@ -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": [
{