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:
streamomitted/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 をそのまま搬送)
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