# BTC HTLC Cross-Chain PoC ## Metadata **Status**:: #x **Zettel**:: #zettel/fleeting **Created**:: [[2024-03-18]] **Parent**:: [[Fiber Cross-Chain Protocol Design]] **Topic**:: [[♯ CKB Fiber]] ## Objective 角色: Bob, Charlie, Ingrid 目标: Charlie 通过 Ingrid 向 Bob 收款 注意在两边都是 Bitcoin Payment Network 的情况下,“Charlie 通过 Ingrid 向 Bob 收款” 和 “Charlie 通过 Ingrid 和 Bob 付款” 对于 Ingrid 来说没有区别,只是方向相反。 ## User Story 1. Charlie 生成 Invoice 1 2. 通过 Ingrid 的 REST API 提交 Invoice 1 生成代理收款的 Invoice 2 3. Bob 向 Invoice 2 付款 4. 检查最终完成了 Bob -> Ingrid -> Charlie 的支付 ## Solution 基于 lnd 实现 Ingrid 的功能。测试使用 [Polar](https://lightningpolar.com/)。Bob 和 Charlie 使用官方的 lnd,Ingrid 使用修改过的 lnd。 [[Setup Lnd Development Environment]] Ingrid 需要实现的功能: 1. 新增 REST API 生成代理收款的 Invoice。需要绕过 preimage 的检查,因为 Ingrid 在创建 Invoice 的时候并不知道 preimage。 2. 新增收款的处理逻辑,如果收款方是自己并且有关联的 Invoice,需要通过向关联的 Invoice 完成支付获得 preimage 。