fab44bb0fd
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.
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— generatesSHA256SUMS, writes detached PGP signatures (.asc) over each release artifact and overSHA256SUMS. Supports--verifyfor independent third-party verification. UsesTRIANGLES_RELEASE_KEYenv var (defaults tosami@cryptographic-triangles.org).
Existing infrastructure
bump-version.sh— sync version numbers across all manifests fromsrc/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.onionaddress intriangles.confagainst 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.