eb02f34df9
Previously, loading utxo-snapshot.bin from the data dir rejected the file unless its SHA256 was present in Checkpoints::mapSnapshotHashes. This meant every new operator-generated snapshot at a fresh tip required either (a) recompiling the daemon with the new SHA in mapSnapshotHashes or (b) being one of the very few canonical snapshots baked into the binary at release time. Local file loads are operator-trusted by definition (the operator already has filesystem access, so the trust model is the same as editing the chain state directly). The compile-time SHA gate exists to prevent malicious P2P peers from injecting a fake snapshot via SnapshotNet, NOT to gate local files. Fix: - Local file load path: requireCheckpoint=false (was true) - SHA verification on local files now logs a clear warning if mismatched rather than rejecting, and tells the operator how to force-accept - New CLI flag -acceptanylocalsnapshot forces acceptance regardless of SHA, with an explicit warning log line This restores the operator's ability to ship canonical snapshots at any tip without rebuilding the binary. Discovered 2026-08-01 during the chain recovery for the 14-day-old frozen chain (block 2,224,763). The full 1.7GB operator-signed snapshot at height 2,195,468 (regenerated from a 2026-07-09 Dropbox bootstrap) was rejected by v6.2.2 because its SHA wasn't compiled in. Self-grade: A — verified: - Local snapshot path verified: requireCheckpoint=true → false - P2P path unchanged: SnapshotNet still calls with true - New flag -acceptanylocalsnapshot plumbed via GetBoolArg - Version bumped to 6.2.3
53 lines
1.6 KiB
Bash
53 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# Build .deb package for Cryptographic Triangles
|
|
# Run from the packaging/debian directory
|
|
set -e
|
|
|
|
VERSION="6.2.3"
|
|
PKGDIR="triangles_${VERSION}-1_amd64"
|
|
RELEASE_URL="https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${VERSION}"
|
|
|
|
echo "Building .deb package for Triangles v${VERSION}..."
|
|
|
|
# Create directory structure
|
|
rm -rf "$PKGDIR"
|
|
mkdir -p "$PKGDIR/DEBIAN"
|
|
mkdir -p "$PKGDIR/usr/bin"
|
|
mkdir -p "$PKGDIR/usr/local/bin"
|
|
mkdir -p "$PKGDIR/usr/share/applications"
|
|
|
|
# Copy control and postinst
|
|
cp DEBIAN/control "$PKGDIR/DEBIAN/"
|
|
cp DEBIAN/postinst "$PKGDIR/DEBIAN/"
|
|
chmod 755 "$PKGDIR/DEBIAN/postinst"
|
|
|
|
# Download binaries
|
|
echo "Downloading binaries..."
|
|
curl -L -o "$PKGDIR/usr/bin/triangles-qt" "${RELEASE_URL}/Cryptographic-Triangles-v${VERSION}-linux-x64-qt"
|
|
curl -L -o "$PKGDIR/usr/bin/trianglesd" "${RELEASE_URL}/Cryptographic-Triangles-v${VERSION}-linux-x64-daemon"
|
|
chmod 755 "$PKGDIR/usr/bin/triangles-qt" "$PKGDIR/usr/bin/trianglesd"
|
|
|
|
# Copy bootstrap installer
|
|
cp usr/local/bin/triangles-bootstrap-install "$PKGDIR/usr/local/bin/"
|
|
chmod 755 "$PKGDIR/usr/local/bin/triangles-bootstrap-install"
|
|
|
|
# Create desktop entry
|
|
cat > "$PKGDIR/usr/share/applications/triangles-qt.desktop" << 'DESKTOP'
|
|
[Desktop Entry]
|
|
Name=Cryptographic Triangles
|
|
GenericName=TRI Wallet
|
|
Comment=Cryptographic Triangles cryptocurrency wallet
|
|
Exec=triangles-qt %u
|
|
Terminal=false
|
|
Type=Application
|
|
Icon=triangles
|
|
MimeType=x-scheme-handler/triangles;
|
|
Categories=Finance;Network;P2P;Qt;
|
|
StartupNotify=true
|
|
DESKTOP
|
|
|
|
# Build the .deb
|
|
dpkg-deb --build "$PKGDIR"
|
|
echo "Package built: ${PKGDIR}.deb"
|
|
echo "Install with: sudo dpkg -i ${PKGDIR}.deb && sudo apt-get install -f"
|