regtest devnet(bitcoind + 2x lnd)手動 runbook
このドキュメントは、ローカルで regtest devnet(Bitcoin Core + 2 つのlnd ノード)を動かすための手順です。
go-lcpd の Lightning 連携(カスタムメッセージ、invoice binding、支払い)を試すことができます。
この devnet は ./scripts/devnet で管理されます。
状態/ログは ./.data/devnet/ 配下に保存されます(gitignored)。
手順が失敗したら、./.data/devnet/ 配下のログ/状態を確認してください。
必要に応じて LCPD_LOG_LEVEL=debug で再実行してください。
このドキュメントでは、2 つの役割で最小の Quote → Pay → Result を実行します:
- Alice: Provider。Provider モードは Alice のみ有効化します。外部 API を避けるため
LCPD_BACKEND=deterministicを使います。 - Bob: Requester。
前提
- Go 1.24.4+
bitcoind/bitcoin-cliがPATHにあることlnd/lncliがPATHにあることjqがPATHにあること(この手順で使用します)
go-lcpd の CLI ツールをビルド(初回のみ)
バイナリをgo-lcpd/bin/ にインストールします:
起動 / 停止
起動:ウォレット初期化 / アンロック(初回)
lnd はウォレット未初期化でも起動できますが、RPC(支払い/チャネル/invoice)を使う前にウォレット作成が必要です。
初回(対話的):
オンチェーン資金投入(Alice を miner にする)
- Alice の受け取りアドレスを作成:
- regtest でブロックを掘って Alice に資金を付与(coinbase maturity のため 101 ブロック掘る):
ノード接続 / チャネル開設 / 支払い(Bob が Alice に支払える状態にする)
1) Bob に接続
2) Alice → Bob へチャネルを開く(Bob が支払えるように push)
3) Bob が Alice の invoice を支払う(接続性/ルート確認)
go-lcpd を試す(カスタムメッセージ / Quote → Pay → Result)
2 つのlnd ノードがピアとして接続できたら、両側で go-lcpd を起動します。
これにより BOLT #1 のカスタムメッセージ上で lcp_manifest が交換されます。
ListLCPPeers で観測できます。
この手順では Alice を Provider として起動し、外部依存なしで lcp_result を返します。
LCPD_BACKEND=deterministic を使います。
Provider 設定は YAML 優先(LCPD_PROVIDER_CONFIG_PATH)です。
0) Provider YAML 設定を作成
例:go-lcpd/provider.devnet.yaml
1) Alice で go-lcpd を起動(Provider / 別ターミナル)
2) Bob で go-lcpd を起動(Requester のみ / 別ターミナル)
3) ListLCPPeers を呼ぶ(manifest 交換の確認)
peers[0].remoteManifest.supportedTasks[].openaiChatCompletionsV1.model に gpt-5.2 が見えれば、Provider が model を広告できています。
4) Bob から Alice にジョブを 1 つ送る(Quote → Pay → Result)
ログ / データの場所
- state/log:
./.data/devnet/ - bitcoind log:
./.data/devnet/logs/bitcoind.log - lnd log:
./.data/devnet/logs/lnd-alice.log/./.data/devnet/logs/lnd-bob.log