feat(wallet,content,seed): Fedimint dual-ecash, paid content streaming, seed ceremony
- Fedimint ecash alongside Cashu: fedimint-clientd (fmcd) HTTP bridge, fedimint_client, fedimint RPC, wallet wiring - Paid peer content: content invoices + streaming content server + content RPCs - Seed-phrase ceremony/reveal RPCs and CLI ceremony tool - LND wallet, mesh status/messaging, app-stack (netbird HTTPS), and decoupled-update wiring; Fedimint Client core app in catalog Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
c10f2ac22e
commit
bd567cd165
@@ -0,0 +1,21 @@
|
||||
# fmcd (Fedimint client daemon) runtime image.
|
||||
#
|
||||
# The fmcd binary is built from source (github.com/minmoto/fmcd v0.8.0,
|
||||
# fedimint-client 0.8.2 — iroh-capable) with Rust 1.86.0, then copied in here.
|
||||
# Base must match the build host's glibc (Debian trixie / glibc 2.41).
|
||||
# Binary is dynamically linked against libstdc++ (statically-bundled rocksdb)
|
||||
# and uses rustls (no openssl). Build context must contain the `fmcd` binary.
|
||||
FROM debian:trixie-slim
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates libstdc++6 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY fmcd /usr/local/bin/fmcd
|
||||
COPY fmcd-run /usr/local/bin/fmcd-run
|
||||
RUN chmod +x /usr/local/bin/fmcd /usr/local/bin/fmcd-run
|
||||
|
||||
EXPOSE 8080
|
||||
# Resilient launcher (retries on join failure instead of crash-looping).
|
||||
# All config is read from FMCD_* env vars.
|
||||
ENTRYPOINT ["fmcd-run"]
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
# Resilient launcher for fmcd.
|
||||
#
|
||||
# fmcd requires >=1 federation to boot — if the default federation is
|
||||
# unreachable at first boot it exits non-zero. Rather than let the container
|
||||
# crash-loop (and on a node, spam restarts), retry here with a backoff so the
|
||||
# join happens in the background once the federation becomes reachable. Once
|
||||
# fmcd is up it runs forever; this loop only re-runs it on exit.
|
||||
#
|
||||
# All config comes from FMCD_* env (FMCD_ADDR, FMCD_MODE, FMCD_DATA_DIR,
|
||||
# FMCD_INVITE_CODE, FMCD_PASSWORD), so fmcd needs no CLI args here.
|
||||
set -u
|
||||
while true; do
|
||||
fmcd || true
|
||||
echo "[fmcd-run] fmcd exited (federation unreachable?); retrying in 30s" >&2
|
||||
sleep 30
|
||||
done
|
||||
Reference in New Issue
Block a user