Test lane: fee-charging signet mint on CLN (inr2) + rune-authorized driver

Đang mở
#415 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
25/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
go

Hướng nghiên cứu

Start by reading the cloud-lab/QEMU suite and its existing mint-fees profile from #413, then inspect SECURITY.md and the cdk-mintd 0.17.6 CLN configuration referenced here (src/env_vars/cln.rs). First resolve whether inr2 exposes a co-locatable lightning-rpc socket or only clnrest; that decision determines the mint integration. Done means a signet profile tests fee refusal, net-of-fee credit, settled melts, reseller fees, rune-restricted access, and a keyset fee change across rotation.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Test-lane request: fee-charging signet mint backed by our CLN (inr2.cashu.exchange), rune-authorized test driver — the "real world" tier of the fee-mirroring test programme.

Why: real-world mints charge input fees; our signet mint does not. Verified today: testnut.cashu.exchange is a nutshell FakeWallet mint whose keysets all report input_fee_ppk: 0 — every fee behavior #409/#413 hardened (below-fee refusal, net-of-fee credit, keyset resolution) is currently invisible on the fleet that most resembles production. The lab's mint-fees (#413) covers the hermetic tier; what's missing is the signet tier where settlement is real (melt → Lightning invoice → payout lands) and keyset IDs/rotation shapes come from a real operator setup.

Proposed architecture (two components):

  1. mint-signet-fees — cdk-mintd 0.17.6 with the CLN backend (env vars verified against the 0.17.6 source, src/env_vars/cln.rs): CDK_MINTD_LN_BACKEND=cln, CDK_MINTD_CLN_RPC_PATH=<lightning-rpc socket>, CDK_MINTD_CLN_FEE_PERCENT, CDK_MINTD_CLN_RESERVE_FEE_MIN, plus CDK_MINTD_INPUT_FEE_PPK=100 to mirror coinos. cdk's CLN backend speaks the raw UNIX socket, not clnrest — so the wiring depends on what inr2 exposes (see decision below).
  2. Rune-authorized test driver — the test runner gets a CLN rune (restricted: invoice, listpays, listfunds) and drives/asserts the settlement loop directly: melt with fees → invoice created via rune → signet payment → payout observed. Runes also gate the driver's access without handing it the node.

Decision needed (infra, @Amperstrand): does inr2 expose lightning-rpc co-locatable (mount/socket-forward) or only clnrest (HTTPS+rune)?

  • (a) socket available → run mint-signet-fees co-located with (or SSH-forwarded to) the socket; no rune needed for the mint itself; driver uses clnrest+rune.
  • (b) clnrest only → a small socket↔clnrest bridge is required for cdk-mintd, or we contribute/reuse an existing one; alternatively evaluate cdk's grpc-processor/LND backends if the node multiplexes those.

Acceptance criteria:

  • A signet mint at a stable host with input_fee_ppk=100, settling through inr2's CLN.
  • Cloud-lab/QEMU suite extended with a signet profile: below-fee refusal + net-of-fee credit + melt-with-fee settlement (invoice paid on signet, payout received) + reseller chain with asymmetric fees (free upstream / fee downstream).
  • Test driver authenticated by a restricted rune; rune stored per the SECURITY.md secret rules (never committed).
  • Keyset rotation on the signet mint exercised at least once (fee change across rotation) to cover mintKeysetFees' inactive-keyset branch in production shape.

Hermetic predecessor landed meanwhile: #413 (mint-fees in cloud-lab, 4 e2e tests green). A keyset-rotation variant using cdk-mintd's CDK_MINTD_FAKE_WALLET_KEYSET_ROTATIONS (env verified in 0.17.6 source) is being added on top of it.

Refs: #409 (swap-fee handling), #413 (hermetic fee mint), #339 (v0.6.0), #403 (the fund-safety family that started this).

Ngôn ngữ chính
Go
Star
12
Fork
14
Merge trung bình
3 ngày 22 giờ
Pull request đã merge (30 ngày)
262

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của OpenTollGate/tollgate-module-basic-go

Tất cả issue của OpenTollGate/tollgate-module-basic-go

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.