From 8fd853847e142aae9b20fda244cf098561b11e13 Mon Sep 17 00:00:00 2001 From: Clemens Otto Date: Tue, 28 Oct 2025 13:14:33 +0100 Subject: [PATCH] [electrs-blockstream] 0.1.0 --- docker/electrs-blockstream/Dockerfile | 47 +++++++++++++++++++++++++++ docker/electrs-blockstream/README.md | 10 ++++++ docker/electrs-blockstream/VERSION | 1 + 3 files changed, 58 insertions(+) create mode 100644 docker/electrs-blockstream/Dockerfile create mode 100644 docker/electrs-blockstream/README.md create mode 100644 docker/electrs-blockstream/VERSION diff --git a/docker/electrs-blockstream/Dockerfile b/docker/electrs-blockstream/Dockerfile new file mode 100644 index 0000000..a080b15 --- /dev/null +++ b/docker/electrs-blockstream/Dockerfile @@ -0,0 +1,47 @@ +# ---- builder ---- +ARG RUST_VERSION=1.90.0 +FROM rust:${RUST_VERSION}-trixie AS builder + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + build-essential ca-certificates clang cmake curl g++ git libclang-dev make pkg-config \ + && apt-get install -y --no-install-recommends \ + libbz2-dev liblz4-dev libsnappy-dev libzstd-dev zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /src +ARG REPO=https://github.com/blockstream/electrs.git +#ARG REF=new-index +# pin latest commit of branch new-index +ARG REF=f1823d82b03dbd1dfef53f7b3611128dd2f4c1d2 + +RUN git clone --filter=blob:none "${REPO}" . \ + && git fetch origin "${REF}" \ + && git checkout "${REF}" + +# Build options: FEATURES="electrum-discovery,liquid" +# electrum-discovery -> discovery support +# liquid -> Elements/Liquid support +ARG FEATURES=electrum-discovery +RUN cargo build --locked --release --bin electrs --features "${FEATURES}" + +# ---- runtime ---- +FROM debian:trixie-slim + +RUN apt-get update \ + && apt-get install -y --no-install-recommends ca-certificates libstdc++6 curl \ + && rm -rf /var/lib/apt/lists/* + +RUN useradd -r -d /var/lib/electrs -s /usr/sbin/nologin electrs \ + && mkdir -p /data && chown -R electrs:electrs /data + +COPY --from=builder /src/target/release/electrs /usr/local/bin/electrs + +USER electrs +VOLUME ["/data"] + +# Electrum RPC and HTTP API +EXPOSE 50001 3000 + +ENTRYPOINT ["/usr/local/bin/electrs"] +CMD ["--db-dir","/data","--electrum-rpc-addr","0.0.0.0:50001","--http-addr","0.0.0.0:3000"] \ No newline at end of file diff --git a/docker/electrs-blockstream/README.md b/docker/electrs-blockstream/README.md new file mode 100644 index 0000000..7d80ac4 --- /dev/null +++ b/docker/electrs-blockstream/README.md @@ -0,0 +1,10 @@ +Electrs backend API optimized for public usage by Blockstream for the Esplora block explorer based on the re-implementation of romanz/electrs + +- Blockstream/electrs: https://github.com/blockstream/electrs +- romanz/electrs https://github.com/romanz/electrs +- Blockstream/esplora https://github.com/Blockstream/esplora + + +Alternative image sources: +- https://github.com/getumbrel/docker-electrs (using romanz/electrs) +- https://github.com/mempool/electrs (based on romanz/electrs and Blockstream/electrs) \ No newline at end of file diff --git a/docker/electrs-blockstream/VERSION b/docker/electrs-blockstream/VERSION new file mode 100644 index 0000000..6c6aa7c --- /dev/null +++ b/docker/electrs-blockstream/VERSION @@ -0,0 +1 @@ +0.1.0 \ No newline at end of file