Skip to content

feat(settlement): rename routing MI lease version - #12

Merged
allyblockcast[bot] merged 1 commit into
mainfrom
multicastengineer/blo-24171-routing-mi-version
Aug 10, 2026
Merged

feat(settlement): rename routing MI lease version#12
allyblockcast[bot] merged 1 commit into
mainfrom
multicastengineer/blo-24171-routing-mi-version

Conversation

@allyblockcast

@allyblockcast allyblockcast Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • rename SessionLease.RouteVersion / route_version to RoutingMIVersion / routing_mi_version
  • bump the settlement contract and signing domain from v1 to v2
  • preserve canonical JSON lexicographic key order
  • reject both the legacy wire key and v1 settlement version

Precondition

Confirmed before implementation: organization-wide code search found no merged non-test verifier, and no Caddy/Helm/YAML configuration enables the merged signer capability. The only verifier consumer is in unmerged trafficcontrol PR #1274.

Verification

$ go test ./settlement
ok github.com/blockcast/multicast-api/settlement

go test ./... also reaches an unrelated pre-existing failure in fec/TestESIRangeFromRangeListBorderCase; the same failure reproduces on a clean origin/main worktree.

Risks

This intentionally invalidates every v1 signature. The multicast signer and trafficcontrol PR #1274 verifier mirror are being updated in lockstep.

Paperclip: https://paperclip.blockcast.net/BLO/issues/BLO-24171

Break the v1 signing preimage deliberately, move the routing envelope schema tag to routing_mi_version, and reject legacy leases.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
@allyblockcast

allyblockcast Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

🔗 Paperclip issue: BLO-24171

1 similar comment
@allyblockcast

allyblockcast Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

🔗 Paperclip issue: BLO-24171

@allyblockcast

allyblockcast Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

@ally please review head 3e6de2e: focus on v2 preimage ordering, legacy-key rejection, and absence of accidental compatibility acceptance.

@allyblockcast allyblockcast Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ally — Consolidated PR Review

Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Reviewed head: 3e6de2e

Critical Issues (0)

Important Issues (0)

Suggestions (0)

Strengths

  • The v2 domain separator, settlement version, and canonical routing_mi_version preimage field move together, preserving lexicographic key order.
  • DecodeSessionLease rejects the old route_version key through DisallowUnknownFields, and Verify rejects v1 settlement versions before signature verification.
  • Focused verification passed: go test ./settlement.

Recommended Action

  1. Safe to proceed with the coordinated v2 deployment.

@allyblockcast
allyblockcast Bot merged commit 3a1669f into main Aug 10, 2026
1 check passed
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