[发明专利]运行智能合约的方法和装置有效
申请号: | 201710496967.7 | 申请日: | 2017-06-26 |
公开(公告)号: | CN109118214B | 公开(公告)日: | 2020-11-17 |
发明(设计)人: | 姜耀国;蒋飞虎;谢军安;胡瑞丰;丁海洋 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06Q20/38 | 分类号: | G06Q20/38 |
代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 范华英;毛威 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运行 智能 合约 方法 装置 | ||
本申请实施例提供了一种运行智能合约的方法和装置,该方法包括:分布式网络中的处理节点接收共识服务节点发送的交易,该交易包括在智能合约的背书过程中产生的多个运行结果;该处理节点检查该多个运行结果是否满足验证策略,该检查包括对该多个运行结果中由除该智能合约的限定条件之外的其他程序产生的数据和版本号的检查;在该多个运行结果满足该验证策略的情况下,该处理节点识别该智能合约中的限定条件,确定本地账本数据是否满足该限定条件;在该本地账本数据满足该限定条件的情况下,该处理节点接受该交易。本申请实施例的运行智能合约的方法和装置,有利于提高交易写入账本的成功率,从而有利于提高系统的整体性能。
技术领域
本申请实施例涉及信息技术领域,特别涉及信息技术领域中的运行智能合约的方法和装置。
背景技术
互联网上的贸易,几乎都需要借助可信赖的第三方信用机构来处理,而区块链技术基于密码学原理,可以达成一致的双方直接支付,不需要第三方中介的参与。区块链是一个分布式的账本,是一种去中心化的数据库,需要区块链网络中的所有节点集体进行维护,本文称能够处理账本数据的这些节点为处理节点。它包含多个区块(block),每个区块包括若干条交易记录,同时包含了前一个区块的哈希值,这样所有的区块按顺序相连组成了区块链。智能合约(chaincode)是区块链技术中的一个重要概念,智能合约是由事件驱动的、具有状态的、运行在一个复制的、分享的账本之上的、且能够管理账本上数据的程序。智能合约看上去就是一段普通的计算机执行程序,智能合约的代码内容规定了交易的规则和逻辑,使用者签署调用智能合约就意味着合约内容将会被执行,并且执行的结果会被写入账本。
由于区块链是一种去中心化、去信任的分布式账本,因此,区块链网络中的处理节点相互之间并不信任,有可能存在恶意说谎节点,而共识算法可以很好地解决这一问题。虽然区块链网络中的每个处理节点都有可能是恶意说谎节点,但是众多节点聚到一个网络中,它们共识的结果就是一个可信的结果。共识算法的主要作用,就是让区块链网络中的所有处理节点记录相同的有效交易区块内容。在现有的一种共识机制PoE(proof ofendorse)中,客户端在需要运行某一智能合约时,可以先向多个背书节点发送模拟运行智能合约的请求,模拟运行该智能合约。其中,背书节点也属于处理节点,是处理节点中具有背书功能的一部分节点。该多个背书节点运行该智能合约,对自身的运行结果进行签名后返回给客户端(本文称之为“背书”),该客户端再按照区块链消息格式把该多个背书节点的多个运行结果封装到交易消息中,发送给共识服务节点,通过共识服务节点以区块为单位将其广播到该区块链网络中的所有处理节点(包括上述多个背书节点),该区块链网络中的处理节点对接收到的交易进行校验,满足验证策略的交易才会被认为是有效交易,进而对数据进行修改,将更新后的数据写入区块链。这里,用户可以根据自己的实际需求通过客户端设置智能合约要信任的多个背书节点,并设置对该多个背书节点的验证策略,例如,用户A的背书节点可以为3个,用户A的客户端A向这3个背书节点发送模拟运行智能合约的请求,会收到对应的3个运行结果,验证策略可以为3个运行结果的内容必须一致,也可以为至少2个运行结果的内容一致。
实际运行过程中,整个区块链网络是分布式的,并且区块链网络中的每个处理节点都保存一份区块链的完整账本数据。但是由于数据同步会有先后顺序,背书节点在运行某个交易的智能合约时所访问的区块链数据,与该交易后续在该区块链网络中的每个处理节点上要写入本地账本时的数据很有可能会不一致,使得背书节点的背书失效,因此,需要一些机制来防止背书失效的交易写入账本。
现有技术为智能合约的每一个数据设置了一个自增的版本号,每次对数据进行更新就修改一次版本号(例如,版本号加1)。背书节点在运行智能合约的时候,如果需要访问智能合约保存在区块链上的数据,就记录下需要访问的数据的版本号。该背书节点返回给客户端的运行结果中包含这些数据的版本号。该区块链网络中的所有处理节点在进行校验时,需要校验交易中数据的版本号是否与本地账本数据的版本号一致,在一致的情况下,确认该交易为有效交易,对本地账本数据进行更新。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710496967.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:在线支付方法、装置、终端及存储介质
- 下一篇:支付处理方法、装置及服务器