关于 `ccc/fiber-sdk` 的一些想法和进展

Fiber 目前是 CKB 上最重要的基础设施之一,也是项目方倾注了非常多心血的项目,在 Fiber 持续 Build 的同时,我们也需要积极思考如何降低它的使用门槛,让更多开发者能轻松的用起来。

我看到曾经的 CKB 喜欢蒙头搞基建开发,全然不顾开发者的使用体验,这导致了巨高无比的 CKB-VM 合约编程门槛和令人望而却步的钱包集成门槛,不过这一切由于 CCC 的到来缓和了很多,所以这一次关于 Fiber 项目的推进,我们也要从历史经验中习得教训,对它的开发使用体验要格外关注,避免重蹈覆辙。

目前在 CCC 里开发了第一版本的 ccc/fiber-sdk,思路很简单,就是封装 CCC 里的 ccc.RequesterJsonRpc 组件把所有重要的 RPC 接口全部集合到一个 SDK 下,然后把 Fiber 的 Payment、Invoice、Channel、Peer 等相关接口的参数全部重新定义一份在代码里,不过这一步非常繁琐,全是体力活,我曾尝试复用 fiber-js 中的参数定义,但风格不匹配且会导致 Lint 问题,最终放弃使用转而完全手写。

说到 fiber-js,我曾突发奇想用 Wasm 版本尝试在 Node.js 端运行一个 Fiber 节点,但和核心团队成员交流后得知,Fiber Wasm 版本没有 Inbound 功能和 WatchTower 功能,无法被网络上的其他节点检测并主动连接,只能是 Wasm 版本的 Fiber 主动去连其他 Rust 版本的 Fiber,这会导致在 Node.js 端运行的 Fiber 无法被网络感知到,不知道是否有必要继续往这个方向做,暂时先只用在 项目的 Testcase 中,免去了需要在外部额外启动一个 Fiber 才能跑测试用例的尴尬情况。

最新的 PR 在这里:feat: add fiber-sdk

待上传 Canary 版本后,再补上使用案例。

8 Likes

fiber-sdk 的 Canary 版本已经部署完毕,可以通过如下命令进行安装和体验:

$ pnpm add @ckb-ccc/[email protected]

我将 Fiber 文档网站上的 space-invador 游戏单独剥离了出来并应用了最新的 fiber-sdk 来实现其 Fiber 模块部分的功能,然后还解决了项目原本存在的 Lint 问题,目前游戏单独放入一个 Repo 中,不再是文档项目中的一个子项目,方便大家单独下载和体验。

针对游戏的使用步骤,我在 README.md 中做了更为详细的描述,可通过如下命令下载游戏:

$ git clone https://github.com/ashuralyk/fiber-game-example

参考 README.md 的描述,体验游戏的具体步骤如下:

  1. 准备两个 Fiber 节点,确定两个节点的 RPC 端口分别是 8227 和 8237
  2. 将两个 Fiber 节点的 node_id 信息写入到游戏的 fiber/config.ts 文件中
  3. 启动两个 Fiber 节点并完成 connect_peeropen_channel 操作
  4. 开启游戏并按 F12 打开 Console 查看

游戏录屏:

Screen Recording 2026-03-31 at 10

5 Likes

赞,是否有兴趣提个 PR 把这个 repo 替换文档站原本的游戏例子、同时更新下文档站对应的那篇教程相关的内容?这样用户从文档站上想去学着做这个例子的时候,能借助这个 sdk 省去比较多的事情?

4 Likes

这是个好主意,我会在我的后续工作中进行推进

3 Likes

麻烦看一下这个 PR 是否符合修改?

1 Like

thx!仓库maintainer 回复了一些想法,可以看下 Update simple-game to be the version of using `fiber-sdk` by ashuralyk · Pull Request #58 · nervosnetwork/fiber-docs · GitHub

1 Like