Priority: P1 — Go side of the shared conformance/fault-injection matrix (twin of Amperstrand/tollgate-module-basic-rust#15).
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
調査の方向性
Read Rust issue #15 first and coordinate ownership of the shared YAML matrix in PRTA tests/conformance/; then inspect Go tests/cloud-lab/ and the CI workflow. Start by identifying how the existing cloud-lab tests launch backends and exercise mint interactions. Done means make conformance BACKEND=go emits verdicts for the same scenarios as Rust, with a nightly Go×Rust comparison artifact; G09 and the shared-spec dependency need coordination.
索引モデルが issue の本文から書いたものです。
説明
Priority: P1 — Go side of the shared conformance/fault-injection matrix (twin of Amperstrand/tollgate-module-basic-rust#15).
Problem
Go's correctness claims rest on per-flow unit tests and cloud-lab lanes that each backends' own doubles. No shared, invariant-based fault matrix runs identically against Go and Rust, so "which backend is safer" is currently an assertion, not a measurement — and Go's own regression surface (restart, ambiguous outcomes, aliases) is not systematically swept either.
Why it matters
The Go-vs-Rust architecture decision needs identical-scenario evidence. Also: several Go fixes (#266, #433, #440/#447) have repro-specific tests but no standing kill-at-boundary lanes, so regressions of the class (not the symptom) go unnoticed.
Current behavior
tests/cloud-lab/: smoke, swap fees, keyset rotation, mint failure, two-router autopay — real mints (cdk-mintd), no fault proxy, no process-kill matrix, Go-only.- PRTA: multi-backend venue support (
--backend go|rust-basic|rust), physical + QEMU + SHC. - Rust #15 defines the shared matrix spec + mint-fault proxy.
Desired invariant (asserted per scenario, identical for both backends)
- No funds disappear (mint ledger ↔ wallet balance ↔ payment records reconcile).
- No value double-counted.
- No deterministic output re-exposed to a mint (proxy/mint records every blinded message).
- Customer receives service or recoverable value.
- Operator wallet spendable (no unbounded reserved proofs).
- Retries don't corrupt state.
- Restart converges (bounded time).
Proposed scope
- Co-own the matrix spec (YAML in PRTA) with the Rust issue; do not fork it.
- Implement Go-side enabling hooks if the assertions need them: stable payment-record output (G09), pending-proof visibility, blinded-message logging at the mint proxy.
- Wire the matrix into CI as a nightly lane (full) + PR lane (fast subset: duplicate, timeout-retry, restart-mid-payment, alias spellings).
- Publish the differential table per run; divergences become issues on the responsible repo.
Areas / files
PRTA tests/conformance/, Go tests/cloud-lab/ (proxy integration), CI workflow.
Acceptance criteria
make conformance BACKEND=goproduces the verdict table; identical scenario set as Rust runs.- Nightly artifact: Go×Rust comparison visible at a glance.
Required tests / Failure-injection tests
This issue IS the harness.
Compatibility
Matrix must use only HTTP + mint + process control (backend-agnostic).
Dependencies
G09 (payment records) for scenario assertions; Rust #15 for the shared spec (coordinate authorship).
Out of scope
- MT3000 physical runs (PRTA's own lanes; hardware campaign is Rust #16's scope — Go already has physical evidence).
- 主要言語
- Go
- スター
- 12
- フォーク
- 14
- 平均マージ
- 3日 22時間
- マージ済み PR(30日)
- 262
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OpenTollGate/tollgate-module-basic-go のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
OpenTollGate/tollgate-module-basic-go#1159 ·
メンテナーはふだん 1 日以内に返信
-
Degraded-mode hygiene follow-ups: dead walletNotInitializedError() + main.go's startup log still over-promises mint recovery対応中かも @Amperstrand が 3 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
OpenTollGate/tollgate-module-basic-go#1135 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
setup_uhttpd_portal hardcodes the GUEST portal docroot to the TollGate path — the brand token cannot select a re-brand guest portal対応中かも @Amperstrand が 4 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
OpenTollGate/tollgate-module-basic-go#1122 ·
メンテナーはふだん 1 日以内に返信
-
changelog: dependency-security sweep missing from [Unreleased] [Amperstrand fork #105 review debt]オープン
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
OpenTollGate/tollgate-module-basic-go#1055 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
OpenTollGate/tollgate-module-basic-go#1027 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
OpenTollGate/tollgate-module-basic-go の issue をすべて見る
似ている issue
-
Logging into a locally started instance clears its container reference, causing stop to do nothingオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
microcks/microcks-cli#620 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
teradata-labs/loom#574 ·
メンテナーはふだん 1 日以内に返信
-
cli: name the CRID when saved link limits fail after publish; soften plain-republish mint warningオープンenhancement pr-polish-followup priority: low
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
layervai/qurl-integrations#1994 ·
メンテナーはふだん 1 日以内に返信
-
bug needs-acceptance wg/router-models-inference-runtime
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
vllm-project/semantic-router#5891 ·
メンテナーはふだん 1 日以内に返信
-
bug needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信