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