メインコンテンツへスキップLCP v0.1 仕様(日本語概要)
このページは LCP v0.1 の日本語概要です。
正規(normative)な仕様は英語版の docs/protocol/protocol.md を参照してください(このリポジトリでは英語版が SSOT です)。
LCP(Lightning Compute Protocol)は、Lightning の既存トランスポート(BOLT #1 カスタムメッセージ)上で動作するアプリケーション層プロトコルです。
Quote → Pay → Result の流れで、計算ジョブに対する支払いと結果受け渡しを行います。
- BOLT(Lightning 仕様)を変更しません
- 直接の Lightning ピア接続(Requester と Provider の peering)が必要です
- 支払い(BOLT11 invoice)とジョブ条件(Terms)を
terms_hash でバインドし、invoice swapping を防ぎます
ゴール(抜粋)
LCP v0.1 は以下を定義します:
- ジョブ交渉のための最小 P2P メッセージセット
- 支払いとジョブ条件のバインディング(invoice swapping 対策)
- 結果を 1 メッセージで返す仕組み
- アプリケーション層の idempotency / リプレイ耐性
- Provider が受理するタスクテンプレート(
task_kind + params)を接続スコープで宣言する方法
基本フロー(概念)
- Requester → Provider:
lcp_quote_request
- Provider → Requester:
lcp_quote_response(price_msat / terms_hash / BOLT11 invoice 等)
- Requester が invoice を支払う(
description_hash == terms_hash 等を検証)
- Provider → Requester:
lcp_result
メッセージ種別(v0.1)
LCP v0.1 は BOLT #1 の odd type のカスタムメッセージを使います(unknown odd は ignore / unknown even は fatal のルールに準拠)。
- 42081:
lcp_manifest
- 42083:
lcp_quote_request
- 42085:
lcp_quote_response
- 42087:
lcp_result
- 42095:
lcp_cancel
- 42097:
lcp_error
TLV と拡張性(要点)
各メッセージの payload は TLV stream(bigsize(type) → bigsize(length) → value)です。
- TLV は type 昇順にソートします
- 同一 type の重複はしません
- unknown TLV は無視します(forward compatibility)
LCP v0.2 の task_kind(概要)
LCP v0.2 では以下の task_kind を定義し、OpenAI 互換 API の HTTP request/response body bytes(JSON / SSE)を LCP の input/result stream の decoded bytes としてそのまま運びます(中身は解釈しません)。
task_kind="openai.chat_completions.v1"(POST /v1/chat/completions)
task_kind="openai.responses.v1"(POST /v1/responses)
- input stream:
content_type="application/json; charset=utf-8", content_encoding="identity"
params は TLV stream で、少なくとも model を含みます
- result stream:
stream omitted/false(non-streaming): content_type="application/json; charset=utf-8", content_encoding="identity"
stream:true(streaming): content_type="text/event-stream; charset=utf-8", content_encoding="identity"(SSE bytes をそのまま搬送)
詳細・正規(normative)な仕様は英語版 docs/protocol/protocol.md の §5.2.1 を参照してください。
- LCP 英語仕様(SSOT):
docs/protocol/protocol.md
- Lightning BOLT #1 messaging:
https://github.com/lightning/bolts/blob/master/01-messaging.md