一种区块链交易处理方法、装置以及设备制造方法及图纸

技术编号:35274010 阅读:24 留言:0更新日期:2022-10-19 10:50
本说明书实施例公开了区块链交易处理方法,应用于部署有存证节点和多个合约节点的区块链系统,各合约节点分别关联有一个或者多个智能合约。方案包括:第一合约节点,接收用户发送的交易,在要执行交易时,根据自身所关联的智能合约的合约地址,向存证节点进行查询;存证节点,响应于查询,返回自身上存储的对应于合约地址的合约代码;第一合约节点,针对交易,加载以及执行合约代码,根据执行结果,修改自身上存储的世界状态集合,并通知存证节点,其中,未关联该智能合约的第二合约节点,则不执行合约代码,也不相应修改自身上存储的世界状态集合;存证节点,将交易打包为区块进行共识,在共识成功通过后将区块在自身上进行存证落盘。盘。盘。

【技术实现步骤摘要】
一种区块链交易处理方法、装置以及设备


[0001]本说明书涉及区块链
,尤其涉及一种区块链交易处理方法、装置以及设备。

技术介绍

[0002]区块链技术最初是由一位化名中本聪的人设计出的一种特殊的分布式数据库技术,它适合存储简单的、有先后关系的、能在系统内验证的数据,用密码学和共识算法保证了数据的不可篡改和不可伪造。
[0003]传统区块链设计中,共识后存储的信息、合约计算过程等都会在同一个节点(一般称为区块链节点)完成,并且所有的节点要对每笔交易进行合约运算以及共识,才能和最新区块保持同步。该种设计方式将区块链的信息存储资源和计算资源强制绑定。不能根据实际需求选择扩容磁盘或CPU内存等资源,且对每个节点的计算能力、存储要求都很高。
[0004]更直观地,参见图1,图1为传统的区块链系统涉及智能合约的交易的处理方式的示意图,可以看到合约交易的执行、共识、存证等都在相同的区块链节点完成,每个参与的节点都需要运行智能合约以及保存世界状态树,随着交易量级的不断增大,各区块链节点还是需要将每笔交易排序后执行智能合约,然后经过共识后,一笔指定交易才算执行完成。随着历史交易不断累积,不同智能合约的链上状态都在同一个世界状态树存储,这颗树的深度以及存储的键值(Key

Value,KV)量级会越发难以维护。并且,合约计算以及存证共识的功能都在同一节点内完成,其要求承载区块链节点的机器在存储容量、CPU、内存等方面都有一个高标准。
[0005]基于此,需要更为灵活高效、易于维护的区块链系统方案。

技术实现思路

[0006]本说明书一个或多个实施例提供一种区块链交易处理方法、装置、设备以及存储介质,用以解决如下技术问题:需要更为灵活高效、易于维护的区块链系统方案。
[0007]为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
[0008]本说明书一个或多个实施例提供的一种区块链交易处理方法,应用于部署有存证节点和多个合约节点的区块链系统,各所述合约节点分别关联有一个或者多个智能合约,所述方法包括:
[0009]所述多个合约节点中的第一合约节点,接收用户发送的交易,在要执行所述交易时,根据自身所关联的智能合约的合约地址,向所述存证节点进行查询;
[0010]所述存证节点,响应于所述查询,返回自身上存储的对应于所述合约地址的合约代码;
[0011]所述第一合约节点,针对所述交易,加载以及执行所述合约代码,根据执行结果,修改自身上存储的世界状态集合,并通知所述存证节点,其中,所述多个合约节点中的未关联该智能合约的第二合约节点,则不执行所述合约代码,也不相应修改自身上存储的世界
状态集合;
[0012]所述存证节点,将所述交易打包为区块进行共识,在共识成功通过后将所述区块在自身上进行存证落盘。
[0013]本说明书一个或多个实施例提供的一种区块链交易处理装置,应用于部署有存证节点和多个合约节点的区块链系统,各所述合约节点分别关联有一个或者多个智能合约,所述装置包括:
[0014]所述多个合约节点中的第一合约节点的合约代码查询模块,接收用户发送的交易,在要执行所述交易时,根据自身所关联的智能合约的合约地址,向所述存证节点进行查询;
[0015]所述存证节点的合约代码返回模块,响应于所述查询,返回自身上存储的对应于所述合约地址的合约代码;
[0016]所述第一合约节点的合约交易执行模块,针对所述交易,加载以及执行所述合约代码,根据执行结果,修改自身上存储的世界状态集合,并通知所述存证节点,其中,所述多个合约节点中的未关联该智能合约的第二合约节点,则不执行所述合约代码,也不相应修改自身上存储的世界状态集合;
[0017]所述存证节点的交易共识存证模块,将所述交易打包为区块进行共识,在共识成功通过后将所述区块在自身上进行存证落盘。
[0018]本说明书一个或多个实施例提供的一种区块链交易处理设备,应用于部署有存证节点和多个合约节点的区块链系统,各所述合约节点分别关联有一个或者多个智能合约,所述设备包括:
[0019]至少一个处理器;以及,
[0020]与所述至少一个处理器通信连接的存储器;其中,
[0021]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:
[0022]所述多个合约节点中的第一合约节点,接收用户发送的交易,在要执行所述交易时,根据自身所关联的智能合约的合约地址,向所述存证节点进行查询;
[0023]所述存证节点,响应于所述查询,返回自身上存储的对应于所述合约地址的合约代码;
[0024]所述第一合约节点,针对所述交易,加载以及执行所述合约代码,根据执行结果,修改自身上存储的世界状态集合,并通知所述存证节点,其中,所述多个合约节点中的未关联该智能合约的第二合约节点,则不执行所述合约代码,也不相应修改自身上存储的世界状态集合;
[0025]所述存证节点,将所述交易打包为区块进行共识,在共识成功通过后将所述区块在自身上进行存证落盘。
[0026]本说明书一个或多个实施例提供的一种非易失性计算机存储介质,应用于部署有存证节点和多个合约节点的区块链系统,各所述合约节点分别关联有一个或者多个智能合约,所述介质存储有计算机可执行指令,所述计算机可执行指令设置为:
[0027]所述多个合约节点中的第一合约节点,接收用户发送的交易,在要执行所述交易时,根据自身所关联的智能合约的合约地址,向所述存证节点进行查询;
[0028]所述存证节点,响应于所述查询,返回自身上存储的对应于所述合约地址的合约代码;
[0029]所述第一合约节点,针对所述交易,加载以及执行所述合约代码,根据执行结果,修改自身上存储的世界状态集合,并通知所述存证节点,其中,所述多个合约节点中的未关联该智能合约的第二合约节点,则不执行所述合约代码,也不相应修改自身上存储的世界状态集合;
[0030]所述存证节点,将所述交易打包为区块进行共识,在共识成功通过后将所述区块在自身上进行存证落盘。
[0031]本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:将传统的区块链节点拆分为合约节点和存证节点,实现了合约计算及世界状态维护,与数据存储相互分离;不同的合约节点只关联自己关注的智能合约,相应在执行合约交易时,也只执行自己关联的智能合约,也相应地只维护这一部分世界状态,而无需执行其他与自己不相关的合约交易,从而能够有效地控制自身上世界状态集合的规模,避免浪费计算资源,能够更高效地处理自身关心的那一部分合约交易;与此同时,存证节点则可以专注于存储所述区块链系统中全部智能合约的合约代码和全部交易,以为各合约节点提供数据支撑,而无需参与合约计算;这种系统架构通过合约节点实现了为迎合不同需求的差异化的隔离处理,通过存证节点实现了全局的数据统一性,相比于传统的架构更为灵活本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链交易处理方法,应用于部署有存证节点和多个合约节点的区块链系统,各所述合约节点分别关联有一个或者多个智能合约,所述方法包括:所述多个合约节点中的第一合约节点,接收用户发送的交易,在要执行所述交易时,根据自身所关联的智能合约的合约地址,向所述存证节点进行查询;所述存证节点,响应于所述查询,返回自身上存储的对应于所述合约地址的合约代码;所述第一合约节点,针对所述交易,加载以及执行所述合约代码,根据执行结果,修改自身上存储的世界状态集合,并通知所述存证节点,其中,所述多个合约节点中的未关联该智能合约的第二合约节点,则不执行所述合约代码,也不相应修改自身上存储的世界状态集合;所述存证节点,将所述交易打包为区块进行共识,在共识成功通过后将所述区块在自身上进行存证落盘。2.如权利要求1所述的方法,所述第一合约节点,通知所述存证节点,具体包括:所述第一合约节点,与所述多个合约节点中同样关联了该智能合约的其他合约节点,对所述执行结果进行共识,得到第一共识结果;若所述第一共识结果表示共识成功通过,则将所述第一共识结果通知所述存证节点。3.如权利要求1所述的方法,还包括:所述多个合约节点中的合约节点,申请关联指定的智能合约,若申请通过,则确立该合约节点与所述指定的智能合约之间的关联关系。4.如权利要求1~3任一项所述的方法,所述多个合约节点中包含一个或者多个合约节点联盟,分别由对应的组织设立。5.如权利要求4所述的方法,不同的所述组织对应的所述合约节点联盟所关联的智能合约不同。6.如权利要求4所述的方法,还包括:所述组织,针对其对应的合约节点联盟对应的指定的智能合约,为所述指定的智能合约设置运行该智能合约所需要的隐私密钥,并将所述隐私密钥分发给所述对应的合约节点联盟中的至少部分合约节点;所述第一合约节点,执行所述合约代码,具体包括:若所述合约代码对应的智能合约设置有隐私密钥,且所述隐私密钥已分发给所述第一合约节点,则所述第一合约节点利用所述隐私密钥,执行所述合约代码。7.如权利要求1所述的方法,还包括:第三合约节点,新加入所述区块链系统中,从所述存证节点获取其存储的所述区块链系统中的合约代码和历史交易;根据所述合约代码执行所述历史交易,以更新自身上存储的世界状态集合。8.如权利要求1所述的方法,所述第一合约节点,接收用户发送的交易,还包括:所述第一合约节点,对已接受多个交易进行排序,以按照顺序将各所述交易分别取出并执行。9.如权利要求2所述的方法,所述存证节点,所述将所述交易打包为区块进行共识,具体包括:所述存证节点,对所述合约节点通知的所述第一共识结果进行校验;
若校验通过,则将所述交易打包为区块,并与其他存证节点对所述区块进行共识,得到第二共识结果,以便在所述第二共识结果表示共识成功通过后,将所述区块在自身上进行存证落盘。10.如权利要求1~3任一项所述的方法,所述区块链系统中部署有多个存证节点,各所述存证节点均用于存储所述区块链系统中全部智能合约的合约代码和全部交易。11.一种区块链交易处理装置,应用于部署有存证节点和多个合约节点的区块链系统,各所述合约节点分别关联有一个或者多个智能合约,所述装置包括:所述多个合约节点中的第一合约节点的合约代码查询模块,接收用户发送的交易,在要执行所述交易时,根据自身所关联的智能合约的合约地址,向所述存证节点进行查询;所述存证节点的合约代码返回模块,响应于所述查询,返回自身上存储的对应于所述合约地址的合约代码;所述第一合约节点的合约交易执行模块,针对所述交易,加载以及执行所述合约代码,根据执行...

【专利技术属性】
技术研发人员:冯志远王志伟顾俊
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

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

1