http://www.7klian.com

从Git上看CKB的管理和演进

[2]:https://talk.nervos.org/t/first-class-asset/405

原文作者: Jan Xie,Nervos 中文社区

Git 存储库也可以有 Fork。人们在差异的分支上事情,可是哪个分支是「正确的」是由存储库维护者抉择的,而不是通过共鸣。Git 是一个没有共鸣的漫衍式系统,依赖于非凡的点对点通信(如 ssh 或电子邮件)举办数据互换。

实际上,我们甚至可以有意地操作这一点来实现代码的「先利用后陈设」。假设您想利用一个新的自界说锁定剧本(智能合约)来掩护你的 cell。与凡是的先陈设后利用流程差异,,您可以在不举办陈设的环境下利用它。只需要将新的锁定剧本(代码实现)的代码哈希放入 cell lock(代码利用)中,那么这些 cell 就会被新的 lock 掩护,且当即生效。

[3]:https://github.com/nervosnetwork/ckb-system-scripts/blob/master/c/secp256k1_helper.h#L40-L66

原文标题:《CKB,版本节制与演进》

正如我们在 定位白皮书 中所说的那样,固然今朝有许多有趣的发起,但我们还没有看到一个切实可行的管理模式。一旦我们找到了符合的管理模式,我们就可以用「管理锁」来取代不行解锁的锁,让系统智能合约在征得社区同意的环境下举办进级,好比投票的功效。在此之前,我们会临时僵持不完善的链下管理模式,但 CKB 管理和演进的脊梁已经存在。

[7]:https://medium.com/hackernoon/what-caused-the-latest-100-million-ethereum-bug-and-a-detection-tool-for-similar-bugs-7b80f8ab7279
这不是一个区块链

为了进级区块链,人们必需在大大都节点上分发和陈设新的软件版本(软 / 硬分叉),这需要大量的协调事情。对付 CKB 来说,生意业务签名验证可以和其它智能合约一样,通过在链上陈设新版原来举办进级。这让 CKB 具备了 Tezos [10] 提出的恒久可进级性。

因为 cell 是可引用的存储单位,所以在 CKB 上重用代码 / 数据很容易。假设在 cell 0xbeef#1(生意业务 0xbeef 的输出 1)中存储了一些共享代码 / 数据,要重用它,首先需要加载 cell 0xbeef#1 作为生意业务依赖项(cell_deps),然后利用 ckb_load_cell_data 系统挪用从它哪里读取数据,如默认的锁定剧本所示。一旦将 cell 0xbeef#1 中的数据加载到 VM 内存中,那么就可以按照您的需要 3,将其视为代码或数据利用。通过这种方法,CKB 就雷同于一个代码和数据共享库,供运行在上面的智能合约利用。假如我们能通过组合现有的安详乐高积木来构建一个智能合约 4,是不是很酷?而不需要从 GitHub 上的某个处所复制代码,而且一次又一次地陈设沟通的代码,这既挥霍了时间,也挥霍了链上的空间。一项对合约 [5][6] 的阐明中表白,95%~99% 的合约都是反复的。

[9]:https://github.com/nervosnetwork/ckb-system-scripts/blob/master/c/dao.c

Git 和区块链之间有着相似之处,这也意味着我们应该更审慎地将 Git 的想法融入到区块链中,而不该该将彼此斗嘴的设计选择引入到区块链中,这样区块链或智能合约开拓者就可以享受到 Git 的一些已被证明的利益。这就是 CKB 内涵的真实样子:一个拥有真正的 p2p 网络、全球共鸣和加强 blob 的独一大型 Git 库,由一群匿名者不绝举办更新。

进化的 CKB

[11]:https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0022-transaction-structure/0022-transaction-structure.md#upgradable-script

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读