Skip to content

Add reproducible binary verification workflow#48

Open
KingParmenides wants to merge 4 commits into
SatoshiPortal:developfrom
KingParmenides:codex-reproducible-binary-checks
Open

Add reproducible binary verification workflow#48
KingParmenides wants to merge 4 commits into
SatoshiPortal:developfrom
KingParmenides:codex-reproducible-binary-checks

Conversation

@KingParmenides

Copy link
Copy Markdown

Companion to SatoshiPortal/bdk-flutter#5 and the reproducible-build bounty in SatoshiPortal/bdk-flutter#1.

This ports the same Cargokit reproducibility verifier to boltz-dart, one of the sibling libraries named in the bounty.

What changed:

  • Added build_tool reproduce-binaries, which rebuilds selected Rust targets locally, downloads the matching precompiled_<crate-hash> GitHub release assets, verifies Ed25519 signatures, and byte-compares local vs remote artifacts.
  • Added --url-prefix and --public-key overrides for release verification before committing a precompiled_binaries section to rust/cargokit.yaml.
  • Added bash/Docker wrappers for Linux and Android reproducibility checks.
  • Added a macOS wrapper for macOS/iOS targets.
  • Documented direct and wrapper usage in cargokit/docs/precompiled_binaries.md and reproducible_builds/README.md.

Verification performed:

  • dart format lib/src/build_tool.dart lib/src/reproduce_binaries.dart
  • dart pub get with Dart 3.4.4
  • dart test with Dart 3.4.4
  • dart analyze with Dart 3.4.4 (only existing info: unused private constructor in options.dart)
  • dart run build_tool reproduce-binaries --help
  • dart run build_tool reproduce-binaries --manifest-dir=../../rust --target not-a-target
  • bash -n reproducible_builds/*.sh
  • git diff --check

Payout BTC address for the linked bounty: 39Q34P8A7g375yqEr8buvNJkUbRgKfbKQZ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant