CN112035475A - 区块链的区块存储方法、装置、节点设备及存储介质 - Google Patents
区块链的区块存储方法、装置、节点设备及存储介质 Download PDFInfo
- Publication number
- CN112035475A CN112035475A CN202010892628.2A CN202010892628A CN112035475A CN 112035475 A CN112035475 A CN 112035475A CN 202010892628 A CN202010892628 A CN 202010892628A CN 112035475 A CN112035475 A CN 112035475A
- Authority
- CN
- China
- Prior art keywords
- transaction
- verification result
- block
- signature
- verifying
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种区块链的区块存储方法、装置、节点设备及存储介质,其中,该方法包括:获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;将所述序列化结果与所述交易集分开存储。本申请实施例实现了交易与区块的分离,有利于简化区块的存储过程,进而实现高并发。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链的区块存储方法、装置、节点设备及存储介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链由多个区块组成,每个区块包括区块头、交易、交易的验证结果以及可以忽略不计的附加信息,数据节点在对区块进行存储时,往往是将交易和区块一起存储,即先对序列化的区块进行反序列化,然后再对区块中的交易进行验证,最后将交易、交易的验证结果与区块一并再进行序列化后存储。但是交易作为一种不可变资源,在整个流程中都不会有变动,可见,现有数据节点对区块和交易的存储方法中,大部分序列化是做的无用功,处理过程过于繁琐,不利于实现高并发。
发明内容
针对上述问题,本申请提供了一种区块链的区块存储方法、装置、节点设备及存储介质,有利于简化区块的存储过程,进而实现高并发。
为实现上述目的,本申请实施例第一方面提供了种区块链的区块存储方法,应用于数据节点,该方法包括:
获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
将所述序列化结果与所述交易集分开存储。
在第一方面的一种实施方式中,所述对所述交易集中的交易进行验证,得到第二交易验证结果,包括:
对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,得到身份验证结果;
对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果;
对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,得到读写集验证结果;
由所述身份验证结果、所述签名验证结果和所述读写集验证结果构成所述第二交易验证结果。
在第一方面的另一种实施方式中,所述从所述区块中分离出所述交易集,包括:
对所述区块进行反序列化,得到结构体数据;
从所述结构体数据中获取到所述交易集。
在第一方面的另一种实施方式中,所述对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,包括:
使用所述发起者的公钥对所述数字证书的签名进行解密,得到所述数字证书的第一哈希值;
将所述第一哈希值与智能合约中指定的第二哈希值进行比较,若一致则确定所述发起者具有发起交易的权限;否则确定所述发起者不具有发起交易的权限。
在第一方面的另一种实施方式中,所述对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果,包括:
根据所述执行者的签名的数量判断所述执行者的数量是否满足交易需求;
在所述执行者的数量满足交易需求的情况下,则将所述执行者的签名与背书策略中指定的成员进行比较,若一致则确定签名验证结果为通过,否则确定签名验证结果为不通过。
在第一方面的另一种实施方式中,所述对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,包括:
判断每笔交易当前的读集与预先存储的写集是否一致;
若是则确定每笔交易的读写集不存在冲突,否则确定每笔交易的读写集存在冲突。
在第一方面的另一种实施方式中,所述第一交易验证结果为空;所述利用所述第二交易验证结果对所述第一交易验证结果进行更新,包括:
将所述第二交易验证结果写入空置的所述第一交易验证结果的位置,实现所述第一交易验证结果的更新。
本申请实施例第二方面提供了一种区块链的区块存储装置,该装置包括:
区块获取模块,用于获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
分离验证模块,用于从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
序列化模块,用于利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
存储模块,用于将所述序列化结果与所述交易集分开存储。
本申请实施例第三方面提供了一种节点设备,该节点设备包括输入设备和输出设备,还包括处理器,适于实现一条或多条指令;以及,计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如下步骤:
获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
将所述序列化结果与所述交易集分开存储。
本申请实施例第四方面提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如下步骤:
获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
将所述序列化结果与所述交易集分开存储。
本申请的上述方案至少包括以下有益效果:与现有技术相比,本申请实施例通过获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;将所述序列化结果与所述交易集分开存储。这样将交易集从区块中分离出来,由区块头和交易验证结果构成一个简易的区块,后续序列化时仅仅对包括区块头和交易验证结果的简易区块进行序列化,而没有更改的交易集不做序列化,有利于简化区块的存储过程,进而实现高并发。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种网络系统架构的示意图;
图2为本申请实施例提供的一种高性能底层模块的示意图;
图3为本申请实施例提供的一种区块链的区块存储方法的流程示意图;
图4为本申请实施例提供的一种区块的结构示意图;
图5为本申请实施例提供的一种简易区块与交易集分开存储的示意图;
图6为本申请实施例提供的另一种区块链的区块存储方法的流程示意图;
图7为本申请实施例提供的一种区块链的区块存储装置的结构示意图;
图8为本申请实施例提供的一种节点设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。
本申请实施例提供一种区块链的区块存储方案,可基于图1所示的网络系统架构实施,请参见图1,该网络系统具体可以是区块链网络,该区块链网络中包括多个节点,例如:节点1,节点2,节点3,…,节点N-1,节点N,各节点之间通过点对点传输机制进行通信,该区块链网络中的区块链可以是联盟链,节点1,节点2,节点3,…,节点N-1,节点N中包括共识节点和数据节点,共识节点对数据节点发起的交易进行共识排序后,采用预先开启的协程将交易打包为区块,然后将区块下发至数据节点进行处理、存储到本地账本等。如图2所示,上述网络系统在技术架构上提供高性能底层模块,具体包括智能区块、微服务接口、多阶段提交、数据归档等功能,其中,智能区块有利于实现交易的高吞吐量和低延时,微服务接口简化了对区块链客户端的依赖,仅需支持接口的通用协议即可实现区块链客户端与上述节点之间的通信,多阶段提交使得交易请求在不同区块链网络上的状态保持一致,而数据归档可减少单个节点的数据存储压力。高性能底层模块为本申请实施例提供了可靠的技术支撑,有利于简化数据节点对区块的存储过程,实现高并发。
基于图1所示的网络系统架构,以下结合其他附图对本申请实施例提供的区块链的区块存储方法进行详细阐述。
请参加图3,图3为本申请实施例提供的一种区块链的区块存储方法的流程示意图,该方法应用于区块链网络中的数据节点,如图3所示,包括步骤S31-S34:
S31,获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果。
本申请具体实施例中,数据节点将交易请求发送到共识节点,由共识节点进行共识排序,然后按照预设条件将一笔或多笔交易打包生成区块,例如:当缓存通道(共识节点在启动时创建的,用于存放交易)中交易的数量达到预设数量时将其打包成区块,或者当缓存通道(或内存池)中交易的总大小达到预设大小时将其打包成区块,等等,共识节点生成区块后,实时将区块派发至数据节点,或者在接收到数据节点的区块处理请求后,将区块派发至数据节点。可以理解的,如图4所示,一个区块包括区块头、交易、交易的验证结果,区块头中存储有交易特征值、版本号、时间戳等信息,交易是以交易集的方式存储于区块体,共识节点将区块派发至数据节点时,交易的验证结果通常为空,即此处的第一交易验证结果为空。
S32,从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果。
本申请具体实施例中,由于现有技术在接收到区块后需要先进行反序列化,再对每笔交易进行验证,再将区块头、交易集和交易的验证结果一并进行序列化存储过于繁琐,且区块中占据大部分的是交易构成的交易集,而交易在存储过程中是不会有变动的,因此,对所有交易再进行序列化实际上只会带来工作量的增加。鉴于此,这里先将交易集从区块中分离出来,在后续序列化时,只对区块头和交易的验证结果(即第二交易验证结果)进行序列化,简单化区块的存储过程。
在一种可能的实施方式中,所述从所述区块中分离出所述交易集,包括:
对所述区块进行反序列化,得到结构体数据;
从所述结构体数据中获取到所述交易集。
所谓序列化就是将结构体数据形式的区块转换为有序字节流,而反序列化就是将有序字节流恢复为结构体数据,共识节点通常是将生成的区块序列化后派发至数据节点,数据节点在接收到区块后,首先需要对其进行反序列化,得到结构体数据,然后从结构体数据中取出交易集。
在一种可能的实施方式中,所述对所述交易集中的交易进行验证,得到第二交易验证结果,包括:
对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,得到身份验证结果;
对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果;
对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,得到读写集验证结果;
由所述身份验证结果、所述签名验证结果和所述读写集验证结果构成所述第二交易验证结果。
交易发起者通常会将数字证书以及数字证书的签名上传到数据节点,数据节点使用发起者的公钥对数字证书的签名进行解密,得到数字证书的哈希值,将其与智能合约中约定的证书哈希进行比较,若一致则认为交易发起者具有发起交易的权限,身份验证结果为通过。对于每笔交易执行者的签名,因为背书策略通常会指定交易的执行者,首先根据交易执行者的签名的数量判断交易执行者的数量是否满足交易需求,然后将交易执行者的签名与背书策略中指定的成员进行比较,若执行者的签名与背书策略指定的成员一致,例如:5个签名对应到5个成员,则签名验证结果为通过。数据节点在交易模拟期间,会为交易准备一个读写集,读集包含一份唯一键的列表和该键的提交版本,用于交易模拟期间读取,写集包含一份唯一键的列表和交易写入的对应的新键值。交易验证期间,仅考察读集,例如:假设区块之前的世界状态为:(键1,值1,版本号1),(键2,值2,版本号2),(键3,值3,版本号3),若之前的写操作对键1和键2进行了更新,那么键1和键2对应的版本号1和版本号2也会更新,现有一笔交易读键1和更改键3,由于键1的版本号已经更改,所以该交易读集与预先存储的写集不一致,产生了冲突,相反,若键1的版本号没有更改,该交易读集与预先存储的写集一致,则读写集的验证结果为通过,身份验证结果、签名验证结果和读写集验证结果即构成第二交易验证结果。
S33,利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果。
本申请具体实施例中,如图5所示,得到第二交易验证结果后,将第二交易验证结果写入原区块交易的验证结果的位置,以对空置的第一交易验证结果进行更新,得到仅包括区块头和第二交易验证结果的简易区块(交易集已经被分离出),将该简易区块中的区块头和第二交易验证结果序列化为字节流,得到最终的序列化结果。当然,简易区块中还包括可忽略不计的附件信息可与区块头和第二交易验证结果一并序列化。
S34,将所述序列化结果与所述交易集分开存储。
本申请具体实施例中,将区块头和第二交易验证结果序列化后,先将序列化结果存储,再将分离出的交易集(交易集未经过序列化)存储,二者存储在相邻的位置。
可以看出,本申请实施例通过获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;将所述序列化结果与所述交易集分开存储。这样将交易集从区块中分离出来,由区块头和交易验证结果构成一个简易的区块,后续序列化时仅仅对包括区块头和交易验证结果的简易区块进行序列化,而没有更改的交易集不做序列化,有利于简化区块的存储过程,进而实现高并发。
请参见图6,图6本申请实施例提供的另一种区块链的区块存储方法的流程示意图,如图6所示,包括步骤S61-S68:
S61,获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
S62,从所述区块中分离出所述交易集;
S63,对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,得到身份验证结果;
在一种可能的实施方式中,对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,包括:
使用所述发起者的公钥对所述数字证书的签名进行解密,得到所述数字证书的第一哈希值;
将所述第一哈希值与智能合约中指定的第二哈希值进行比较,若一致则确定所述发起者具有发起交易的权限;否则确定所述发起者不具有发起交易的权限。
其中,第一哈希值即指使用交易发起者的公钥对数字签名解密后得到的哈希值,第二哈希值即指智能合约中预先约定的交易发起者的哈希值。
S64,对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果;
在一种可能的实施方式中,对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果,包括:
根据所述执行者的签名的数量判断所述执行者的数量是否满足交易需求;
在所述执行者的数量满足交易需求的情况下,则将所述执行者的签名与背书策略中指定的成员进行比较,若一致则确定签名验证结果为通过,否则确定签名验证结果为不通过。
S65,对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,得到读写集验证结果;
在一种可能的实施方式中,对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,包括:
判断每笔交易当前的读集与预先存储的写集是否一致;
若是则确定每笔交易的读写集不存在冲突,否则确定每笔交易的读写集存在冲突。
S66,由所述身份验证结果、所述签名验证结果和所述读写集验证结果构成第二交易验证结果;
S67,利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
S68,将所述序列化结果与所述交易集分开存储。
其中,步骤S61-S68的具体实施方式在图3所示的实施例中已有相关说明,为避免重复,此处不再赘述。
基于上述区块链的区块存储方法实施例的描述,请参见图7,图7为本申请实施例提供的一种区块链的区块存储装置的结构示意图,如图7所示,该装置包括:
区块获取模块71,用于获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
分离验证模块72,用于从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
序列化模块73,用于利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
存储模块74,用于将所述序列化结果与所述交易集分开存储。
在一种可能的实施方式中,在对所述交易集中的交易进行验证,得到第二交易验证结果方面,所述分离验证模块72具体用于:
对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,得到身份验证结果;
对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果;
对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,得到读写集验证结果;
由所述身份验证结果、所述签名验证结果和所述读写集验证结果构成所述第二交易验证结果。
在一种可能的实施方式中,在从所述区块中分离出所述交易集方面,所述分离验证模块72具体用于:
对所述区块进行反序列化,得到结构体数据;
从所述结构体数据中获取到所述交易集。
在一种可能的实施方式中,在对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限方面,所述分离验证模块72具体用于:
使用所述发起者的公钥对所述数字证书的签名进行解密,得到所述数字证书的第一哈希值;
将所述第一哈希值与智能合约中指定的第二哈希值进行比较,若一致则确定所述发起者具有发起交易的权限;否则确定所述发起者不具有发起交易的权限。
在一种可能的实施方式中,在对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果方面,所述分离验证模块72具体用于:
根据所述执行者的签名的数量判断所述执行者的数量是否满足交易需求;
在所述执行者的数量满足交易需求的情况下,则将所述执行者的签名与背书策略中指定的成员进行比较,若一致则确定签名验证结果为通过,否则确定签名验证结果为不通过。
在一种可能的实施方式中,在对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突方面,所述分离验证模块72具体用于:
判断每笔交易当前的读集与预先存储的写集是否一致;
若是则确定每笔交易的读写集不存在冲突,否则确定每笔交易的读写集存在冲突。
在一种可能的实施方式中,在利用所述第二交易验证结果对所述第一交易验证结果进行更新方面,所述序列化模块73具体用于:
将所述第二交易验证结果写入空置的所述第一交易验证结果的位置,实现所述第一交易验证结果的更新。
根据本申请的一个实施例,图7所示的区块链的区块存储装置的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链的区块存储装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图3或图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的区块链的区块存储装置设备,以及来实现本申请实施例的区块链的区块存储方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
基于上述方法实施例和装置实施例的描述,本申请实施例还提供一种节点设备。请参见图8,该节点设备至少包括处理器81、输入设备82、输出设备83以及计算机存储介质84。其中,节点设备内的处理器81、输入设备82、输出设备83以及计算机存储介质84可通过总线或其他方式连接。
计算机存储介质84可以存储在节点设备的存储器中,所述计算机存储介质84用于存储计算机程序,所述计算机程序包括程序指令,所述处理器81用于执行所述计算机存储介质84存储的程序指令。处理器81(或称CPU(Central Processing Unit,中央处理器))是节点设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例提供的节点设备的处理器81可以用于进行一系列区块链中区块的处理:
获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
将所述序列化结果与所述交易集分开存储。
再一个实施例中,处理器81执行所述对所述交易集中的交易进行验证,得到第二交易验证结果,包括:
对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,得到身份验证结果;
对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果;
对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,得到读写集验证结果;
由所述身份验证结果、所述签名验证结果和所述读写集验证结果构成所述第二交易验证结果。
再一个实施例中,处理器81执行所述从所述区块中分离出所述交易集,包括:
对所述区块进行反序列化,得到结构体数据;
从所述结构体数据中获取到所述交易集。
再一个实施例中,处理器81执行所述对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,包括:
使用所述发起者的公钥对所述数字证书的签名进行解密,得到所述数字证书的第一哈希值;
将所述第一哈希值与智能合约中指定的第二哈希值进行比较,若一致则确定所述发起者具有发起交易的权限;否则确定所述发起者不具有发起交易的权限。
再一个实施例中,处理器81执行所述对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果,包括:
根据所述执行者的签名的数量判断所述执行者的数量是否满足交易需求;
在所述执行者的数量满足交易需求的情况下,则将所述执行者的签名与背书策略中指定的成员进行比较,若一致则确定签名验证结果为通过,否则确定签名验证结果为不通过。
再一个实施例中,处理器81执行所述对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,包括:
判断每笔交易当前的读集与预先存储的写集是否一致;
若是则确定每笔交易的读写集不存在冲突,否则确定每笔交易的读写集存在冲突。
再一个实施例中,所述第一交易验证结果为空;处理器81执行所述利用所述第二交易验证结果对所述第一交易验证结果进行更新,包括:
将所述第二交易验证结果写入空置的所述第一交易验证结果的位置,实现所述第一交易验证结果的更新。
示例性的,上述节点设备可以是服务器、云服务器、计算机主机、服务器集群等,节点设备可包括但不仅限于处理器81、输入设备82、输出设备83以及计算机存储介质84。本领域技术人员可以理解,所述示意图仅仅是节点设备的示例,并不构成对节点设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
需要说明的是,由于节点设备的处理器81执行计算机程序时实现上述的区块链的区块存储方法中的步骤,因此上述区块链的区块存储方法的实施例均适用于该节点设备,且均能达到相同或相似的有益效果。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是节点设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器81加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器81的计算机存储介质。在一个实施例中,可由处理器81加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关区块链的区块存储方法的相应步骤;具体实现中,计算机存储介质中的一条或多条指令由处理器81加载并执行如下步骤:
获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
将所述序列化结果与所述交易集分开存储。
在一种示例中,计算机存储介质中的一条或多条指令由处理器81加载时还执行如下步骤:
对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,得到身份验证结果;
对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果;
对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,得到读写集验证结果;
由所述身份验证结果、所述签名验证结果和所述读写集验证结果构成所述第二交易验证结果。
在一种示例中,计算机存储介质中的一条或多条指令由处理器81加载时还执行如下步骤:
对所述区块进行反序列化,得到结构体数据;
从所述结构体数据中获取到所述交易集。
在一种示例中,计算机存储介质中的一条或多条指令由处理器81加载时还执行如下步骤:
使用所述发起者的公钥对所述数字证书的签名进行解密,得到所述数字证书的第一哈希值;
将所述第一哈希值与智能合约中指定的第二哈希值进行比较,若一致则确定所述发起者具有发起交易的权限;否则确定所述发起者不具有发起交易的权限。
在一种示例中,计算机存储介质中的一条或多条指令由处理器81加载时还执行如下步骤:
根据所述执行者的签名的数量判断所述执行者的数量是否满足交易需求;
在所述执行者的数量满足交易需求的情况下,则将所述执行者的签名与背书策略中指定的成员进行比较,若一致则确定签名验证结果为通过,否则确定签名验证结果为不通过。
在一种示例中,计算机存储介质中的一条或多条指令由处理器81加载时还执行如下步骤:
判断每笔交易当前的读集与预先存储的写集是否一致;
若是则确定每笔交易的读写集不存在冲突,否则确定每笔交易的读写集存在冲突。
在一种示例中,计算机存储介质中的一条或多条指令由处理器81加载时还执行如下步骤:将所述第二交易验证结果写入空置的所述第一交易验证结果的位置,实现所述第一交易验证结果的更新。
示例性的,计算机存储介质的计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,由于计算机存储介质的计算机程序被处理器执行时实现上述的区块链的区块存储方法中的步骤,因此上述区块链的区块存储方法的所有实施例均适用于该计算机存储介质,且均能达到相同或相似的有益效果。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种区块链的区块存储方法,其特征在于,应用于数据节点,所述方法包括:
获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
将所述序列化结果与所述交易集分开存储。
2.根据权利要求1所述的方法,其特征在于,所述对所述交易集中的交易进行验证,得到第二交易验证结果,包括:
对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,得到身份验证结果;
对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果;
对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,得到读写集验证结果;
由所述身份验证结果、所述签名验证结果和所述读写集验证结果构成所述第二交易验证结果。
3.根据权利要求1或2所述的方法,其特征在于,所述从所述区块中分离出所述交易集,包括:
对所述区块进行反序列化,得到结构体数据;
从所述结构体数据中获取到所述交易集。
4.根据权利要求2所述的方法,其特征在于,所述对所述交易集中每笔交易的发起者的数字证书进行验证,以确定每笔交易的发起者是否有发起交易的权限,包括:
使用所述发起者的公钥对所述数字证书的签名进行解密,得到所述数字证书的第一哈希值;
将所述第一哈希值与智能合约中指定的第二哈希值进行比较,若一致则确定所述发起者具有发起交易的权限;否则确定所述发起者不具有发起交易的权限。
5.根据权利要求2所述的方法,其特征在于,所述对所述交易集中每笔交易的执行者的签名进行验证,以确定每笔交易的执行者的签名与背书策略中指定的成员是否一致,得到签名验证结果,包括:
根据所述执行者的签名的数量判断所述执行者的数量是否满足交易需求;
在所述执行者的数量满足交易需求的情况下,则将所述执行者的签名与背书策略中指定的成员进行比较,若一致则确定签名验证结果为通过,否则确定签名验证结果为不通过。
6.根据权利要求2所述的方法,其特征在于,所述对所述交易集中每笔交易的读写集进行验证,以确定每笔交易的读写集是否存在冲突,包括:
判断每笔交易当前的读集与预先存储的写集是否一致;
若是则确定每笔交易的读写集不存在冲突,否则确定每笔交易的读写集存在冲突。
7.根据权利要求1所述的方法,其特征在于,所述第一交易验证结果为空;所述利用所述第二交易验证结果对所述第一交易验证结果进行更新,包括:
将所述第二交易验证结果写入空置的所述第一交易验证结果的位置,实现所述第一交易验证结果的更新。
8.一种区块链的区块存储装置,其特征在于,所述装置包括:
区块获取模块,用于获取共识节点打包生成的区块,所述区块包括区块头、交易集以及第一交易验证结果;
分离验证模块,用于从所述区块中分离出所述交易集,对所述交易集中的交易进行验证,得到第二交易验证结果;
序列化模块,用于利用所述第二交易验证结果对所述第一交易验证结果进行更新,将所述区块头与所述第二交易验证结果一起进行序列化,得到所述区块头与所述第二交易验证结果的序列化结果;
存储模块,用于将所述序列化结果与所述交易集分开存储。
9.一种节点设备,包括输入设备和输出设备,其特征在于,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-7任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1-7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010892628.2A CN112035475B (zh) | 2020-08-28 | 2020-08-28 | 区块链的区块存储方法、装置、节点设备及存储介质 |
PCT/CN2021/097235 WO2022041900A1 (zh) | 2020-08-28 | 2021-05-31 | 区块链的区块存储方法、装置、节点设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010892628.2A CN112035475B (zh) | 2020-08-28 | 2020-08-28 | 区块链的区块存储方法、装置、节点设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035475A true CN112035475A (zh) | 2020-12-04 |
CN112035475B CN112035475B (zh) | 2023-06-02 |
Family
ID=73587520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010892628.2A Active CN112035475B (zh) | 2020-08-28 | 2020-08-28 | 区块链的区块存储方法、装置、节点设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112035475B (zh) |
WO (1) | WO2022041900A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113610527A (zh) * | 2021-08-24 | 2021-11-05 | 上海点融信息科技有限责任公司 | 联盟链的交易方法、装置、系统、终端设备及存储介质 |
WO2022041900A1 (zh) * | 2020-08-28 | 2022-03-03 | 平安科技(深圳)有限公司 | 区块链的区块存储方法、装置、节点设备及存储介质 |
CN114185997A (zh) * | 2022-02-17 | 2022-03-15 | 天津眧合数字科技有限公司 | 一种基于区块链的宠物信息可信存储系统 |
WO2024066019A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的交易执行方法、共识节点和区块链系统 |
WO2024066007A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的交易执行方法、共识节点和区块链系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117408694A (zh) * | 2022-07-07 | 2024-01-16 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及设备、介质、产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106384236A (zh) * | 2016-08-31 | 2017-02-08 | 江苏通付盾科技有限公司 | 基于区块链的ca认证管理方法、装置及系统 |
CN107657438A (zh) * | 2017-09-18 | 2018-02-02 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
US20200250747A1 (en) * | 2019-01-31 | 2020-08-06 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (dlt) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188550B (zh) * | 2019-05-17 | 2024-05-24 | 深圳前海微众银行股份有限公司 | 一种区块链的数据验证方法和装置 |
CN111327676B (zh) * | 2020-01-20 | 2023-11-28 | 腾讯科技(深圳)有限公司 | 区块数据处理方法及装置 |
CN112035475B (zh) * | 2020-08-28 | 2023-06-02 | 平安科技(深圳)有限公司 | 区块链的区块存储方法、装置、节点设备及存储介质 |
-
2020
- 2020-08-28 CN CN202010892628.2A patent/CN112035475B/zh active Active
-
2021
- 2021-05-31 WO PCT/CN2021/097235 patent/WO2022041900A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106384236A (zh) * | 2016-08-31 | 2017-02-08 | 江苏通付盾科技有限公司 | 基于区块链的ca认证管理方法、装置及系统 |
CN107657438A (zh) * | 2017-09-18 | 2018-02-02 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
US20200250747A1 (en) * | 2019-01-31 | 2020-08-06 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (dlt) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022041900A1 (zh) * | 2020-08-28 | 2022-03-03 | 平安科技(深圳)有限公司 | 区块链的区块存储方法、装置、节点设备及存储介质 |
CN113610527A (zh) * | 2021-08-24 | 2021-11-05 | 上海点融信息科技有限责任公司 | 联盟链的交易方法、装置、系统、终端设备及存储介质 |
CN113610527B (zh) * | 2021-08-24 | 2024-05-28 | 上海点融信息科技有限责任公司 | 联盟链的交易方法、装置、系统、终端设备及存储介质 |
CN114185997A (zh) * | 2022-02-17 | 2022-03-15 | 天津眧合数字科技有限公司 | 一种基于区块链的宠物信息可信存储系统 |
CN114185997B (zh) * | 2022-02-17 | 2022-05-13 | 天津眧合数字科技有限公司 | 一种基于区块链的宠物信息可信存储系统 |
WO2024066019A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的交易执行方法、共识节点和区块链系统 |
WO2024066007A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的交易执行方法、共识节点和区块链系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112035475B (zh) | 2023-06-02 |
WO2022041900A1 (zh) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035475B (zh) | 区块链的区块存储方法、装置、节点设备及存储介质 | |
JP6653358B2 (ja) | 複数のシステムからのデータのブロックチェーンロギング | |
TWI714847B (zh) | 區塊鏈共識網路中處理共識請求的方法、裝置和電子設備 | |
CN113168652B (zh) | 区块链交易处理系统和方法 | |
US10025533B2 (en) | Logical block addresses used for executing host commands | |
US20140229936A1 (en) | Method and apparatus for efficient provisioning of cloned virtual machine images using deduplication metadata | |
KR20200046947A (ko) | 앵커링 기반 정보 공유 방법 및 이를 지원하는 앵커링 장치 | |
JP2020503749A (ja) | スクリプトサイズ及びオペコードリミットに対するセキュリティベース制限を維持しながらブロックチェーン上の複雑な機能を有効するためのコンピュータにより実現されるシステム及び方法 | |
TW200426576A (en) | Verbose hardware indentification for binding a software package to a computer system having tolerance for hardware changes | |
WO2023231336A1 (zh) | 执行交易的方法和区块链节点 | |
CN112862490B (zh) | 一种异步网络下的输出共识方法 | |
CN108431842A (zh) | 用于对文件进行认证和验证的方法和服务器 | |
CN111985929A (zh) | 区块链中的交易验证方法、装置、节点设备及存储介质 | |
WO2021013248A1 (zh) | 容器分层部署方法及系统 | |
US20160119133A1 (en) | Permutation composition based hash function | |
WO2022061878A1 (en) | Blockchain transaction processing systems and methods | |
CN110442601B (zh) | 一种Openstack镜像数据并行加速的方法和装置 | |
CN112866302B (zh) | 对集群数据完整性检查的方法、设备、介质及程序产品 | |
CN111444542A (zh) | 一种针对版权文件的数据处理方法、装置及存储介质 | |
WO2024001032A1 (zh) | 在区块链系统中执行交易的方法、区块链系统和节点 | |
CN109324997B (zh) | 一种基于区块链的数字权利保护方法及装置 | |
US10372347B2 (en) | Selectively limiting throughput of test objects that share system resources with production objects | |
US11431727B2 (en) | Security of code between code generator and compiler | |
US11500845B2 (en) | Blockchain transaction processing systems and methods | |
KR102128832B1 (ko) | 네트워크 인터페이스 장치 및 그 네트워크 인터페이스 장치의 데이터 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |