用于实现合约更新的方法、装置和系统制造方法及图纸

技术编号:21517433 阅读:27 留言:0更新日期:2019-07-03 09:59
本公开提供一种用于实现合约更新的方法、装置和系统。区块链中的节点在接收到合约更新广播后,从合约更新广播中提取出合约签名,在对合约签名验证成功的情况下,从合约签名中提取出合约代码和更新参数,根据合约代码生成合约地址,并将合约地址插入合约代码存储结构中,从而建立合约地址与合约代码的映射关系,利用更新参数对合约数据存储结构进行初始化,以建立参数映射,从而实现合约更新。本公开通过基于映射表的合约存储结构设计解决了合约及参数结构的灵活扩展,并按功能将节点进行了相应划分,由此实现了合约的安全、自动化更新,大大简便了智能合约的更新过程。

Method, device and system for contract renewal

【技术实现步骤摘要】
用于实现合约更新的方法、装置和系统
本公开涉及互联网领域,特别涉及一种用于实现合约更新的方法、装置和系统。
技术介绍
智能合约作为区块技术中最具有生命力的技术之一,通过智能合约将双方认可的业务规则执行固化在区块链中,并自动执行和记录执行状态,避免纠纷、欺诈,降低信任成本,提高交易效率。智能合约本质上是一段运行在区块链上的程序化代码,由全体参与者共同保障其代码和运行结果受到所有人认可。由于安全和实现限制,一旦合约部署生成一次性地址,合约代码将无法再更改。现有的智能合约更新方法,主要通过部署路由合约和功能合约,由没有具体功能的路由合约实现函数接口和导流,功能合约挂载到路由合约中实现完整的实际业务逻辑。用户通过调用路由合约地址即可完成业务对接,之后若需要更新修改功能合约的具体实现需要重新部署功能合约并重新挂载到路由合约中。其灵活性大大受到限制,且合约修改无安全验证,需手动挂载,操作繁琐,其灵活性受到大大的限制。
技术实现思路
本公开的实施例解决的一个技术问题是:无法对已部署的合约进行更新。根据本公开的一个或多个实施例的一个方面,提供一种用于实现合约更新的方法,包括:区块链中的节点在接收到合约更新广播后,从合约更新广播中提取出合约签名;在对合约签名验证成功的情况下,从合约签名中提取出合约代码和更新参数;根据合约代码生成合约地址,并将合约地址插入合约代码存储结构中,从而建立合约地址与合约代码的映射关系;利用更新参数对合约数据存储结构进行初始化,以建立参数映射。可选地,在合约代码存储结构中,记录有合约地址与相应合约代码之间的映射关系;在合约数据存储结构中,记录有合约地址与相应的合约参数及参数值之间的映射关系。可选地,在对合约签名验证失败的情况下,拒绝合约签名。可选地,在接收到交易终端发送的合约处理请求后,对合约处理请求进行校验;在校验成功的情况下,调用相匹配的合约进行交易处理,计算并更新相应的用户数据。可选地,节点中具有发起合约更新功能的节点在发起合约更新时,编译生成合约代码,设定合约更新参数;对合约代码和更新参数进行签名处理,以得到合约签名;在区块链中进行合约更新广播,其中合约更新广播中携带有合约签名,以便接收到合约更新广播的节点进行合约更新。根据本公开的一个或多个实施例的一个方面,提供一种用于实现合约更新的节点,包括:通信模块,被配置为接收区块链中的合约更新广播;合约验证模块,被配置为在通信模块接收到合约更新广播后,从合约更新广播中提取出合约签名,对合约签名进行验证;合约录入模块,被配置为在对合约签名验证成功的情况下,从合约签名中提取出合约代码和更新参数,根据合约代码生成合约地址,并将合约地址插入合约代码存储结构中,从而建立合约地址与合约代码的映射关系,利用更新参数对合约数据存储结构进行初始化,以建立参数映射。可选地,在合约代码存储结构中,记录有合约地址与相应合约代码之间的映射关系;在合约数据存储结构中,记录有合约地址与相应的合约参数及参数值之间的映射关系。可选地,在对合约签名验证失败的情况下,拒绝合约签名。可选地,上述节点还包括:合约匹配模块,被配置为在接收到交易终端发送的合约处理请求后,对合约处理请求进行校验,在校验成功的情况下,调用相匹配的合约进行交易处理,计算并更新相应的用户数据。可选地,上述节点还包括:合约更新模块,被配置为在发起合约更新时,编译生成合约代码,设定合约更新参数;签名模块,被配置为对合约代码和更新参数进行签名处理,以得到合约签名;广播模块,被配置为在区块链中进行合约更新广播,其中合约更新广播中携带有合约签名,以便接收到合约更新广播的节点进行合约更新。根据本公开的一个或多个实施例的一个方面,提供一种用于实现合约更新的节点,包括:存储器,被配置为存储指令;处理器,耦合到存储器,处理器被配置为基于存储器存储的指令执行实现如上述任一实施例涉及的方法。根据本公开的一个或多个实施例的一个方面,提供一种用于实现合约更新的系统,包括:如上述任一实施例涉及的节点。根据本公开的一个或多个实施例的一个方面,提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上述任一实施例涉及的方法。通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。附图说明为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本公开一个实施例的用于实现合约更新的方法的示例性流程图。图2为本公开合约代码存储空间的数据结构示意图。图3为本公开合约数据存储空间的数据结构示意图。图4为本公开另一个实施例的用于实现合约更新的方法的示例性流程图。图5为本公开一个实施例的用于实现合约更新的节点的示例性框图。图6为本公开另一个实施例的用于实现合约更新的节点的示例性框图。图7为本公开又一个实施例的用于实现合约更新的节点的示例性框图。图8为本公开又一个实施例的用于实现合约更新的节点的示例性框图。图9为本公开一个实施例的用于实现合约更新的系统的示例性框图。具体实施方式下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。图1为本公开一个实施例的用于实现合约更新的方法的示例性流程图。可选地,本实施例的方法步骤可由区块链中的节点执行。步骤101,区块链中的节点在接收到合约更新广播后,从合约更新广播中提取出合约签名。区块链中的节点可分为普通节点和特权节点两种。其中,普通节点具有接收、验证合约代码,并进行本地更新的功能。特权节点除具有普通节点功能外,还具有签名、发起智能合约更新,并在区块链中P2P广播的功能,能实现安全、动态更新智能合约。在合约更新时,先由特权节点发起合约更新,其他节点收到新合约后在本地进行升级,完成后节点将交易终端发出的交易与新合约匹配,进行处理。步骤102,在对合约签名验证成功的情况下,从合约签名中提取出合约代码和更新参数。可选地,在对合约签名验证失败的情况下,拒绝合约签名。步骤103,根据合本文档来自技高网...

【技术保护点】
1.一种用于实现合约更新的方法,包括:区块链中的节点在接收到合约更新广播后,从所述合约更新广播中提取出合约签名;在对所述合约签名验证成功的情况下,从所述合约签名中提取出合约代码和更新参数;根据所述合约代码生成合约地址,并将所述合约地址插入合约代码存储结构中,从而建立合约地址与合约代码的映射关系;利用所述更新参数对合约数据存储结构进行初始化,以建立参数映射。

【技术特征摘要】
1.一种用于实现合约更新的方法,包括:区块链中的节点在接收到合约更新广播后,从所述合约更新广播中提取出合约签名;在对所述合约签名验证成功的情况下,从所述合约签名中提取出合约代码和更新参数;根据所述合约代码生成合约地址,并将所述合约地址插入合约代码存储结构中,从而建立合约地址与合约代码的映射关系;利用所述更新参数对合约数据存储结构进行初始化,以建立参数映射。2.根据权利要求1所述的方法,其中:在合约代码存储结构中,记录有合约地址与相应合约代码之间的映射关系;在合约数据存储结构中,记录有合约地址与相应的合约参数及参数值之间的映射关系。3.根据权利要求1所述的方法,还包括:在对所述合约签名验证失败的情况下,拒绝所述合约签名。4.根据权利要求1所述的方法,还包括:在接收到交易终端发送的合约处理请求后,对所述合约处理请求进行校验;在所述校验成功的情况下,调用相匹配的合约进行交易处理,计算并更新相应的用户数据。5.根据权利要求1-4中任一项所述的方法,还包括:所述节点中具有发起合约更新功能的节点在发起合约更新时,编译生成合约代码,设定合约更新参数;对合约代码和更新参数进行签名处理,以得到合约签名;在区块链中进行合约更新广播,其中合约更新广播中携带有所述合约签名,以便接收到合约更新广播的节点进行合约更新。6.一种用于实现合约更新的节点,包括:通信模块,被配置为接收区块链中的合约更新广播;合约验证模块,被配置为在通信模块接收到合约更新广播后,从所述合约更新广播中提取出合约签名,对所述合约签名进行验证;合约录入模块,被配置为在对所述合约签名验证成功的情况下,从所述合约签名中提...

【专利技术属性】
技术研发人员:肖扬胡杰支金龙
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1