Files
triangles_v5/scripts
Sami Ahmed fab44bb0fd build(tri-pi): add aarch64 + armhf cross toolchains, QEMU test harness, ARM64 libtor build
Five files for tri-pi cross-compilation and ARM64 Tor support:

- cmake/aarch64-toolchain.cmake: CMake toolchain file for aarch64-linux-gnu
- cmake/armhf-toolchain.cmake: same, for arm-linux-gnueabihf
- scripts/tri-pi-test.sh: QEMU-based test harness (user-mode + full-system)
  for Pi 3B/3A+/4B/5. Runs the cross-compiled trianglesd under
  qemu-aarch64-static so ARM binary correctness can be validated without
  physical Pi hardware.
- src/tor/build-libtor-aarch64.sh: cross-compile libtor.a for aarch64
  using the vendored configure flow from src/tor/configure.vendored.

These accompany the in-progress tri-pi bootstrap work (Hetzner Pi,
raspbian packaging).

Also staged (separately from the build scripts above):

- src/test/fuzz/transaction_deserialize_fuzz.cpp: libFuzzer harness for
  CTransaction deserialization. Reads raw attacker-controlled bytes
  into a CDataStream and calls Unserialize on a CTransaction, then
  exercises hash determinism, round-trip serialize/parse, and
  CheckTransaction bounds. Mirrors the Bitcoin Core deserialize-fuzz
  pattern. Not yet wired into src/CMakeLists.txt — the BUILD_FUZZ=ON
  gate currently only builds fuzz_script; a follow-up patch should add
  the analogous stanza for this target.
2026-07-31 20:08:39 -07:00
..
2026-04-29 16:48:16 -07:00
2026-07-07 13:33:12 -07:00

Scripts

Operational scripts for the Triangles project. See also doc/release-process.md for the canonical release pipeline documentation.

Build verification

  • verify-reproducible-build.sh — builds the daemon (or another target) twice from the same source tree and verifies the SHA256 hashes match. Catches accidental introduction of non-determinism (e.g. __DATE__/__TIME__ regressions, dirty git state, PIE base-address drift).

Release signing

  • sign-release.sh — generates SHA256SUMS, writes detached PGP signatures (.asc) over each release artifact and over SHA256SUMS. Supports --verify for independent third-party verification. Uses TRIANGLES_RELEASE_KEY env var (defaults to sami@cryptographic-triangles.org).

Existing infrastructure

  • bump-version.sh — sync version numbers across all manifests from src/clientversion.h.
  • sign-snapshot.sh — sign a UTXO snapshot file with the wallet's signing address (not a PGP key; this is a chain-level signature, not a release signature).
  • validate_onion_seeds.py — validate every .onion address in triangles.conf against the v3 hidden-service checksum.
  • ibd-smoke-test.sh — fresh-datadir IBD smoke test for catching the classic "stalls early / loops around 570" failure mode.
  • ci/build-rocksdb.sh — build and install a pinned RocksDB version for CI.
  • ci/package-linux-daemon.sh — Linux packaging step (.deb).
  • ci/package-windows-daemon.sh — Windows packaging step.
  • tri/ — operator-facing CLI for node administration.