本文假设你已有一个运行中的 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(匹配)
当你决定接一个订单,系统会:
-
连接买家的 Fiber 节点(先尝试 DHT 发现,失败则用 Fiber Address 直连)
-
创建一条新的 Fiber 通道(合约要求
通道区块 > 订单区块,所以不能复用已有通道)。通道容量 =channel_capacity + 100 CKB(100 CKB 预留用于覆盖通道 Cell 自身的占用字节) -
在链上创建 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) -
匹配状态 — 节点连接 ✓ + 通道可用 ✓ = 可匹配
③ 操作列,按顺序执行:
-
连接节点 — DHT 自动发现目标节点,失败则用 Fiber Address 直连
-
创建通道 — 开通新通道(通道容量 = 订单所需 + 100 CKB;合约要求通道必须在订单之后创建)
-
执行匹配 — 选择签名地址,提交链上交易,等待链上确认
匹配记录
① 筛选标签:顶部可按状态过滤——进行中 / 已耗尽。
② 匹配列表,每行对应一个 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:自动匹配 / 租金提取 / 网络。
② 自动化配置:
-
选择签名地址(HD 子地址)
-
输入钱包密码
-
保存,立即生效无需重启
③ 自动化控制台(可展开):实时显示调度器运行记录——周期耗时、匹配数、提取金额、事件日志。
④ 运行时配置:费率、最低提取门槛、自动匹配参数(最小容量、最大托管区块、间隔)、缓存间隔均可在线修改。




