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 版本后,再补上使用案例。