http://www.7klian.com

区块链如何担保生意业务安详?硬核详解唯链「强制生意业务依赖性」成果

我在代码中硬编码了两个账户地点,别离叫做 acc1、acc2 以及 acc1 的私钥,而且用了 测试网水龙头 来获取足够的数字资产来运行这段演示代码。

小结

在这篇文章中,我叙述并演示了唯链雷神区块链一个特有的成果,这个成果利用户可以或许成立一个强制性的生意业务依赖干系。详细来说,假如一笔生意业务的执行依赖另一笔生意业务,只有在被依赖的生意业务呈此刻账本上且没有被取消的环境下,这笔生意业务才会被接管并处理惩罚。

这是「关于唯链雷神区块链,你大概还不知道那些事儿」系列的第二篇,第一篇拜见《区块链如何反抗重放进攻?硬核详解唯链 TXID 方案》。本篇唯链首席科学家 Peter Zhou 叙述并演示了唯链雷神区块链特有的「强制生意业务依赖性」成果,指的是假如一笔生意业务的执行依赖另一笔生意业务,只有在被依赖的生意业务呈此刻账本上且没有被取消的环境下,这笔生意业务才会被接管并处理惩罚。

生意业务乐成的条件有两个:

提倡生意业务 TX2,从 acc1 转 1 VTHO 到 acc2。不提供足够的 gas 使得这笔生意业务被取消;

作者:Peter Zhou,唯链首席科学家,英国南安普顿大学计较机博士,于 2017 年插手唯链,主要认真唯链雷神区块链的科研研发及常识产权掩护等事情

这个演示做了什么?

这个演示措施做了下列几件事:

第二个要求尤其重要,因为看到一笔生意业务被记录在账本里并不能担保它已经被乐成执行了。一笔生意业务可以在被记录的同时状态显示为「被取消」,这意味着系统其实没有执行生意业务的内容。在实际操纵中,一笔生意业务大概因为生意业务提倡者提供的 gas 不敷而被取消。另外,生意业务还大概被挪用的智能合约函数所取消。例如说,假如生意业务提倡者的通证余额不敷,那么这笔生意业务就会被执行通证转账的合约函数所取消。

代码演示

我做了一个简朴的演示,来让各人可以或许更好领略这个强制生意业务依赖性机制。这段演示代码是用 Typescript 写的,你可以通过这个 链接 找到并下载代码。我在这段代码顶用到了两个最新开拓的东西:connex-framework 和 connex.driver-nodejs。这两个东西可以或许让开拓者在 NodeJS 情况中利便地通过 Connex 接口与唯链雷神区块链举办交互。
DependsOn

接下来让我先容一下这个机制是奈何在唯链雷神区块链上实现的。

提倡生意业务 TX1,从 acc1 转 1 VET 到 acc2。提供足够的 gas 来确保这笔生意业务能顺利执行;

生意业务被记录在了账本里;

这个机制是由生意业务模子中的 DependsOn 字段(请查察在 $THORDIR/tx/transaction.go 中界说的 body 布局部门)和一些特另外验证逻辑实现的,这些验证逻辑被实此刻以下用于验证一个区块中的生意业务的代码中(详细请查察 $THORDIR/consensus/validator.go 中的 verifyBlock 函数)。

生意业务被已经乐成执行,可能用区块链的语言来说生意业务没有被取消。

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

相关文章阅读