基于 Keyper Scatter 的 dApp 开发
XuePing Yang
Nervos Core Team为 CKB 开发 dApp 是一件非常有意思的任务,遗憾的是目前还没有在 CKB 上开发 dApp 的最佳实践,xuejie 的 Animagus 是 CKB dApp 的开发框架,本文尝试用另外一种原始的手工组装交易的方式介绍 CKB dApp 与基于 Keyper 规范的钱包的交互模式。
为 CKB 开发 dApp 是一件非常有意思的任务,遗憾的是目前还没有在 CKB 上开发 dApp 的最佳实践,xuejie 的 Animagus 是 CKB dApp 的开发框架,本文尝试用另外一种原始的手工组装交易的方式介绍 CKB dApp 与基于 Keyper 规范的钱包的交互模式。
由于 Nervos CKB 的 Cell 模式是类似 UTXO 的模型,那么在组装交易时需要明确 inputs 的输入,这样不管是开发钱包、dApp server 还是其他任何需要和 CKB 交互的应用场景,都需要一个查询 live cells 的功能。尽管 CKB RPC 已经提供了基于 LockHash 查询 live cells 的功能,这个这个功能是通用型的功能,并且只能根据 LockHash 查询,在很多 dApp 场景中无法适用。
目前正是 CKB 主链 dApp 开发的起始阶段,很多应用都需要灵活的查询 live cells,例如 LockHash、TypeHash、CodeHash 等等查询 Cells,基于这个场景,我开发了ckb-cache-js。考虑到很多 dApp 的开发技术栈是 JavaScript 或者 TypeScript,正如 ckb-cache-js 的命名一样,这个 cache 库是基于 TypeScript 语言开发的。