[Fiber] Opticrum 流动性提供者操作手册

本文假设你已有一个运行中的 Fiber 节点——
如果没有,请先参照 Fiber Network 官方文档 搭好节点,记下 fiber_rpc_url(默认 http://localhost:8227),再继续往下走。

什么是 Opticrum

Opticrum 是运行在 CKB(Nervos Network)上的去中心化流动性市场。它连接两类参与者:

  • 买家(Order 发布者):需要 Fiber 通道流动性的人。他们在链上发布 Order,锁定资金并声明 “我需要一个容量为 X 的通道,每区块付 Y shannons 作为租金”

  • 卖家(流动性提供者 / LP,即你):提供 Fiber 通道容量的人。你用你的 Fiber 节点与买家建立通道,将通道与 Order 匹配,然后持续收取线性释放的租金

你的角色是 Seller——你拿 CKB 资金去匹配别人发布的订单,赚取每区块线性释放的租金收益。目前只涉及到 CKB 的流动性匹配,xUDT 后续会支持上。

术语速查表

以下术语按在手册中出现的频率排序。

术语 解释
Order(订单) 买家在链上发布的 Cell,包含:需求通道容量(channel_capacity)、每区块租金(shannons_per_block)、买家 Fiber 公钥。买家创建 Order 时即锁定一笔 CKB 作为租金储备
Match(匹配) 你将通道与 Order 配对后在链上生成的 Cell。Match 引用 Order 的条款和你提供的通道,租金从此开始按区块累积
Rent(租金) 匹配期间按区块线性释放的收益。公式:可提取租金 = shannons_per_block × (当前区块 - 上次提取区块)
shannons_per_block 每区块租金速率,由买家在 Order 中设定。这是决定你收益的核心参数
年化收益率 (APY) 控制台根据 (shannons_per_block × 2,629,800) ÷ channel_capacity × 100% 自动换算的年化百分比
提取 (Extract) 将已释放的租金从 Match Cell 提取到你的钱包。每提取一次,last_extraction_block 就更新为最新区块
销毁 (Destroy) Match 租金耗尽后,消费 Match Cell 将剩余的 CKB 退回到你的钱包。销毁后 Match Cell 从链上消失
托管区块 (Escrow Blocks) 资金锁定的区块总数。与租金储备和 shannons_per_block 直接相关

核心概念

整个 Opticrum 的工作流围绕三个链上概念展开。

Order(订单)

买家在 CKB 上创建 Order Cell,锁入资金并设定条件。作为 LP,你关注两个关键数字:

  • channel_capacity——买家需要的通道容量(也就是你要提供的 CKB 数量)

  • shannons_per_block——每区块付多少 shannons 租金(换算成年化收益率来比较不同订单的吸引力)

Order Cell 会预先锁定额外的 68 CKB,以覆盖后续转换为 Match Cell 时多出来的 Capacity 需求。

Match(匹配)

当你决定接一个订单,系统会:

  1. 连接买家的 Fiber 节点(先尝试 DHT 发现,失败则用 Fiber Address 直连)

  2. 创建一条的 Fiber 通道(合约要求 通道区块 > 订单区块,所以不能复用已有通道)。通道容量 = channel_capacity + 100 CKB(100 CKB 预留用于覆盖通道 Cell 自身的占用字节)

  3. 在链上创建 Match Cell,将通道与 Order 绑定

从此 Match Cell 的 Capacity 按 shannons_per_block 速率线性消耗——这就是你的租金收入。

Rent(租金)与 Match 生命周期

Match Cell 经历三种状态:

状态 说明 你能做什么
进行中 (Live) 租金持续累积,Capacity 不断减少 提取租金
已耗尽 (Exhausted) Capacity 减少到能允许的最小值 销毁 Match,回收剩余 Capacity
已销毁 (Destroyed) Match Cell 已在链上被消费 仅能看到本地历史记录

提取租金:你可以随时提取从上次提取区块以来线性累积的租金。系统可设置最低提取门槛低,低于门槛时提取按钮将置灰——防止粉尘交易浪费手续费。

销毁:Match 耗尽后,销毁操作消耗 Match Cell,把剩余的 CKB 退回到你的钱包(这部分是买家额外付出的)。

安装

前置要求

  • Rust 1.78+

  • Node.js 20+

克隆 & 编译

$ git clone <https://github.com/Opticrum/daemon-server>
$ cd fiber/rust-server
$ cargo build
$ cd web-console && pnpm install && pnpm run build && cd ..

配置

编辑仓库自带的 config.toml,确认三个地址指向你的环境:

ckb_rpc_url = "<https://testnet.ckb.dev>"
ckb_indexer_url = "<https://testnet.ckb.dev/indexer>"
fiber_rpc_url = "<http://localhost:8227>"

其余参数保持默认即可,后续可在控制台「系统设置」中实时修改。

启动

$ cargo run

INFO opticrum_server: Chain connected tip=15234000 network=testnet
INFO opticrum_server: Opticrum Server starting version=0.1.0 port=8080
INFO opticrum_server: Server ready address=http://0.0.0.0:8080/admin
INFO opticrum_server: Chain indexer started
INFO opticrum_server: Rent extractor started

打开 http://localhost:8080/admin

控制台概览

打开 http://localhost:8080/admin,左侧侧边栏分四组:

数据中心

  • 运营概览

订单数据

  • 链上订单

  • 匹配记录

资产管理

  • 钱包管理

  • Fiber 通道管理

系统设置

  • 系统设置

LP 核心工作流集中在订单和匹配两个页面。

钱包管理

如截图所示,页面分为上下两部分——

① 总资产卡片:展示 HD 钱包下所有地址的 CKB 余额合计。

② 地址列表:每行显示一个派生地址的 CKB 地址和余额。默认 5 个,点「派生更多」每次加 3 个。点「刷新」重新扫描链上数据。

③ 操作栏

  • 创建 HD 钱包——首次使用时点击,设置标签和钱包密码,系统生成 12 词 BIP39 助记词并加密存入 data/keystore.json

  • 显示助记词——输入钱包密码后查看助记词。助记词只创建时展示一次,务必备份,丢失即永久丢失资金

钱包密码用于加密 keystore、解锁签名、查看助记词,创建后会自动解锁钱包;锁定状态下能看地址但无法签名。

链上订单

① 扫描按钮:点击「扫描链上」拉取所有活跃 Order Cell,结果以表格形式展示。

② 订单列表,关键列:

  • 交易哈希 — Order Outpoint 的 tx_hash,点击可跳转区块链浏览器

  • 容量 / 年化收益率 — 买家要求的通道容量及提供的租金 APY(shannons_per_block × 2,629,800 ÷ channel_capacity

  • 匹配状态 — 节点连接 ✓ + 通道可用 ✓ = 可匹配

③ 操作列,按顺序执行:

  1. 连接节点 — DHT 自动发现目标节点,失败则用 Fiber Address 直连

  2. 创建通道 — 开通新通道(通道容量 = 订单所需 + 100 CKB;合约要求通道必须在订单之后创建)

  3. 执行匹配 — 选择签名地址,提交链上交易,等待链上确认

匹配记录

① 筛选标签:顶部可按状态过滤——进行中 / 已耗尽。

② 匹配列表,每行对应一个 Match Cell:

  • 进行中 (Live) — 租金按区块累积,操作列显示「提取」

  • 已耗尽 (Exhausted) — capacity == 0,操作列显示「销毁」

③ 提取操作:可提取金额 = shannons_per_block × (当前区块 - 上次提取区块)。达到最低门槛时按钮为蓝色可点击,低于门槛时置灰。

④ 展开箭头:点击行展开,显示该 Match 的提取历史——每次提取的时间、金额、区块高度、交易哈希(从链上交易图还原)。

⑤ 销毁操作:Match 耗尽后点击销毁,所有 Capacity 都将转移至钱包。

Fiber 通道管理

① 节点信息卡(可折叠):显示 Fiber 节点公钥、版本、监听地址、通道数、连接状态。

② 通道列表,关键列:

  • 通道 ID / 对手方 Fiber Key — 通道及对手方标识

  • 容量 — 显示 Fiber 的通道容量

  • 状态NegotiatingFunding / ChannelReady / ShuttingDown / Closed

  • 匹配 — 已匹配 / 无 / 加载中。

③ 操作

  • ChannelReady 时可协作关闭通道,需对手方配合

  • Closed 后可删除本地记录

系统设置

① 三个子 Tab:自动匹配 / 租金提取 / 网络。

② 自动化配置

  1. 选择签名地址(HD 子地址)

  2. 输入钱包密码

  3. 保存,立即生效无需重启

③ 自动化控制台(可展开):实时显示调度器运行记录——周期耗时、匹配数、提取金额、事件日志。

④ 运行时配置:费率、最低提取门槛、自动匹配参数(最小容量、最大托管区块、间隔)、缓存间隔均可在线修改。

2 Likes