Skip to content

test(frost): multi-node interactive signing e2e over the real pkg/net transport#4095

Merged
mswilkison merged 1 commit into
feat/frost-schnorr-migration-scaffoldfrom
feat/frost-7.3-net-transport-e2e
Jun 19, 2026
Merged

test(frost): multi-node interactive signing e2e over the real pkg/net transport#4095
mswilkison merged 1 commit into
feat/frost-schnorr-migration-scaffoldfrom
feat/frost-7.3-net-transport-e2e

Conversation

@mswilkison

Copy link
Copy Markdown
Contributor

What

The pkg/net RunnerBus adapter (broadcastChannelRunnerBus, #4080) had thorough unit coverage — seat authentication, demux, dedup, drop-on-overflow, wire round-trip — but no end-to-end test of a full interactive signing round flowing through it. This adds that.

n interactive signing runners are wired over n real pkg/net BroadcastChannel buses (one operator per seat, all on one in-memory network), each driving the deterministic fake engine, completing a whole round across the production transport adapter rather than the in-process test bus. It exercises:

  • wire serialization of every RunnerMessage type (commitments, signing package, shares),
  • the claimed-seat ↔ authenticated-operator-key binding,
  • the per-type demux, and bounded delivery.

Two cases:

  • Full-included (TestInteractiveSigningRunner_NetTransport_FullIncludedRound): group size == threshold == 2, every seat signs.
  • t-of-included (TestInteractiveSigningRunner_NetTransport_ThresholdSubsetRound): group size 3, threshold 2 — the coordinator finalizes over a t-subset and the remaining committed seat observes, so the RFC-21 Phase 7.3 subset/observer flow is validated across the real transport too.

Why

This is the explicit prerequisite for retiring the coarse path ("don't delete coarse until real transport passes multi-node testing"). It's un-gated (no -tr audit dependency — fake engine, no real FROST crypto; the engine suite covers the crypto), and it raises confidence in the merged transport adapter before any production cutover.

Scope

Test-only, frost_native (pre-prod) tag; no production behavior change. The standard client-* CI does not build frost_native tags, so this is validated locally: default + frost_native build/vet, and the new tests under -race, plus the full pkg/frost/signing frost_native -race suite (no regression), gofmt clean.

🤖 Generated with Claude Code

… transport

The pkg/net RunnerBus adapter (broadcastChannelRunnerBus) had thorough unit
coverage (seat authentication, demux, dedup, drop-on-overflow, wire round-trip)
but no end-to-end test of a full interactive signing round flowing through it.
This adds that: n interactive signing runners wired over n REAL pkg/net
BroadcastChannel buses (one operator per seat on one in-memory network), each
driving the deterministic fake engine, completing a whole round across the
production transport rather than the in-process test bus.

It exercises wire serialization of every RunnerMessage type (commitments,
signing package, shares), the claimed-seat<->authenticated-operator-key binding,
the per-type demux, and bounded delivery, with two cases:
- full-included (group size == threshold == 2, every seat signs);
- t-of-included (group size 3, threshold 2): the coordinator finalizes over a
  t-subset and the remaining committed seat observes, so the RFC-21 Phase 7.3
  subset/observer flow is validated across the real transport too.

This is the explicit prerequisite for retiring the coarse path ("real transport
passes multi-node testing"). Test-only, frost_native (pre-prod) tag; no
production behavior change. The standard client-* CI does not build frost_native
tags, so this is validated locally (default + frost_native + -race).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 99ad11bd-6757-4a91-aa60-498bebd5d4b4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/frost-7.3-net-transport-e2e

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mswilkison mswilkison merged commit eb35661 into feat/frost-schnorr-migration-scaffold Jun 19, 2026
15 of 16 checks passed
@mswilkison mswilkison deleted the feat/frost-7.3-net-transport-e2e branch June 19, 2026 23:56
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