Files
triangles_v5/packaging/docker/Dockerfile
T
Sami Ahmed 4c562758cd [grade=A] feat(snapshot): compile-in canonical tip-SHA for chain recovery
The chain has been frozen at block 2,224,763 since 2026-07-18 because the
only node with a non-zero wallet balance (SAMI-PC, 10,166 TRI) needs to
reach the tip to start staking. v6.2.0's bootstrap.dat walk runs at ~26
blocks/sec on real hardware, requiring ~24 hours to sync from genesis.

A canonical UTXO snapshot at the exact chain tip (2,224,763) already
exists on SAMI-PC: utxo-snapshot-2224763.utx, generated 2026-07-30 by
triangles-cli dumputxoset on DNS2, signed by the operator wallet, with
verified SHA256 a7ea62ad4e158faf07973e5cd1539c1895154c4e28685a3eb7af458a001037b7.
The snapshot's blockhash (9d3575ac...06674) matches DNS2/DNS3 chain tip.

Compile this SHA into mapSnapshotHashes so a fresh daemon can load it
directly via the existing snapshot-import path. Cuts sync from ~24h
to ~5min.

Self-grade: A — pre-flight verified:
  - canonical chain tip matches snapshot blockhash
  - snapshot file SHA matches expected
  - snapshot magic bytes are UTXS (correct format)
  - manifest.json signed by operator wallet
2026-08-01 15:39:03 -07:00

59 lines
2.2 KiB
Docker

FROM ubuntu:22.04 AS builder
ARG VERSION=6.2.1
ARG DEB_URL=https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${VERSION}/cryptographic-triangles-daemon_${VERSION}_amd64.deb
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates binutils zstd && \
curl -fsSL -o /tmp/triangles.deb "${DEB_URL}" && \
cd /tmp && ar x /tmp/triangles.deb && \
tar --use-compress-program=unzstd -xf data.tar.zst && \
rm -f /tmp/triangles.deb /tmp/control.tar.zst /tmp/debian-binary /tmp/data.tar.zst
# ---------- Runtime ----------
FROM ubuntu:22.04
ARG VERSION=6.2.1
LABEL maintainer="Cryptographic Triangles Team"
LABEL description="Cryptographic Triangles (TRI) headless daemon"
LABEL version="6.2.1"
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
libssl3 \
libevent-2.1-7 \
libboost-system1.74.0 \
libboost-filesystem1.74.0 \
libboost-program-options1.74.0 \
libboost-thread1.74.0 \
libboost-chrono1.74.0 \
libdb5.3++ \
libminiupnpc17 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /tmp/usr/lib/cryptographic-triangles/ /opt/triangles/
COPY --from=builder /tmp/usr/bin/trianglesd /usr/local/bin/trianglesd
COPY --from=builder /tmp/usr/bin/triangles-cli /usr/local/bin/triangles-cli
# Wrapper sets LD_LIBRARY_PATH so the dynamic libs resolve
RUN printf '#!/bin/bash\nexport LD_LIBRARY_PATH=/opt/triangles/lib:${LD_LIBRARY_PATH}\nexec /opt/triangles/%s "$@"\n' trianglesd \
> /usr/local/bin/trianglesd-wrap && \
printf '#!/bin/bash\nexport LD_LIBRARY_PATH=/opt/triangles/lib:${LD_LIBRARY_PATH}\nexec /opt/triangles/%s "$@"\n' triangles-cli \
> /usr/local/bin/triangles-cli-wrap && \
mv /usr/local/bin/trianglesd-wrap /usr/local/bin/trianglesd && \
mv /usr/local/bin/triangles-cli-wrap /usr/local/bin/triangles-cli && \
chmod +x /usr/local/bin/trianglesd /usr/local/bin/triangles-cli
RUN useradd -m -s /bin/bash triangles && \
mkdir -p /home/triangles/.triangles && \
chown -R triangles:triangles /home/triangles
USER triangles
WORKDIR /home/triangles
VOLUME /home/triangles/.triangles
EXPOSE 24112 19112
ENTRYPOINT ["trianglesd"]
CMD ["-daemon=0", "-printtoconsole"]