Skip to content

Follow-up: bounded concurrent attempts per session (Decision 9 from PR #4005 review) #4251

Description

@piotr-roslaniec

Context

PR #4005 implements the interactive signing path single-attempt at a time per session. The spec (docs/phase-7-interactive-session-spec-freeze.md §8) reserves bounded n-t+1 concurrent attempts per session for a fast-follow but the implementation is serial today.

A wallet that needs concurrent signing — batch redemption across multiple UTXOs, simultaneous mint + redeem operations — cannot use this layer today; it has to serialize. Against a slashing deadline, this serialization is itself a liveness risk for high-throughput tBTC v2 wallets.

Decision (from gap-inventory.md)

Defer to v1.x. The canary stage 1 wallets operate single-UTXO; the concurrent-signing liveness risk is acceptable for the canary stages.

Acceptance criteria

  • Implement bounded n-t+1 concurrent attempts per session in pkg/tbtc/signer/src/engine/interactive.rs.
  • The spec already defines the attempt-scoped nonce handle (§4) and attempt-scoped registry keys (§5); wire them through the concurrency layer.
  • Concurrent attempts share the wallet key group but maintain independent nonces, attempt contexts, and registry state.
  • Hard cap: a session can have at most n-t+1 concurrent attempts; attempts beyond the cap fail closed.
  • Update the operator runbook to document the concurrency model and the cap.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions