【技术实现步骤摘要】
一种区块链中的智能合约执行方法、系统和电子设备
本文件涉及计算机
,尤其涉及一种区块链中的智能合约执行方法、系统和电子设备。
技术介绍
在区块链的智能合约的执行中过程,通常会存在事务回滚的问题。比如,当一笔交易调用智能合约进行交易执行时,可能由于运行逻辑错误或GAS耗尽,导致交易执行失败。由于智能合约在进行交易执行过程中会对交易双方的账号状态进行修改。而当交易执行失败时,则需要回滚修改历史,也就是将智能合约修改过的交易双方的账号状态恢复为修改之前的状态。目前,在以太坊中,通常是使用操作日志(changelog)来记录所有修改记录,而当需要回滚修改历史时,则需要对操作日志中记录的所有修改记录进行逐个撤销来恢复修改之前的状态。然而这种回滚修改历史的方式效率比较低,每次操作都需要复制一份修改之前的数据,当需要回滚时也需要逐个撤销修改操作。
技术实现思路
本说明书实施例提供了一种区块链中的智能合约执行方法、系统和电子设备,以解决现有的区块链中的智能合约执行过程中,一旦交易执行失败,采用回滚修改历史的 ...
【技术保护点】
1.一种区块链中的智能合约执行方法,包括:/n在目标提议达成共识后,区块链节点调用智能合约执行所述目标提议中的目标交易,并将执行过程中产生的所述目标交易的交易执行结果存储在第一缓存中;/n如果所述目标交易执行成功,则所述区块链节点将所述第一缓存中存储的所述目标交易的交易执行结果存储到第二缓存中;/n所述区块链节点基于所述目标提议中的交易记录在所述第二缓存中的交易执行结果,进行写块操作。/n
【技术特征摘要】
1.一种区块链中的智能合约执行方法,包括:
在目标提议达成共识后,区块链节点调用智能合约执行所述目标提议中的目标交易,并将执行过程中产生的所述目标交易的交易执行结果存储在第一缓存中;
如果所述目标交易执行成功,则所述区块链节点将所述第一缓存中存储的所述目标交易的交易执行结果存储到第二缓存中;
所述区块链节点基于所述目标提议中的交易记录在所述第二缓存中的交易执行结果,进行写块操作。
2.如权利要求1所述的方法,在所述区块链节点将所述第一缓存中存储的所述目标交易的交易执行结果存储到第二缓存中之后,所述方法还包括:
所述区块链节点清空所述第一缓存中存储的所述目标交易的交易执行结果。
3.如权利要求1所述的方法,所述方法还包括:
若所述区块链节点确定所述目标交易执行失败,则清空所述第一缓存中存储的所述目标交易的交易执行结果。
4.如权利要求3所述的方法,若所述区块链节点确定所述目标交易执行失败,则清空所述第一缓存中存储的所述目标交易的交易执行结果,包括:
若所述区块链节点确定所述智能合约的逻辑错误和/或所述智能合约的GAS耗尽,则清空所述第一缓存中存储的所述目标交易的交易执行结果。
5.如权利要求1所述的方法,所述区块链节点基于所述目标提议中的交易记录在所述第二缓存中的交易执行结果,进行写块操作,包括:
所述区块链节点基于所述目标提议中的交易记录在所述第二缓存中的交易执行结果,确定所述目标提议中包含的交易是否完成交易执行操作;
若所述区块链中的节点确定所述目标提议中包含的交易完成交易执行操作,则基于所述目标提议中包含的交易记录在所述第二缓存中的交易执行结果,生成记录有所述目标提议中包含的交易的交易执行结果的区块。
6.如权利要求5所述的方法,所述区块链节点基于所述目标提议中包含的交易记录在所述第二缓存中的交易执行结果,生成记录有所述目标提议中包含的交易的交易执行结果的区块,包括:
所述区块...
【专利技术属性】
技术研发人员:李帅,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。