[发明专利]一种打包区块、验证区块和智能合约执行的方法有效
申请号: | 201811542134.0 | 申请日: | 2018-12-17 |
公开(公告)号: | CN109683995B | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 陈敏;张跃洋;周阳;薛鹏飞 | 申请(专利权)人: | 达闼机器人有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06Q40/04 |
代理公司: | 深圳市爱迪森知识产权代理事务所(普通合伙) 44341 | 代理人: | 何婷 |
地址: | 200000 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 打包 区块 验证 智能 合约 执行 方法 | ||
本发明实施例涉及区块链技术领域,尤其公开了一种打包区块、验证区块和智能合约执行的方法、计算设备及计算机存储介质,其中,打包区块的方法包括:接收事务;判断所述事务是否为原子事务,其中,所述原子事务是指具有关联顺序的事务;若是,判断所述原子事务对应的所有事务是否均已存在;若是,则按所述关联顺序,将所述原子事务对应的所有事务打包进入所述区块链的区块。由此可见,利用本发明方案,可以实现多事务出块的原子性,提高了业务逻辑的执行效率,降低了业务逻辑的复杂性。
技术领域
本发明实施例涉及区块链技术领域,特别是涉及一种打包区块、验证区块和智能合约执行的方法。
背景技术
程序的原子性是指,整个程序中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。
本发明的发明人在实现本发明的过程中,发现:本身每一个事务具有天然的原子性,区块链的共识机制保证了每一个事务的唯一,不可篡改以及执行结果的唯一性。但是在实际应用业务需求中,单个事务的原子性并不能满足特殊业务逻辑的需求。比如一个复杂的业务,受限于当前区块链底层技术的限制,不得不发送多个事务以实现业务逻辑。分离的事务不能保证整体的原子性,可能部分事务执行成功,部分事务执行失败,部分事务可能共识于某个块,部分事务可能延迟共识到其他的区块,这些情形会给应用逻辑造成很大的复杂性,甚至是错误。应用不得不做很多的特殊处理来应对各种由于非原子性操作带来的一系列问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的打包区块、验证区块和智能合约执行的方法、计算设备及计算机存储介质。
为解决上述技术问题,本发明实施例采用的一个技术方案是:提供一种打包区块的方法,包括接收事务;判断所述事务是否为原子事务,其中,所述原子事务是指具有关联顺序的事务;若是,判断所述原子事务对应的所有事务是否均已存在;若是,则按所述关联顺序,将所述原子事务对应的所有事务打包进入所述区块链的区块。
可选的,所述原子事务对应的所有事务位于同一区块。
可选的,所述方法还包括:在所述接收事务步骤之后,记录接收到所述事务的当前时间;获取接收到第一个原子事务的起始时间;判断所述当前时间与所述起始时间之间的时间间隔是否超过时间阈值;若是,则丢弃所述第一个原子事务及其对应的所有原子事务,并且继续执行所述判断所述事务是否为原子事务的步骤。
可选的,所述事务的事务头中包含原子事务的标识和所述关联顺序;所述判断所述事务是否为原子事务包括:判断所述事务的事务头中是否包含原子事务的标识;若是,则确定所述事务为原子事务;若否,则确定所述事务为非原子事务。
可选的,所述事务的事务头中还包含有原子事务的事务总数;所述判断所述原子事务对应的所有事务是否均已存在包括:获取所述原子事务对应的已存在的事务的数量;判断获取到的数量是否达到所述事务总数;若是,则确定所述原子事务对应的所有事务均已存在;若否,则确定所述原子事务对应的所有事务还没有均存在。
为解决上述技术问题,本发明实施例采用的另一个技术方案是:提供一种验证区块的方法,包括接收打包节点发送的区块;判断所述区块中的事务是否包含原子事务,其中,所述原子事务是指具有关联顺序的事务;若包含,判断所述区块中所包含的原子事务是否完整;若完整,则对所述区块执行共识验证;当共识验证通过时,向所述打包节点返回共识验证成功消息;当共识验证失败时,向所述打包节点返回共识验证失败消息。
可选的,若不完整,直接向所述打包节点返回共识验证失败消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于达闼机器人有限公司,未经达闼机器人有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811542134.0/2.html,转载请声明来源钻瓜专利网。