# Fiber Network Node for Service Provider ## 需求 JoyId 他们希望有另外一种模式: 节点不持有任何私钥, 每个用户自己持有私钥, 每开通一个通道对应到用户的一个私钥, 在节点需要签名的时候能够将这个签名请求转发给外部。 然后他们可以将这个签名请求通过某种方式唤起浏览器/app (这个是他们来处理) 进行签名, 最后将签名结果回掉给 fiber 节点。 ## 设计方向 ### 1. 单用户节点 + 容器编排 - Fiber Network Node 增加 Wallet 抽象层,允许通过 RPC 的方式在外部异步完成签名。 - 为每个用户运行单独的 Fiber Network Node,通过容器编排管理用户。容器编排暴露 RPC 用于动态增加和减少用户。 优点 - Fiber Network Node 改动小 缺点 - 资源占用高 - 运维难度高 - 用户有完整的节点可以绕过FSP (Fiber Service Provider,如 JoyID) 完成交易,FSP 缺少经济激励 ### 2. 多用户节点 - Fiber Network Node 增加多用户模式,即一个进程可以运行多个节点。 - 增加 RPC 动态增加和减少用户。 - Fiber Network Node 增加 Wallet 抽象层,允许通过 RPC 的方式在外部异步完成签名。 缺点 - Fiber Network Node 改动较大 - 资源占用较高 - 单台机器能支持的用户数受限于端口数量 - 用户有完整的节点可以绕过FSP (Fiber Service Provider,如 JoyID) 完成交易,FSP 缺少经济激励 ### 3. 单用户节点 + 影子节点 - Fiber Network Node 运行 FSP 的节点,以下称为 FSP 节点。 - Fiber Network Node 支持注册影子节点,每个用户对应一个影子节点。影子节点的签名支持通过 RPC 的方式在外部异步完成。 - 影子节点不单独提供对外的 P2P 和 RPC 服务,交易发送必须使用 FSP 节点作为第一跳,接收使用 FSP 节点作为倒数第二跳。收款时必须将 FSP 节点作为路径提示提供给付款人构建交易路径。 优点 - 资源占用最少 - 单台机器能支持的用户数最高 - 用户必须通过 FSP 交易,能够激励 FSP 提供服务。当前方案 1/2 也能做类似限制,不过也等同于要额外增加方案 3 中的大部份处理逻辑。 - 影子节点的功能对于负载均衡友好[^2] [^2]: [Introducing Phantom Node Payments](https://lightningdevkit.org/blog/introducing-phantom-node-payments/) 缺点 - Fiber Network Node 改动中等 - FSP 需要在节点中管理自己的资产交提供充足的流动性,因为所有用户都会经过和 FSP 的 Channels。