CN116366663A - 数据处理方法及装置、设备、存储介质 - Google Patents
数据处理方法及装置、设备、存储介质 Download PDFInfo
- Publication number
- CN116366663A CN116366663A CN202111627463.7A CN202111627463A CN116366663A CN 116366663 A CN116366663 A CN 116366663A CN 202111627463 A CN202111627463 A CN 202111627463A CN 116366663 A CN116366663 A CN 116366663A
- Authority
- CN
- China
- Prior art keywords
- certificate
- block
- index value
- hash value
- target block
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 50
- 238000003672 processing method Methods 0.000 title abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000004806 packaging method and process Methods 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 6
- 230000008520 organization Effects 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 7
- 238000012163 sequencing technique Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了数据处理方法及装置、设备、存储介质;其中,所述方法包括:根据得到的待分发的第一区块中的第一证书,生成对应的索引值;所述索引值的数据长度小于所述第一证书的数据长度;至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块;将所述第二区块打包生成目标区块后分发给第一对等节点,以便所述第一对等节点将所述目标区块存储在区块链中;如此,能够有效地降低区块的大小。
Description
技术领域
本申请涉及区块链技术,涉及但不限于数据处理方法及装置、设备、存储介质。
背景技术
区块链是一种多方参与维护的分布式账本技术,是点对点(Peer to Peer,P2P)网络、共识机制、密码学算法以及智能合约等技术的集成创新。区块链系统是将数据及数据的操作记录,通过密码学方法进行加密和散列,从而形成一种公开透明、不可篡改、且可追溯的分布式数据库记账系统。
区块链网络中的节点将交易数据打包生成区块,并将通过共识即达成记账一致的区块写入区块链中,数据一旦写入区块链,区块链上的各节点都可以收到数据并进行点对点的交易、协调以及协作。
区块链采用分布式账本技术,因此每个对等(Peer)节点都存储完整的区块链账本。然而,随着交易数量的增多,以及组织以及节点的增多、参与背书的组织和节点的增多,区块链账本的数据量也随之增大。
发明内容
有鉴于此,本申请提供的数据处理方法及装置、设备、存储介质,能够有效地降低区块的大小,从而提高区块的区块效率和存储效率,进而提升区块链的性能。
根据本申请实施例的一个方面,提供一种数据处理方法,包括:根据得到的待分发的第一区块中的第一证书,生成对应的索引值;所述索引值的数据长度小于所述第一证书的数据长度;至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块;将所述第二区块打包生成目标区块后分发给第一对等节点,以便所述第一对等节点将所述目标区块存储在区块链中;如此,由于索引值的数据长度小于第一证书的数据长度,因此使得目标区块的大小小于第一区块的大小,从而能够节约区块链账本的存储空间,而较小的区块使得区块链的存储效率和出块效率得到提升,进而使得区块链的性能得到提升。
根据本申请实施例的另一方面,提供另一数据处理方法,包括:根据缓存的待处理的第一证书,生成所述第一证书的索引值;所述索引值的数据长度小于所述第一证书的数据长度;至少对缓存的至少一个所述第一证书的索引值打包生成目标区块;将所述目标区块分发给第一对等节点。
根据本申请实施例的又一方面,提供又一数据处理方法,应用于第一对等节点,所述方法包括:接收目标区块;所述目标区块中至少携带有至少一个第一证书的索引值,且不包括所述第一证书;根据所述目标区块中的至少一个所述第一证书的索引值,从已存储的第三证书集合中查找对应的第一证书;根据查找得到的第一证书,对所述目标区块进行有效性验证。
根据本申请实施例的一个方面,提供一种数据处理装置,包括:第一生成模块,用于根据得到的待分发的第一区块中的第一证书,生成对应的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
第一更新模块,用于至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块;第二生成模块,用于将所述第二区块打包生成目标区块;第一分发模块,用于将所述目标区块分发给第一对等节点,以便所述第一对等节点将所述目标区块存储在区块链中。
根据本申请实施例的一个方面,提供另一数据处理装置,包括:第三生成模块,用于根据缓存的待处理的第一证书,生成所述第一证书的索引值;所述索引值的数据长度小于所述第一证书的数据长度;第四生成模块,用于至少对缓存的至少一个所述第一证书的索引值打包生成目标区块;第二分发模块,用于将所述目标区块分发给第一对等节点。
根据本申请实施例的一个方面,提供又一数据处理装置,其特征在于,所述装置应用于第一对等节点,所述装置包括:接收模块,用于接收目标区块;所述目标区块中至少携带有至少一个第一证书的索引值,且不包括所述第一证书;查找模块,用于根据所述目标区块中的至少一个所述第一证书的索引值,从已存储的第三证书集合中查找对应的第一证书;验证模块,用于根据查找得到的第一证书,对所述目标区块进行有效性验证。
本申请实施例提供的电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例所述的方法。
本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的所述的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1为一种区块链的结构示意图;
图2为本申请实施例提供的数据处理方法的实现流程示意图;
图3为本申请实施例提供的另一数据处理方法的实现流程示意图;
图4为本申请实施例提供的再一数据处理方法的实现流程示意图;
图5为本申请实施例提供的另一数据处理方法的实现流程示意图;
图6为本申请实施例提供的数据处理装置的结构示意图;
图7为本申请实施例提供的另一数据处理装置的结构示意图;
图8为本申请实施例提供的又一数据处理装置的结构示意图;
图9为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
为了便于对本方案的理解,首先以Fabric为例,如图1所示,对区块链的结构进行说明,但是本申请实施例提到的区块结构不局限于图1所示的区块结构。在本申请中,对于区块结构不做限制。
如图1所示,区块101包含区块头、区块数据和元数据三部分。其中区块头包括:
(1)区块编号:编号从0(初始区块)开始,每在区块链上增加一个新区块,编号的数字都会加1;
(2)当前区块的哈希值,即图中所述的区块Hash:即为当前区块中包含的所有交易的哈希值;
(3)上一区块Hash:即区块链中前一个区块的哈希值。
这些字段是通过在内部对区块数据进行加密哈希而生成的。它们确保了每一个区块和与之相邻的其他区块紧密相连,从而组成一个不可更改的账本。
区块数据包含了一个有序的交易列表。区块数据是在排序服务创建区块时被写入的,区块数据包括:
(1)交易签名:它包含了一个由客户端应用程序创建的加密签名。该字段是用来检查交易细节是否未经篡改,因为交易签名的生成需要用到应用程序的私钥;
(2)提案:它负责对应用程序供给智能合约的输入参数进行编码,随后该智能合约生成提案账本更新;
(3)背书:它指的是一组签名交易响应,这些签名都来自背书策略规定的相关组织,并且这些组织的数量必须满足背书策略的要求。
区块的元数据包含了区块被写入的时间,还有区块写入者的证书、公钥以及签名。随后,区块的提交者也会为每一笔交易添加一个有效或无效的标记,但由于这一信息与区块同时产生,所以它不会被包含在Hash中。
区块链采用分布式账本技术,每个对等节点都存储完整的区块链账本。同时从区块链的区块数据信息中,区块包括较多的参与方的证书信息。
假设构造一个简单区块链网络及应用,区块链网络由一个排序节点、两个组织(每个组织有两个对等节点)组成。两个组织之间进行商品的交易。
一个商品交易的区块数据包括4~5个证书,包括交易发起方的用户证书、交易证书、排序证书、背书证书(根据背书策略,有一个或两个组织背书)。一次交易产生的区块数据大致4000~5000字节。每个证书至少800字节,证书所占存储的空间约占80%。随着组织以及节点的增多、参与背书的组织和节点越多,证书所占的空间比例越大。一个区块链网络的证书数量是有限的(网络中的排序节点、组织、组织所属的对等节点及用户都需要分配证书),但随着交易数量的增多,区块文件中存储大量冗余的证书信息,因此有效地减少证书信息的存储,将能够极大地提高区块链的存储效率和出块效率,从而间接地提升区块链的性能。
本申请实施例提供一种数据处理方法,图2为本申请实施例提供的数据处理方法的实现流程示意图,如图2所示,该方法可以包括以下步骤201至步骤203:
步骤201,根据得到的待分发的第一区块中的第一证书,生成对应的索引值;所述索引值的数据长度小于所述第一证书的数据长度。
在本申请中,对于索引值的类型不做限制,可以是第一证书的名称,也可以是基于第一证书生成的哈希值。总之,在使用时(例如对等节点对接收的区块进行有效验证时),能够基于该索引值从存储的证书集合中获取到对应的第一证书即可。
步骤202,至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块。
对于第一证书的类型不做限制,可以是排序节点的证书,也可以是组织证书、组织的对等节点证书、组织的管理员证书或组织的用户证书等。
在一些实施例中,可以将所述第一区块中的所有证书内容均替换为自身对应的哈希值。
在另一些实施例中,对于排序节点的证书,也可以保留第一区块中的该证书的名称,删除该证书的内容;对于其他证书,则将其在第一区块中的证书内容替换为对应的哈希值。
步骤203,将所述第二区块打包生成目标区块后分发给第一对等节点,以便所述第一对等节点将所述目标区块存储在区块链中。
在本申请中,上述实施例所述的数据处理方法的执行主体可以是排序节点,也可以是第二对等节点。可以理解地,当执行主体为排序节点时,排序节点可以先对接收到的交易数据和证书信息等打包生成第一区块;然后,再简化第一区块中的证书的存储内容,由存储第一证书本身改为存储第一证书的索引值,从而将得到的目标区块分发给与之连接的第一对等节点;如此,一方面使得开发人员在原有区块生成程序的基础上进行较小的改进,即可得到优化后的区块(即目标区块),从而降低开发成本;另一方面,排序节点对第一区块进行去冗余之后,将得到的目标区块发送给第一对等节点,这样由于目标区块的大小远远小于第一区块的大小,因此,能够提高区块的传输效率。
当执行主体为第二对等节点时,第二对等节点接收排序节点分发的第一区块,第二对等节点通过步骤201和步骤202对该区块进行优化,然后将得到的目标区块同步给与之连接的第一对等节点。如此,由于排序节点分发给第二对等节点的第一区块是包含证书的区块,区块的优化任务由对等节点来完成,这样,就可以保持原有传输协议的稳定,不需要修改各节点之间的传输接口,仅各节点内部的处理逻辑,相对修改工作量较小。
需要说明的是,本文所述的第二对等节点并非是特指区块链网络中的某一特定节点,而是泛指区块链网络中的任意对等节点。之所以描述为第二对等节点,是为了和下文的第一对等节点区别开来,从而达到清楚的目的。
在本申请实施例中,在得到待分发的第一区块之后,不是直接将待分发的第一区块同步给其他对等节点,而是对该区块进行去冗余处理,即,至少将第一区块中的至少一个第一证书替换为各自对应的索引值,从而得到第二区块;然后将第二区块打包生成目标区块后分发给第一对等节点;如此,由于索引值的数据长度小于第一证书的数据长度,因此使得目标区块的大小小于第一区块的大小,从而能够节约区块链账本的存储空间,而较小的区块使得区块链的存储效率和出块效率得到提升,进而使得区块链的性能得到提升。
可以理解地,在区块链网络中,节点之间的交易是很频繁的,而每次交易都需要将参与方的证书写入区块中,那么在这些参与方之间产生了一万次交易,相应的各个区块中的证书是相同的,导致区块文件中存在大量冗余的证书信息;
而在本申请实施例中,区块链上的区块只存储了证书的索引值,没有存储证书的完整内容,证书的完整内容和对应的索引值存储在本地新增的目录中即可;如此,就极大地节约了账本的存储空间。
本申请实施例再提供一种数据处理方法,图3为本申请实施例提供的另一数据处理方法的实现流程示意图,如图3所示,该方法可以包括以下步骤301至步骤307:
步骤301,根据得到的待分发的第一区块中的第一证书,生成对应的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
步骤302,获取所述第一区块中的第一证书;
步骤303,将所述第一区块中的至少一个第一证书替换为各自对应的索引值,进入步骤304;其中,所述至少一个第一证书包括除排序节点的证书外的其他证书。
例如,所述至少一个第一证书包括以下至少之一:组织证书、组织的对等节点证书、组织的管理员证书、组织的用户证书。
步骤304,删除所述第一区块中的至少一个第二证书,并保留所述第二证书的名称,得到第二区块;其中,所述至少一个第二证书包括排序节点的证书。
举例而言,如表1所示,其示出了区块中排序节点的证书的原有数据存储结构和优化后的数据存储结构,其中,IdBytes为排序节点的证书内容,N/A表示为空;
表1区块中排序节点的证书的数据结构
可以理解地,对于排序节点的证书在区块中仅保留其证书名称;如此,由于原有区块结构中存储有该证书的名称,因此无需再生成该证书的哈希值以及也无需将该证书替换为对应的哈希值;从而,一方面,简化了第一区块的优化的复杂度;另一方面,在原有技术的基础上进行较小的改进即可实现账本的存储空间的优化。
又如表2所示,其示出了背书证书的原有数据存储结构和优化后的数据存储结构,其中,IdBytes为背书证书的内容,CertHash为背书证书的哈希值。
表2区块中背书证书数据结构
步骤305,将所述第二区块打包生成目标区块后分发给第一对等节点,以便所述第一对等节点将所述目标区块存储在区块链中;
步骤306,检查已存储的第一证书集合中是否包括各个所述第一证书,将未存储的所述第一证书作为新增证书,将所述新增证书和对应的索引值存储至所述第一证书集合中。
在一些实施例中,第一证书集合中存储有证书和对应的索引值,可以检查第一证书集合中是否存储所述第一证书的索引值,从而确定该集合中是否存在所述第一证书。
在本申请中,对于第一证书集合的数据结构不做限定,可以是一个数据库,也可以是一个文件;当第一证书集合的数据结构为数据库时,第一证书集合以表的形式存在,表的字段包括包括证书的索引值和证书,其中证书的索引值为键值;当第一证书集合的数据结构为文件时,文件名为证书的索引值,文件内容为证书。
对于本文提到的第二证书集合和第三证书集合,其数据结构与第一证书集合的数据结构相同。
如果步骤302获取的某一第一证书在第一证书集合中已存在,则丢弃该步骤302获取的该证书。
可以理解地,在一些实施例中,对于排序节点的证书存储在区块链网络的配置信息中,因此无需再将排序节点的证书添加至第一证书集合中;如此,可以节约存储空间。
步骤307,将所述新增证书和对应的索引值分发给所述第一对等节点;如此,仅将新增证书进行同步,可以节约传输资源。
在一些实施例中,在将目标分块作为传输数据分发给第一对等节点时,可以在该传输数据中扩展字段,该字段为所述新增证书和对应的索引值;当然,在另一些实施例中,也可以单独将所述新增证书和对应的索引值分发给第一对等节点。
需要说明的是,上述实施例提供的数据处理方法可以应用于排序节点,也可以应用于第二对等节点。第二对等节点并非是特指区块链网络中的某一节点,而是该网络中的任意节点,第二对等节点与第一对等节点为不同的节点。
本申请实施例再提供一种数据处理方法,该方法包括以下步骤401至步骤410:
步骤401,第二对等节点接收排序节点分发的第一区块。
排序节点可以对接收到的交易数据和证书等打包生成第一区块。
步骤402,第二对等节点根据所述第一区块中的第一证书,生成对应的索引值;其中,所述索引值的数据长度小于所述第一证书的数据长度;
步骤403,第二对等节点获取所述第一区块中的第一证书;
步骤404,第二对等节点至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块。
例如,在一些实施例中,第二对等节点可以通过上述实施例的步骤303和步骤304实现步骤404。
步骤405,第二对等节点检查已存储的第一证书集合中是否包括各个所述第一证书,将未存储的所述第一证书作为新增证书,将所述新增证书和对应的索引值分发给第一对等节点;其中,所述第一证书集合的结构为树形结构;
步骤406,第二对等节点将所述排序节点中存储的第二证书集合的第一层目录的第一哈希值与所述第一证书集合的对应层目录的第二哈希值进行比较;其中,所述第二证书集合的结构与所述第一证书集合的结构相同;所述第一层为所述第二证书集合的最上层;所述第二层目录为所述第一层目录的下一层。
在一些实施例中,第二对等节点可以向排序节点发送第一请求消息,该请求消息用于请求获取排序节点存储的第二证书集合的最上层目录的第一哈希值;排序节点响应于该请求消息,将第一哈希值发送给第二对等节点。
在另一些实施例中,排序节点也可以周期性地广播第二证书集合的所有目录的哈希值,以便第二对等节点通过接收获取得到这些哈希值,从而实现步骤406至步骤410。
步骤407,如果所述第一哈希值与所述第二哈希值不一致,第二对等节点将所述第二证书集合的第二层目录的第三哈希值与所述第一证书集合的对应层目录的对应位置的第四哈希值进行比较,找出与所述第三哈希值不一致的第四哈希值。
可以理解地,如果第一哈希值与第二哈希值一致,则说明第一证书集合与排序节点中的第二证书集合的内容一致,此时无需再更新第一证书集合;从而节约遍历哈希值的工作量。
在一些实施例中,第二对等节点可以先获取第二证书集合的第二层目录的第三哈希值,然后再执行步骤407。
步骤408,第二对等节点将所述第一证书集合的所述不一致的第四哈希值的下一层目录的第五哈希值与所述第二证书集合的对应层目录的对应位置的第六哈希值进行比较,找出与所述第六哈希值不一致的第五哈希值;如此直至找出与所述第二证书集合的最底层目录的第七哈希值不一致的所述第一证书集合中的第八哈希值。
可以理解地,通过上述步骤406至步骤408,即可在较短的时间内定位到新增证书的添加位置。举例而言,如下表3所示,为证书集合certs的目录结构。
表3证书集合的目录结构
第二对等节点先比较第一证书集合的Hashfile 1与排序节点的第二证书集合的Hashfile 1是否一致;如果不一致,则遍历下一级目录,比较第一证书集合的Hashfile 21与第二证书集合的Hashfile 21是否一致;如果一致,则比较第一证书集合的Hashfile 22与第二证书集合的Hashfile 22是否一致;如果不一致,则不再比较下一目录的Hashfile的值;而是遍历下一级目录,即比较第一证书集合的Hashfile 33与第二证书集合的Hashfile33是否一致;如果不一致,则不再比较第一证书集合的Hashfile 34与第二证书集合的Hashfile 34是否一致,而是将新增证书与对应的索引值添加至Hashfile 33的目录下;如此,就无需遍历证书集合中的所有Hashfile,从而大大节约了计算量,提高了新增证书和对应的索引值的存储效率。
步骤409,第二对等节点将所述新增证书和对应的索引值存储至所述第八哈希值对应的目录下;
步骤410,如果所述第八哈希值的生成时间晚于对应第七哈希值的生成时间,第二对等节点将所述第八哈希值替换为对应的第七哈希值;如此,则无需重新计算第七哈希值,从而节约了计算量,进而提高了第一证书集合的目录的更新效率。
本申请实施例再提供一种数据处理方法,图4为本申请实施例提供的再一数据处理方法的实现流程示意图,如图4所示,该方法可以包括以下步骤401至步骤403:
步骤401,排序节点根据缓存的待处理的第一证书,生成所述第一证书的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
在一些实施例中,所述第一证书的索引值为所述第一证书的名称或哈希值。
步骤402,排序节点至少对缓存的至少一个所述第一证书的索引值打包生成目标区块;
步骤403,排序节点将所述目标区块分发给第一对等节点。
在一些实施例中,所述方法还包括:排序节点检查已存储的第二证书集合中是否包括各个所述第一证书,将未存储的所述第一证书作为新增证书,将所述新增证书和对应的索引值存储至所述第二证书集合中,以及删除缓存中的所述至少一个所述第一证书;排序节点将所述新增证书和对应的索引值分发给所述第一对等节点。
需要说明的是,图4所示的数据处理方法和相关实施例,与前文所述的数据处理方法及相关实施例的描述类似,对于其未披露的技术细节,请参照前文所述的数据处理方法及相关实施例的描述而理解。因此这里对于技术细节以及有益效果等不再进行赘述。
本申请实施例再提供一种数据处理方法,图5为本申请实施例提供的另一数据处理方法的实现流程示意图,如图5所示,该方法包括以下步骤501至步骤503:
步骤501,第一对等节点接收目标区块;所述目标区块中至少携带有至少一个第一证书的索引值,且不包括所述第一证书。
目标区块可以是排序节点分发的,也可以是其他对等节点分发的。
步骤502,第一对等节点根据所述目标区块中的至少一个所述第一证书的索引值,从已存储的第三证书集合中查找对应的第一证书;
步骤503,第一对等节点根据查找得到的第一证书,对所述目标区块进行有效性验证。
在一些实施例中,如果目标区块有效,则将该区块存储至区块链中。
在本申请实施例中,由于目标区块中至少携带有至少一个第一证书的索引值,且不包括所述第一证书,因此相比于携带有证书完整内容的区块,数据量大大减小,从而能够有效节约账本的存储空间。
下面将说明本申请实施例在一个实际的应用场景中的示例性应用。
区块链的账本结构由文件系统和数据库组成。以Fabric为例来讲,其对等节点和排序节点的账本结构如下表4和表5所示:
表4对等节点的账本数据
表5排序节点的账本数据
一个区块链网络中有五种类型的证书,即排序节点证书、组织证书、组织的对等节点证书、组织的管理员证书和组织的用户证书。
一般来说,区块链网络中的排序节点比较稳定,确定网络的共识算法类型后,排序节点数量确定后,相应排序节点的证书也确定下来。而加入区块链网络的组织及组织所属的节点和用户是随着需求经常变换的。因此对于排序节点的证书存储和组织相关证书的优化可以采用不同的存储优化方案。
一、首先在账本文件系统中增加证书存储
如表6所示,在对等节点及排序节点的账本结构中增加certs(即证书集合)内容用于存储组织的对等节点证书及用户证书等。certs可为一个数据库或文件,若是数据库定义证书表,表的字段必须包括证书Hash、证书,其中证书Hash为键值(key),也就是索引值;若是文件,文件名为证书Hash,文件内容为证书。
表6优化后区块文件目录结构
同时简化账本区块文件中证书的存储内容,由存储证书本身改为存储证书的键值(证书关键字可为证书的16/32字节的证书哈希或证书名称)以提高存储效率。
对于排序节点证书以及组织证书存储在创世区块的配置中,启动区块链网络后,相关证书会写入区块链网络的配置信息相关的数据结构中(内存空间)并广播到网络的各个节点中。
二、采用优化的区块文件目录结构,区块生成、分发、查询的相关技术流程:
1.区块生成。区块链网络的排序节点在打包生成区块时,对于原有的区块进行简化,对于排序节点证书仅存储证书名称,其他类型证书以证书哈希代替证书。
a)排序证书(即排序节点的证书),排序证书包含于区块的区块元数据中,相关的数据结构如表7所示。由于区块链网络环境配置中存储各排序节点参数及其证书,因此排序节点打包生产区块是可优化忽略证书IdBytes字段,以优化存储空间。
表7区块中排序证书数据结构
b)组织用户及节点类型证书(以背书证书为例),背书证书包含于区块的区块数据的交易中,每个交易根据配置的背书策略,需要存储一个或多个背书证书,相关的数据结构如表8所示。排序节点在打包生成区块时,生成组织相关证书Hash,检查chains/certs下的内容,是否包含该证书hash,若不存在,在certs中增加新的记录:证书Hash及证书;然后优化后的证书结构进行区块结构的生成,若已存在,直接进行区块的生成。
表8区块中背书证书数据结构
2.区块分发。排序节点将区块分发给连接到它的所有对等节点;区块链网络中不是所有的对等节点都连接到排序节点,对等节点之间通过gossip协议进行区块的分发同步。不论是排序节点和对等节点还是对等节点之间进行区块的分发,包括以下两种区块分发方案:
a)保持传输协议及传输数据不变。这种方案下,排序节点在存储区块时使用优化后的区块数据结构,但在进行区块传输时,仍使用原有的区块数据结构。在对等节点接收到区块,并对区块内数据进行验证时,按照优化后的区块结构进行存储的优化。
b)保持传输协议,优化传输数据。这种方案下,排序节点使用优化后的区块数据结构传输数据,同时在传输数据中扩展字段用来传输区块中交易新增的证书hash及证书信息,以在各对等节点中同步新增证书相关信息。对等节点根据区块数据中的证书名称或证书Hash从chains/certs目录中获取证书内容对区块数据中的相关签名数据进行验证以确保区块数据的有效性。
方案a的优点是保持传输协议的稳定,不需要修改各节点之间的传输接口,仅各节点内部的处理逻辑,相对修改工作量较小。缺点是排序节点、对等节点需要处理两种区块数据结构,节点之间传输数据量较大,处理的效率较低。相比较与方案a,方案b的优点是效率高,但是节点之间的传输协议改变,改造的工作量较大。
3.区块查询。对等节点使用优化后的区块结构读取并解析区块信息,需要使用证书验证的时候,根据区块证书键值从certs中获取证书内容。
三、进一步优化
由于原有的区块数据包含完整的证书信息,因此采用优化的账本文件及区块数据结构后,相对于原有系统需要在各节点同步新增的组织、节点及用户证书。在上述所述方案中,在区块的分发过程中,根据需求在各节点上增加新的证书信息。由于证书增加相对于交易来说是低频事件,可以把证书的同步改造成区块链系统中的通用方法,减低系统的复杂度。chains/certs的目录结构可以改造为如下表9所示的结构:
表9 chains/certs的目录结构
目录下的Hashfile文件内容为哈希摘要;哈希摘要由下层目录的哈希摘要连接后使用摘要算法求得;对等节点及用户目录下的Hashfile文件内容为时间戳+哈希摘要,其中哈希摘要由该目录下的证书连接后使用摘要算法求得;
在添加组织、添加节点、添加用户操作时,将相关节点的证书首先按规则添加到排序节点的账本的证书目录下,添加新的证书时,从最底层目录开始重新计算该目录的hash值,直至最上层certs目录。
排序节点与对等节点以及对等节点之间通信时,增加certs目录下哈希摘要,当接收的对等节点接收到该摘要,并与本地账本下的摘要进行比较,若相同则进行后续操作,若不同进行证书同步流程:
排序节点和对等节点以及对等节点之间从certs目录开始遍历递归各子目录,若哈希摘要值一致,则处理下一目录;若不一致遍历下一级目录,若存在目录(最底层)的哈希摘要不一致,则根据时间戳,时间戳较早的节点从较新的节点同步证书内容。目录的子目录存在更新的情况下,需要更新父节点的哈希摘要。由于hashfile的计算规则,可以以很少的计算量找出需要更新的目录,并完成证书的同步。
由于证书同步是低频操作,提供独立的证书同步流程,主要是为了优化区块链网络的区块打包和分发的技术流程,提高区块链网络的执行效率。
在本申请实施例中,提供一种区块链网络中账本文件结构、区块结构以及后续区块分发、证书同步等对应的优化方案和技术流程,以证书名称或证书Hash替换原有的证书完整信息,以节省账本的存储空间,提升存储和执行效率。
各节点新增文件/数据库类型集中存储证书信息列表,账本中仅存储证书名称或证书Hash,并根据证书Hash到证书信息列表中获取证书完整信息;
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等;或者,将不同实施例中步骤组合为新的技术方案。
基于前述的实施例,本申请实施例提供一种数据处理装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过处理器来实现;也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图6为本申请实施例提供的数据处理装置的结构示意图,如图6所示,装置600包括:
第一生成模块601,用于根据得到的待分发的第一区块中的第一证书,生成对应的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
第一更新模块602,用于至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块;
第二生成模块603,用于将所述第二区块打包生成目标区块;
第一分发模块604,用于将所述目标区块分发给第一对等节点,以便所述第一对等节点将所述目标区块存储在区块链中。
在一些实施例中,第一更新模块602,用于:将所述第一区块中的至少一个第一证书替换为各自对应的索引值,以及删除所述第一区块中的至少一个第二证书,并保留所述第二证书的名称,得到第二区块;其中,所述至少一个第二证书包括排序节点的证书;所述至少一个第一证书包括除所述排序节点的证书外的其他证书。
在一些实施例中,装置600还包括:获取模块,用于获取所述第一区块中的第一证书;第一存储模块,用于检查已存储的第一证书集合中是否包括各个所述第一证书,将未存储的所述第一证书作为新增证书,将所述新增证书和对应的索引值存储至所述第一证书集合中;以及第一分发模块604还用于将所述新增证书和对应的索引值分发给所述第一对等节点。
在一些实施例中,所述第一证书的索引值为所述第一证书的名称或哈希值。
在一些实施例中,装置600应用于排序节点或第二对等节点。
在一些实施例中,装置600应用于第二对等节点,所述第一证书集合的结构为树形结构;装置600还包括接收模块,用于:接收排序节点分发的所述第一区块。
在一些实施例中,第一存储模块,用于:将所述排序节点中存储的第二证书集合的第一层目录的第一哈希值与所述第一证书集合的对应层目录的第二哈希值进行比较;其中,所述第二证书集合的结构与所述第一证书集合的结构相同;所述第一层为所述第二证书集合的最上层;如果所述第一哈希值与所述第二哈希值不一致,将所述第二证书集合的第二层目录的第三哈希值与所述第一证书集合的对应层目录的对应位置的第四哈希值进行比较,找出与所述第三哈希值不一致的第四哈希值;所述第二层目录为所述第一层目录的下一层;将所述第一证书集合的所述不一致的第四哈希值的下一层目录的第五哈希值与所述第二证书集合的对应层目录的对应位置的第六哈希值进行比较,找出与所述第六哈希值不一致的第五哈希值;如此直至找出与所述第二证书集合的最底层目录的第七哈希值不一致的所述第一证书集合中的第八哈希值;将所述新增证书和对应的索引值存储至所述第八哈希值对应的目录下。
在一些实施例中,第一存储模块还用于:如果所述第八哈希值的生成时间晚于对应第七哈希值的生成时间,将所述第八哈希值替换为对应的第七哈希值。
本申请实施例提供另一数据处理装置,图7为本申请实施例提供的另一数据处理装置的结构示意图,如图7所示,所述装置700包括:
第三生成模块701,用于根据缓存的待处理的第一证书,生成所述第一证书的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
第四生成模块702,用于至少对缓存的至少一个所述第一证书的索引值打包生成目标区块;
第二分发模块703,用于将所述目标区块分发给第一对等节点。
在一些实施例中,装置700还包括第二存储模块,用于:检查已存储的第二证书集合中是否包括各个所述第一证书,将未存储的所述第一证书作为新增证书,将所述新增证书和对应的索引值存储至所述第二证书集合中,以及删除缓存中的所述至少一个所述第一证书;第二分发模块,还用于:将所述新增证书和对应的索引值分发给所述第一对等节点。
本申请实施例提供又一数据处理装置,图8为本申请实施例提供的又一数据处理装置的结构示意图,装置800应用于第一对等节点,如图8所示,所述装置800包括:
接收模块801,用于接收目标区块;所述目标区块中至少携带有至少一个第一证书的索引值,且不包括所述第一证书;
查找模块802,用于根据所述目标区块中的至少一个所述第一证书的索引值,从已存储的第三证书集合中查找对应的第一证书;
验证模块803,用于根据查找得到的第一证书,对所述目标区块进行有效性验证。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中所述的数据处理装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。也可以采用软件和硬件结合的形式实现。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
本申请实施例提供一种电子设备,图9为本申请实施例的电子设备的硬件实体示意图,如图9所示,所述电子设备900包括存储器901和处理器902,所述存储器901存储有可在处理器902上运行的计算机程序,所述处理器902执行所述程序时实现上述实施例中提供的方法中的步骤。
需要说明的是,存储器901配置为存储由处理器902可执行的指令和应用,还可以缓存在处理器902以及电子设备900中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(RandomAccess Memory,RAM)实现。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的方法中的步骤。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如对象A和/或对象B,可以表示:单独存在对象A,同时存在对象A和对象B,单独存在对象B这三种情况。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种数据处理方法,其特征在于,所述方法包括:
根据得到的待分发的第一区块中的第一证书,生成对应的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块;
将所述第二区块打包生成目标区块后分发给第一对等节点,以便所述第一对等节点将所述目标区块存储在区块链中。
2.根据权利要求1所述的方法,其特征在于,所述至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块,包括:
将所述第一区块中的至少一个第一证书替换为各自对应的索引值,以及删除所述第一区块中的至少一个第二证书,并保留所述第二证书的名称,得到第二区块;
其中,所述至少一个第二证书包括排序节点的证书;所述至少一个第一证书包括除所述排序节点的证书外的其他证书。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述第一区块中的第一证书;
检查已存储的第一证书集合中是否包括各个所述第一证书,将未存储的所述第一证书作为新增证书,将所述新增证书和对应的索引值存储至所述第一证书集合中;以及
将所述新增证书和对应的索引值分发给所述第一对等节点。
4.根据权利要求1所述的方法,其特征在于,所述第一证书的索引值为所述第一证书的名称或哈希值。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法应用于排序节点或第二对等节点。
6.根据权利要求3所述的方法,其特征在于,所述方法应用于第二对等节点,所述第一证书集合的结构为树形结构;
在所述根据得到的待分发的第一区块中的第一证书,生成对应的索引值之前,所述方法还包括:接收排序节点分发的所述第一区块。
7.根据权利要求6所述的方法,其特征在于,所述将所述新增证书和对应的索引值存储至所述第一证书集合中,包括:
将所述排序节点中存储的第二证书集合的第一层目录的第一哈希值与所述第一证书集合的对应层目录的第二哈希值进行比较;其中,所述第二证书集合的结构与所述第一证书集合的结构相同;所述第一层为所述第二证书集合的最上层;
如果所述第一哈希值与所述第二哈希值不一致,将所述第二证书集合的第二层目录的第三哈希值与所述第一证书集合的对应层目录的对应位置的第四哈希值进行比较,找出与所述第三哈希值不一致的第四哈希值;所述第二层目录为所述第一层目录的下一层;
将所述第一证书集合的所述不一致的第四哈希值的下一层目录的第五哈希值与所述第二证书集合的对应层目录的对应位置的第六哈希值进行比较,找出与所述第六哈希值不一致的第五哈希值;如此直至找出与所述第二证书集合的最底层目录的第七哈希值不一致的所述第一证书集合中的第八哈希值;
将所述新增证书和对应的索引值存储至所述第八哈希值对应的目录下。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
如果所述第八哈希值的生成时间晚于对应第七哈希值的生成时间,将所述第八哈希值替换为对应的第七哈希值。
9.一种数据处理方法,其特征在于,所述方法包括:
根据缓存的待处理的第一证书,生成所述第一证书的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
至少对缓存的至少一个所述第一证书的索引值打包生成目标区块;
将所述目标区块分发给第一对等节点。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
检查已存储的第二证书集合中是否包括各个所述第一证书,将未存储的所述第一证书作为新增证书,将所述新增证书和对应的索引值存储至所述第二证书集合中,以及删除缓存中的所述至少一个所述第一证书;
将所述新增证书和对应的索引值分发给所述第一对等节点。
11.一种数据处理方法,其特征在于,所述方法应用于第一对等节点,所述方法包括:
接收目标区块;所述目标区块中至少携带有至少一个第一证书的索引值,且不包括所述第一证书;
根据所述目标区块中的至少一个所述第一证书的索引值,从已存储的第三证书集合中查找对应的第一证书;
根据查找得到的第一证书,对所述目标区块进行有效性验证。
12.一种数据处理装置,其特征在于,包括:
第一生成模块,用于根据得到的待分发的第一区块中的第一证书,生成对应的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
第一更新模块,用于至少将所述第一区块中的至少一个第一证书替换为各自对应的索引值,得到第二区块;
第二生成模块,用于将所述第二区块打包生成目标区块;
第一分发模块,用于将所述目标区块分发给第一对等节点,以便所述第一对等节点将所述目标区块存储在区块链中。
13.一种数据处理装置,其特征在于,包括:
第三生成模块,用于根据缓存的待处理的第一证书,生成所述第一证书的索引值;所述索引值的数据长度小于所述第一证书的数据长度;
第四生成模块,用于至少对缓存的至少一个所述第一证书的索引值打包生成目标区块;
第二分发模块,用于将所述目标区块分发给第一对等节点。
14.一种数据处理装置,其特征在于,所述装置应用于第一对等节点,所述装置包括:
接收模块,用于接收目标区块;所述目标区块中至少携带有至少一个第一证书的索引值,且不包括所述第一证书;
查找模块,用于根据所述目标区块中的至少一个所述第一证书的索引值,从已存储的第三证书集合中查找对应的第一证书;
验证模块,用于根据查找得到的第一证书,对所述目标区块进行有效性验证。
15.一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至8任一项所述的方法,或者所述处理器执行所述程序时实现权利要求9或10所述的方法,或者所述处理器执行所述程序时实现权利要求11所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8任一项所述的方法,或者该计算机程序被处理器执行时实现如权利要求9或10所述的方法,或者该计算机程序被处理器执行时实现如权利要求11所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111627463.7A CN116366663A (zh) | 2021-12-28 | 2021-12-28 | 数据处理方法及装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111627463.7A CN116366663A (zh) | 2021-12-28 | 2021-12-28 | 数据处理方法及装置、设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116366663A true CN116366663A (zh) | 2023-06-30 |
Family
ID=86910641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111627463.7A Pending CN116366663A (zh) | 2021-12-28 | 2021-12-28 | 数据处理方法及装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116366663A (zh) |
-
2021
- 2021-12-28 CN CN202111627463.7A patent/CN116366663A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI810411B (zh) | 用以允許對儲存於區塊鏈上之資料的存取之電腦實施系統及方法 | |
US11520780B2 (en) | Distributed database systems and structures | |
Xu et al. | Slimchain: Scaling blockchain transactions through off-chain storage and parallel processing | |
Okman et al. | Security issues in nosql databases | |
US11283616B2 (en) | Method for index-based and integrity-assured search in a blockchain | |
CN112235420B (zh) | 基于区块链的数据同步方法、系统及相关设备 | |
JP2020530213A (ja) | ブロックチェーンワールド状態マークルパトリシアトライ木サブツリーの構築 | |
Khovratovich et al. | Sovrin: digital identities in the blockchain era | |
US11914585B2 (en) | Servicing queries of a hybrid event index | |
US20170193039A1 (en) | Servicing queries of an event log | |
US20230289782A1 (en) | Smart contract-based data processing | |
WO2023016091A1 (zh) | 数据归档方法、装置、设备、存储介质及计算机程序产品 | |
CN113343213A (zh) | 一种分散自主网络中基于区块链的多ca跨域认证方法 | |
WO2022048359A1 (zh) | 一种数据归档方法、装置、电子设备和存储介质 | |
KR20220140775A (ko) | 분산형 데이터베이스 | |
CN115185914A (zh) | 基于链上链下数据协同的数据共享方法、计算设备 | |
Tamassia et al. | Efficient content authentication in peer-to-peer networks | |
Mykletun et al. | Providing authentication and integrity in outsourced databases using merkle hash trees | |
CN116366663A (zh) | 数据处理方法及装置、设备、存储介质 | |
CN115292311A (zh) | 面向能源数据管理的区块链数据存储共识方法及系统 | |
Qian | Improved authenticated data structures for blockchain synchronization | |
WO2008147400A1 (en) | Authentication for operations over an outsourced file system stored by an untrusted unit | |
WO2023160040A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117056342B (zh) | 一种基于区块链的数据处理方法及相关设备 | |
US12007972B2 (en) | Systems and methods for processing blockchain transactions |
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 |