当我们在说账户模型的时候,我们在说什么
Xuejie Xiao
Nervos Core Team在区块链世界中,人们普遍认为,在可用性方面,帐户模型比 UTXO 模型更有优势,我一直在努力弥合区块链中的 UTXO 模型和帐户模型之间的差异。
在区块链世界中,人们普遍认为,在可用性方面,帐户模型比 UTXO 模型更有优势,我一直在努力弥合区块链中的 UTXO 模型和帐户模型之间的差异。
之前的文章介绍过,可以使用纯 JavaScript 构建 CKB 脚本。但是,如果你以前尝试过这种方法,你会注意到一个问题,即基于 JavaScript 的脚本比原生版本消耗更多的周期。虽然这在实验中不是什么问题,但在生产环境中却是非常现实的:更多的周期可以自然地反映在更多的交易费用上。很明显,以下的解决方案可以用来解决这个问题:
我们将实现 balance checker(余额检查器)AST,然后用 Animagus 启动它,这样就可以通过调用 RPC 请求来和 Animagus 进行交互了。
在先前的文章中,我已经向你展示过在 CKB 上运行 WASM 程序,但需要注意的是,WASM 程序的性能可能并不那么出色。我也提到了,有一个潜在的解决方案可以解决这个问题。就在今天,我们发布了一个新项目,这个项目可以用来生成高效的 WASM 程序!让我们赶紧来看看它具体是如何操作的。
我们相信 Nervos CKB 在新一代的区块链中具有无限的潜能。但同时也需要独特的开发工具才能将 CKB 的潜能充分激发。 Animagus 就是在这种情况下应运而生。
「animagus」的名字来自《哈利·波特》,如果巫师具有将自己变成动物再变回来的本领,就会被称为「animagus」,不同的巫师可以变的动物也有所不同。我个人认为为我们现在的这个项目取名 animagus(阿尼玛格斯)是很适合的,希望大家看完本文后也会有这样的感觉。
我在之前介绍过 duktape,展示了如何在Nervos CKB上运行 JavaScript代码。但到目前为止,我所展示的代码都是非常简单逻辑的单个代码段。如果我们要解析CKB 数据结构呢?如果我们需要在脚本中引入外部的库呢?
你可能注意到 CKB 的脚本结构中还有一个 hash_type 的字段。之前为了简化,我们一直忽略它,直到现在。本文将介绍一下 hash_type 字段,以及它所能带来的独特能力。
因为事实上 CKB 脚本工作的层级要比其他智能合约低很多,因此 CKB 的调试过程就显得相当神秘。在本文中,我们将展示如何调试 CKB 脚本。你可以发现,其实调试 CKB 脚本和你日常调试程序并没有太大区别。
自从我们选择使用 RISC-V 构建 CKB VM(Virtual Machine 虚拟机)以来,我们几乎每一天都会被问及这样一个问题:为什么不像别人那样在 WebAssembly 上构建你的虚拟机呢?
CKB 的 cell 模型和 VM 支持许多新的用例。然而,这并不意味着我们需要抛弃现有的。如今区块链中的一个常见用途是 token 发行者发布具有特殊目的/意义的新 token 。在以太坊中,我们称之为 ERC20 token ,让我们看看我们如何在 CKB 中构建类似的概念。为了与 ERC20 区分,在 CKB 中的 token 我们称之为 user defined token,简称UDT。
上一篇我们介绍了当前 CKB 的验证模型。这一篇会更加有趣一点,我们要向大家展示如何将脚本代码真正部署到 CKB 网络上去。我希望在你看完本文后,你可以有能力自行去探索 CKB 的世界并按照你自己的意愿去编写新的脚本代码。
上一篇我们介绍了当前 CKB 的验证模型。这一篇会更加有趣一点,我们要向大家展示如何将脚本代码真正部署到 CKB 网络上去。我希望在你看完本文后,你可以有能力自行去探索 CKB 的世界并按照你自己的意愿去编写新的脚本代码。
截至目前,CKB 中的 Cell 验证模型或多或少已经趋于稳定,因此我将在这里开始写一系列文章来介绍 CKB 脚本编程。我的目标是补充在阅读白皮书后编写 CKB 脚本所需的所有缺失的细节实现,这样你就可以开始探索 CKB 呈现的这个美丽的仙境。