Skip to content

plugin: Enforce canonical LSPS ordering#730

Open
cdecker wants to merge 3 commits into
mainfrom
2026w23-lsps-ordering
Open

plugin: Enforce canonical LSPS ordering#730
cdecker wants to merge 3 commits into
mainfrom
2026w23-lsps-ordering

Conversation

@cdecker

@cdecker cdecker commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

We were randomly selecting an LSPS peer from the list of peers. Adding
a canonical ordering, by their node_id, allows us to steer that
selection more reproducibly.

@cdecker cdecker force-pushed the 2026w23-lsps-ordering branch 2 times, most recently from 42a58ef to bd267ff Compare June 10, 2026 15:59
cdecker and others added 3 commits June 29, 2026 16:17
The test harness picked the default CLN node version with a lexicographic
`max()` over the manifest tags (and a `[... "gl" ...][-1]` in the `paths`
fixture). As soon as a new release lands in the shared manifest.json it
becomes the default for the whole suite, even if the client and signer do
not support it yet. That is how `v26.06gl1` started being used before
support was built in.

Make selection deterministic and explicitly bounded:

- Add `version_sort_key()`/`version_base()` parsing the `vX.Y[.Z][glN]`
  tags into numeric, ordered keys. The `glN` suffix is a separate
  component, so ordering is numeric (not lexicographic) and the base
  version can be compared independently of the greenlight suffix.
- Add `ClnVersionManager.supported_versions(lowest, highest)` and
  `latest_supported(lowest, highest)`, filtering to base versions within
  `[lowest, highest]` inclusive and dropping non-numbered tags (`main`).
- Make the existing `latest()` deterministic too.
- In the gl-testing fixtures, pin `LOWEST_SUPPORTED_VERSION` explicitly and
  derive `HIGHEST_SUPPORTED_VERSION` from `glclient.__version__`, i.e. what
  the signer (libhsmd) actually supports. The suffix is ignored when
  comparing, so the signer reporting `v25.12` matches `v25.12gl1` but
  excludes `v26.06gl1`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
No functional change; empty commit to re-run the pipeline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cdecker cdecker force-pushed the 2026w23-lsps-ordering branch from bd267ff to d69fb17 Compare June 29, 2026 15:22
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