Skip to content

Conversation

@cdecker
Copy link
Collaborator

@cdecker cdecker commented Nov 5, 2025

We were using an old clnvm rather than relying on the one bundled with the PR itself.
The hash also changed a number of times, due to ongoing work in how we build and distribute CLN versions for GL, so more changes are queued up.

Closes #633

@cdecker cdecker force-pushed the 202511-clnvm-hash branch 2 times, most recently from 86d3596 to 503d459 Compare November 6, 2025 15:47
cdecker and others added 3 commits November 6, 2025 16:51
We used to hard-code the CLN version hashes, which is a bit more strict than we
want. If we change something on the CI in the way we build the CLN version, or
even just recompile, the hashes don't match. Additionally an old clnvm version
could not install any CLN versions published after it was last updated.

The manifest is a clnvm-independent list of files, their size, checksums, and GPG
signature.
- Add signature field to VersionDescriptor to store ASCII-armored PGP signatures from manifest
- Load signatures from manifest.json during version updates
- Implement _verify_signature() to verify GPG signatures using gnupg library
- Add SignatureVerificationFailed exception for signature verification errors
- Update _download() to:
  - Stream downloads to temporary file instead of loading full file in memory
  - Verify GPG signature after download but before extraction
  - Warn if signature is not available but do not fail
- Update tests to fix CLN_VERSIONS import issue and work with manifest versions

This adds cryptographic verification of downloaded Core Lightning binaries,
ensuring they haven't been tampered with after leaving the CI/CD pipeline.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Github is removing that image, switched to `macos-latest`
@cdecker cdecker force-pushed the 202511-clnvm-hash branch 2 times, most recently from 9589f66 to 436fdb6 Compare November 11, 2025 15:53
@cdecker cdecker force-pushed the 202511-clnvm-hash branch 2 times, most recently from 412d3eb to ebad106 Compare November 12, 2025 12:07
@cdecker cdecker merged commit c23c3e9 into main Nov 12, 2025
11 checks passed
@cdecker cdecker deleted the 202511-clnvm-hash branch November 12, 2025 16:03
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.

Hash mismatch v25.05gl1 in cln_version_manager

2 participants