CN113254272A - 区块链网络的数据处理方法、装置、计算机设备和介质 - Google Patents
区块链网络的数据处理方法、装置、计算机设备和介质 Download PDFInfo
- Publication number
- CN113254272A CN113254272A CN202110645028.0A CN202110645028A CN113254272A CN 113254272 A CN113254272 A CN 113254272A CN 202110645028 A CN202110645028 A CN 202110645028A CN 113254272 A CN113254272 A CN 113254272A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- service
- network
- consensus
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种区块链网络的数据处理方法、装置、计算机设备和介质,该方法包括:区块链网络包括具有第一主节点的第一共识子网络和具有第二主节点的K个第二共识子网络,第一主节点在包括第一主节点和第二主节点的共识主网络对业务区块共识;对业务区块分块得到M个区块分块数据和N个区块冗余数据;关联集合包括M+N个区块关联数据,一个区块关联数据是区块分块数据或区块冗余数据;将关联集合的区块关联数据发送至第二主节点以使第二主节点对业务区块共识通过后对获取到的区块关联数据上链,上链的区块关联数据用于对业务区块备份还原。采用本申请,可减少对业务区块进行备份还原时对存储资源的占用,并提高业务区块的私密性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链网络的数据处理方法、装置、计算机设备和介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
在现有应用中,可以对区块链上的区块进行备份,其备份的方式通常是:若节点1需要对在区块链网络中对自己的区块1进行备份,则节点可以将该区块1发送给区块链网络中的其他节点,其他节点就可以对节点1的区块1进行存储。可见,现有技术中,在对区块1进行备份时,区块链网络中的各个节点均需要保存完整的业务区块,各个节点的存储资源的占用极大。并且,节点1的区块1对于区块链网络中所有节点都是透明可知的,也导致节点1的区块1对于其他节点而言没有隐私性。
发明内容
本申请提供了一种区块链网络的数据处理方法、装置、计算机设备和介质,可减少对业务区块进行备份还原时对存储资源的占用,并提高业务区块的私密性。
本申请一方面提供了一种区块链网络的数据处理方法,区块链网络包括第一共识子网络和K个第二共识子网络,K为正整数,第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;该方法由第一主节点执行,该方法包括:
当第一共识子网络包括待上链的业务区块时,在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
对业务区块进行分块,得到业务区块的M个区块分块数据;
根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;
将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。
本申请一方面提供了一种区块链网络的数据处理方法,区块链网络包括第一共识子网络和K个第二共识子网络,K为正整数,第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;该方法由K个第二主节点中的目标主节点执行,该方法包括:
在共识主网络中对第一共识子网络的待上链的业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
获取第一主节点发送的针对业务区块的区块关联数据;业务区块的关联集合包括M+N个区块关联数据,M+N个区块关联数据包括对业务区块进行分块后的M个区块分块数据以及通过M个区块分块数据获取到的业务区块的N个区块冗余数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;关联集合中的区块关联数据由第一主节点分别发送至K个第二主节点;
当在共识主网络中对业务区块共识通过时,将第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链;当在共识主网络中对业务区块共识通过时,关联主节点在所属的第二共识子网络中对获取到的第一主节点发送的区块关联数据进行上链;关联主节点是指K个第二主节点中除目标主节点之外的第二主节点;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。
本申请一方面提供了一种区块链网络的数据处理装置,区块链网络包括第一共识子网络和K个第二共识子网络,K为正整数,第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;装置应用于第一主节点,装置包括:
共识发起模块,用于当第一共识子网络包括待上链的业务区块时,在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
分块模块,用于对业务区块进行分块,得到业务区块的M个区块分块数据;
冗余获取模块,用于根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;
数据发送模块,用于将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。
可选的,上述装置还用于:
获取业务节点发送的业务数据,并将业务数据打包为目标区块;
在第一共识子网络中对目标区块进行共识,在目标区块共识通过后,将目标区块确定为待上链的业务区块。
可选的,当第一共识子网络包括待上链的业务区块时,共识发起模块在共识主网络中对业务区块进行共识的方式,包括:
当第一共识子网络包括待上链的业务区块时,向共识主网络广播针对业务区块的区块上链请求;
在共识主网络中对区块上链请求进行共识;
当区块上链请求共识通过时,在共识主网络中对业务区块进行共识。
可选的,当第一共识子网络包括待上链的业务区块时,共识发起模块在共识主网络中对业务区块进行共识的方式,包括:
当第一共识子网络包括待上链的业务区块时,将业务区块的区块头以及业务区块所包含的业务数据的哈希值确定为共识数据;
基于第一主节点的节点私钥对共识数据进行签名,得到针对业务区块的区块签名;
在共识主网络中广播共识数据以及区块签名,以使每个第二主节点根据共识数据和区块签名对业务区块进行共识。
可选的,业务区块包括Z个字段数据,Z为正整数;
分块模块对业务区块进行分块,得到业务区块的M个区块分块数据的方式,包括:
获取区块冗余数量N,并根据区块冗余数量N和K个第二主节点的节点总数量K确定区块分块数量M;M和N之和等于K;
根据区块分块数量M对Z个字段数据进行分块,得到M个区块分块数据。
可选的,冗余获取模块根据M个区块分块数据获取业务区块的N个区块冗余数据的方式,包括:
将M个区块分块数据确定为冗余计算数据,并获取N种冗余算法;
根据N种冗余算法中的每种冗余算法分别对冗余计算数据进行计算,得到N个区块冗余数据。
可选的,分块模块获取区块冗余数量N的方式,包括:
获取共识主网络的网络稳定等级,并将共识主网络的网络稳定等级确定为目标稳定等级;
获取冗余数量映射表;冗余数量映射表包括至少两种网络稳定等级与对应的冗余数量之间的映射关系;至少两种网络稳定等级包含目标稳定等级;
将冗余数量映射表中与目标稳定等级具有映射关系的冗余数量确定为区块冗余数量N。
可选的,上述装置还用于:
当在共识主网络中对业务区块共识通过时,将业务区块在第一共识子网络中进行上链;
上述装置还用于:
当检测到在第一共识子网络中所上链的业务区块缺失时,向共识主网络中的第二主节点获取针对业务数据的区块关联数据;
根据共识主网络中的第二主节点所返回的区块关联数据,还原得到业务区块。
本申请一方面提供了一种区块链网络的数据处理装置,区块链网络包括第一共识子网络和K个第二共识子网络,K为正整数,第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;该装置应用于K个第二主节点中的目标主节点,该装置包括:
共识模块,用于在共识主网络中对第一共识子网络的待上链的业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
关联数据获取模块,用于获取第一主节点发送的针对业务区块的区块关联数据;业务区块的关联集合包括M+N个区块关联数据,M+N个区块关联数据包括对业务区块进行分块后的M个区块分块数据以及通过M个区块分块数据获取到的业务区块的N个区块冗余数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;关联集合中的区块关联数据由第一主节点分别发送至K个第二主节点;
数据上链模块,用于当在共识主网络中对业务区块共识通过时,将第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链;当在共识主网络中对业务区块共识通过时,关联主节点在所属的第二共识子网络中对获取到的第一主节点发送的区块关联数据进行上链;关联主节点是指K个第二主节点中除目标主节点之外的第二主节点;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。
可选的,共识模块在共识主网络中对第一共识子网络中待上链的业务区块进行共识的方式,包括:
获取第一主节点发送的共识数据和区块签名;共识数据包括业务区块的区块头以及业务区块中的业务数据的哈希值;区块签名是由第一主节点基于所属的节点私钥对共识数据的哈希值进行加密得到;
基于第一主节点的节点公钥对区块签名进行解密,并将解密得到的哈希值确定为共识数据的真实哈希值;
对获取到的共识数据进行哈希运算,得到验证哈希值;
若验证哈希值与真实哈希值相同,则生成针对业务区块的共识通过信息;
当获取到关联主节点返回的针对业务区块的共识通过信息的数量大于信息数量阈值时,根据所生成的共识通过信息以及关联主节点所返回的共识通过信息确认在共识主网络中对业务区块共识通过;
当在共识主网络中对业务区块共识通过时,数据上链模块将第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链的方式,包括:
当在共识主网络中对业务区块共识通过时,将共识数据和第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链。
可选的,上述装置还用于:
当获取到针对业务区块的区块还原请求时,向关联主节点获取在关联主节点所属的第二共识子网络中上链的区块关联数据;
根据目标主节点所属的第二共识子网络中上链的区块关联数据以及向关联主节点获取到的区块关联数据还原得到初始业务区块,并获取初始业务区块中的业务数据的哈希值;
若初始业务区块中的业务数据的哈希值与所上链的共识数据中的业务数据的哈希值相同时,将初始业务区块确定为还原得到的业务区块。
本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
本申请当第一共识子网络包括待上链的业务区块时,第一主节点可以在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;对业务区块进行分块,得到业务区块的M个区块分块数据;根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。由此可见,本申请提出的方法各个第二主节点在对业务区块进行备份还原时,只需要存储该业务区块的区块关联数据,不用存储完整的业务区块,因此,减少了对业务区块进行备份还原时对各个第二主节点的存储资源的占用;并且,由于各个第二主节点只存储有业务区块的区块关联数据,一个第二主节点无法根据自己所存储的数据读取业务区块,因此,也保证了业务区块对于各个第二主节点的私密性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链网络的结构示意图;
图2是本申请提供的一种数据备份还原的场景示意图;
图3是本申请提供的一种区块链网络的数据处理方法的流程示意图;
图4是本申请提供的一种数据还原的场景示意图;
图5是本申请提供的一种数据备份的场景示意图;
图6是本申请提供的一种数据上链的场景示意图;
图7是本申请提供的一种区块链的结构示意图;
图8是本申请提供的一种数据还原的场景示意图;
图9是本申请提供的一种区块链网络的数据处理方法的流程示意图;
图10是本申请提供的一种区块链网络的数据处理装置的结构示意图;
图11是本申请提供的一种区块链网络的数据处理装置的结构示意图;
图12是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请还涉及到区块链的相关技术。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链中包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
请参见图1,图1是本申请实施例提供的一种区块链网络的结构示意图。如图1所示,该区块链网络可以包括多个共识子网络,此处该多个共识子网络具体可以包括共识子网络1、共识子网络2、共识子网络3和共识子网络4,其中,共识子网络的数量根据实际应用场景决定,对此不作限制。
可选的,共识子网络1中的共识节点可以包括节点1、节点2和节点3,共识子网络2中的共识节点可以包括节点4、节点5和节点6,共识子网络3中的共识节点可以包括节点7、节点8和节点9,共识子网络4中的共识节点可以包括节点10、节点11和节点12。其中,一个节点可以是由一个或者多个计算机设备构成,该计算机设备可以是服务器也可以是终端设备。
其中,每个共识子网络均可以包括一个主节点,如此处,共识子网络1中的主节点可以是节点1,共识子网络2中的主节点可以是节点4,共识子网络3中的主节点可以是节点7,共识子网络4中的主节点可以是节点10。各个共识子网络中的主节点又构成了共识主网络,共识主网络包括节点1、节点4、节点7和节点10,共识主网络中的各个节点之间也可以相互进行通信。
若图1中的节点是由服务器构成,则该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,可以理解的是,各个共识子网络中的主节点均可以对自己共识子网络中的区块进行上链,每次上链一个区块,若一个共识子网络中存在需要上链的区块时,则该区块首先需要在所属的共识子网络中共识通过,接着,再在共识主网络中共识通过,即表明该区块在区块链网络中共识通过,共识通过后,节点1可以让节点4、节点7和节点10对自己所上链的区块进行备份,以便后续当业务区块丢失时可以对业务区块进行还原。此处,假设当前可以上链区块的共识子网络为共识子网络1。
请一并参见图2,图2是本申请提供的一种数据备份还原的场景示意图。以图2为例说明共识子网络1如何对自己需要上链的区块进行备份,请参见下述内容描述。可以将共识子网络1中需要上链的区块称之为业务区块,对业务区块进行共识的过程与对业务区块进行备份的过程可以是相互独立的过程,只是对业务区块进行备份是在对业务区块进行共识的场景下进行的。
如框100a所示,共识子网络1可以获取到业务区块的关联集合,该关联集合可以包含3个区块关联数据,该3个区块关联数据具体可以包括区块关联数据1、区块关联数据2和区块关联数据3,该3个区块关联数据中可以包含对业务区块进行分块所得到的2个区块分块数据以及通过该2个区块分块数据得到的1个区块冗余数据。该3个区块关联数据可以用于还原出业务区块。其中,具体如何得到业务区块的关联集合的具体过程可以参见下述图3对应实施例中的描述。
因此,在区块链网络中对业务区块进行共识(包括在共识子网络中的共识和在共识主网络中的共识)的同时,节点1可以将关联集合中的区块关联数据分别发送给其他主节点,具体的,节点1可以将区块关联数据1发送给节点4,将区块关联数据2发送给节点7,将区块关联数据3发送给节点10。因此,当业务区块在区块链网络中共识通过(包括在共识子网络中共识通过和在共识主网络中共识通过)时,节点4可以在所属的共识子网络2中对获取到的区块关联数据1进行上链,节点7可以在所属的共识子网络3中对获取到的区块关联数据2进行上链,节点10可以在所属的共识子网络4中对获取到的区块关联数据3进行上链。
进而,如框101a所示,当节点1所在的共识子网络1中的业务区块丢失时,节点1可以向节点4、节点7和节点10获取其各自上链的区块关联数据,进而即可通过获取到的区块关联数据还原得到业务区块。
采用本申请所提供的方法,节点4、节点7和节点10在对节点1的业务区块进行备份时,无需存储完整的业务区块,进而减少了对节点4、节点7和节点10的存储空间的占用,并且还提升了业务区块对于节点4、节点7和节点10的隐私性。
请参见图3,图3是本申请提供的一种区块链网络的数据处理方法的流程示意图。如图3所示,该方法可以包括:
步骤S101,当第一共识子网络包括待上链的业务区块时,在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
可选的,区块链网络中可以包括多个共识子网络,一个共识子网络可以对应于一种业务的处理,例如,若包括4个共识子网络,则一个共识子网络可以对应于发票业务的处理,一个共识子网络可以对应于征信业务的处理,一个共识子网络可以对应于法人业务的处理,一个共识子网络可以对应于出口业务的处理等。一个共识子网络即为一个子集群。
其中,区块链网络中的共识子网络的数量可以根据实际应用场景决定,对此不做限制,本申请实施例中,区块链网络中的共识子网络均可以对自己网络内的区块进行上链,多个共识子网络之间可以相互竞拍,即竞拍下一个区块由哪一个共识子网络来出块上链,例如,若多个共识子网络中的某个共识子网络竞拍成功,则下一个可以上链的区块就为该共识子网络的区块。因此,可以理解的是,本申请中,可以将当前需要所需要上链的区块所属的共识子网络称之为第一共识子网络,可以将所有共识子网络中除第一共识子网络之外的共识子网络称之为第二共识子网络,此处第一共识子网络就为1个,第二共识子网络可以有K个,K为正整数,K的具体取值根据实际应用场景决定。因此,可以理解的是,第一共识子网络可以是所有共识子网络中的任意一个要对区块进行上链的共识子网络。
其中,一个共识子网络可以包括多个区块链节点(即多个共识节点),可以在各个共识子网络中分别选取一个区块链节点作为对应共识子网络中的主节点(也可以称之为代表节点),不同共识子网络中的主节点之间可以相同通信。一个共识子网络中的主节点可以是通过该共识子网络中的多个区块链节点推举出来的,或者由开发人员指定的,或者是对该共识子网络中的区块链节点均流担任的,例如,可以将一个共识子网络所包含的多个区块链节点进行排序,每隔一段时间(如一个月)就依次换下一个区块链节点作为主节点。可以将第一共识子网络中的主节点称之为第一主节点,将第二共识子网络中的主节点称之为第二主节点。因此,本申请实施例中的执行主体就可以是第一共识子网络中的第一主节点。例如,上述图2中的节点1可以是第一主节点,节点4、节点7和节点10可以是第二主节点。
因此,每个共识子网络都可以包含一个主节点,一个主节点可以由一个或者多个计算机设备构成,该计算机设备可以是服务器也可以是终端设备。所有主节点可以构成共识主网络,即共识主网络包括1个第一主节点和K个第二主节点,通常一个需要上链的区块在所属的共识子网络中进行共识之后,会再在共识主网络中进行共识,若均共识通过,才会将该区块进行上链。下面具体描述第一主节点将第一共识子网络中的业务区块进行上链的过程,请参见下述内容描述。
首先,第一主节点可以获取到业务节点发送的业务数据(如交易数据),该业务数据可以是第一共识子网络所处理的业务类型下的任意需要上链的数据,因此,第一主节点可以将该业务数据进行打包,得到一个区块,该区块就包含该业务数据,可以将该区块称之为目标区块。因此,第一主节点首先可以将该目标区块广播给第一共识子网络中的其他区块链节点进行共识,当在第一共识主网络中对目标区块共识通过,则可以将该目标区块称之为业务区块,该业务区块就为需要在共识主网络中进行共识上链的区块。
因此,当第一共识子网络中包括待上链的上述业务区块时,第一主节点可以向共识主网络广播针对业务区块的区块上链请求,实际上,若第二共识子网络中包含待上链的区块时,第二共识子网络也会向共识子网络中广播针对自己区块的区块上链请求,因此,在共识主网络中,可以对有区块需要进行上链的主节点所发送的一个或者多个区块上链请求(一个主节点一次发送一个区块上链请求)进行共识,当哪一个区块上链请求最先共识通过,则下一个可以对区块进行上链的共识子网络就为该最先共识通过的区块上链请求所属的共识子网络。此处,本申请认为就是第一主节点向共识主网络中所广播的区块上链请求最先共识通过,因此,第一主节点竞拍成功,具备出块的资质,第一主节点可以将第一共识子网络中的上述业务区块广播给共识主网络,在共识主网络中对该业务区块进行共识,请参见下述内容描述。
由于,通常业务区块中的具体的业务数据是在第一共识子网络中进行共识的,因此对于共识主网络而言,就不需要对具体的业务数据进行共识,而只需要对业务区块的块签名进行校验,因此,在共识主网络中对业务区块进行共识的过程可以是:
首先,第一主节点可以通过业务区块的区块头和以及业务区块中的业务数据的哈希值(该业务数据的数量可以是多个,因此哈希值也可以是多个,一个业务数据对应一个哈希值),生成业务区块的块签名(可以称之为区块签名),例如该区块签名的获取方式可以是:第一主节点可以将业务区块的区块头和业务数据的哈希值作为共识数据,进而第一主节点可以计算该共识数据的哈希值,并通过自己的节点私钥对该共识数据的哈希值进行加密,即可得到业务区块的区块签名,其中,共识数据的哈希值可以对业务区块的区块头和业务数据的哈希值进行拼接后再进行哈希计算得到。
进而,第一主节点可以将业务区块的区块头、业务数据的哈希值以及上述区块签名广播给各个第二主节点,使得各个第二主节点可以通过获取到的业务区块的区块头、业务数据的哈希值以及上述区块签名实现对业务区块的共识,进而实现在共识主网络中对业务区块进行共识。其中,第二主节点对业务区块进行共识的具体过程可以参见下述图9对应实施例中的相关描述。
步骤S102,对业务区块进行分块,得到业务区块的M个区块分块数据;
可选的,可以理解的是,对业务区块进行共识与对业务区块进行备份是相互独立的过程,只是,本申请对业务区块进行备份是在对业务区块进行共识的背景下执行的,换句话说,在对业务区块共识的过程中或者对业务区块共识之前,第一主节点就可以让各个第二主节点对自己的业务区块进行备份。其中,第一主节点可以采用纠错码的方式将业务区块进行分块后发送给各个第二主节点进行备份,具体过程请参见下述内容描述。
首先,对纠错码技术进行解释:纠错码技术是一种新型可扩展的数据保护方式,采用纠错码技术可以将大块数据进行切割,以得到该大块数据所包含的若干数据块,进而对该若干数据块进行冗余计算,通过冗余计算的结果以及该若干数据块一起实现对该大块数据的存写,由于引入了对数据块的冗余计算,因此即使某些少量的数据块丢失,通过该冗余计算的结果也可恢复出丢失的数据块。
鉴于此,本申请中的该大块数据可以指上述业务区块,通过纠错码技术对该业务区块进行切割所得到的若干数据块就为若干区块分块数据,对该若干区块分块数据进行冗余计算的结果就是得到若干区块冗余数据。因此,第一主节点对业务区块进行分块的具体过程可以是:
由于第一主节点是需要向共识主网络中的各个第二主节点发送数据,因此第一主节点可以根据共识主网络中的所有第二主节点的节点数量来确定对业务区块进行分块的数量,如下述。
可选的,第一主节点可以获取到针对业务区块的区块冗余数量N,该区块冗余数量N指示了第一主节点需要生成业务区块的多少个冗余数据(冗余数据也可以称之为冗余码),可以将业务区块的冗余数据称之为区块冗余数据。因此,通常,第一主节点需要对业务区块进行分块的数量(可以记为区块分块数量M)就可以是K-N,换句话说,此时N加M之和就等于K。该区块分块数量M就指示了需要将业务区块切割成多少份,即切割成多少个区块分块数据。
其中,区块冗余数量N为正整数,N的具体取值可以根据实际应用场景决定,例如,N的取值可以是开发人员预先设定的,也可以是根据共识主网络的网络稳定等级来确定的,共识主网络越稳定,则N可以越小,共识主网络越不稳定,则N可以越大。例如N可以等于1、2、3、……,当共识主网络较为稳定时,N可以取值较小,如等于2,当共识主网络较不稳定时,N可以取值较大,如等于5。但是,通常来说,N要小于M。
可选的,第一主节点获取区块冗余数量M的方式也可以是:第一主节点可以获取共识主网络的网络稳定等级,该网络稳定等级可以是共识主网络自行按照某些特定的策略评估出来的,可以将共识主网络的网络稳定等级称之为目标稳定等级。
第一主节点还可以获取到冗余数量映射表,该冗余数量映射表可以是开发人员预先设置的。该冗余数量映射表可以包含至少两种网络稳定等级与对应的冗余数量之间的映射关系,该至少两种网络稳定等级可以包括上述目标稳定等级。因此,第一主节点可以将该冗余数量映射表中与目标稳定等级具有映射关系的冗余数量作为上述区块冗余数量N。
其中,业务区块可以包括Z个字段数据,Z为正整数,Z的具体取值根据实际应用场景决定。第一主节点可以通过区块分块数量M对业务区块所包括的Z个字段数据进行分块,即可得到业务区块的M个分块数据,可以将该M个分块数据称之为M个区块分块数据,一个区块分块数据可以包括业务区块的一个或者多个字段数据。
步骤S103,根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;
可选的,第一主节点可以通过上述对业务区块进行分块得到的M个区块分块数据来获取业务区块的N个区块冗余数据:可以将该M个区块分块数据均作为冗余计算数据,第一主节点可以通过N种不同的冗余算法分别对该冗余计算数据进行计算,进而得到每种冗余算法分别对应的区块冗余数据,一种冗余算法可以对应于一个区块冗余数据。
因此,第一主节点首先可以获取N种冗余算法,该N种冗余算法中的任一种均可以是任意的算法,例如可以是加法、乘法、除法、减法或者多种算法的组合等。一种冗余算法会对M个区块分块数据(即冗余计算数据)一起进行计算,以得到该种冗余算法对应的一个区块冗余数据。可以理解为,一种冗余算法就是将M个区块分块数据进行关联的一种方式。例如,一种冗余算法可以是加法,那么可以将M个区块分块数据分别对应的数值(如二进制值或十进制值等)加起来,即可将加起来所得到的结果作为该种冗余算法对应的区块冗余数据。通过用不同的冗余算法对冗余计算数据进行计算就可以得到不同的区块冗余数据,一个区块冗余数据也可以包含若干字段数据。
通过上述过程,第一主节点就得到了M个区块分块数据和N个区块冗余数据,可以将该M个区块分块数据和N个区块冗余数据所构成的集合称之为是业务区块的关联集合,该关联集合中共包含M+N个区块关联数据,一个区块关联数据可以是一个区块分块数据或者一个区块冗余数据。
步骤S104,将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原;
可选的,第一主节点可以将关联集合中的各个区块关联数据分别发送给共识主网络中的各个第二主节点,一个第二主节点可以获取到一个区块关联数据,各个第二主节点获取到的区块关联数据可以各不相同。
因此,当各个第二主节点在共识主网络中检测到对业务区块共识通过时,各个第二主节点可以各自将自己获取到的区块关联数据在自己所属的共识子网络中进行上链。各个第二主节点在各自所属的第二共识子网络中所上链的区块关联数据就可以用于对业务区块进行备份还原。
更多的,当在共识主网络中对业务区块共识通过时,第一主节点可以将业务区块在第一共识子网络中进行上链。可选的,各个共识子网络在上链区块时,对于自己的区块则是上链的完整的区块,对于其他共识子网络的区块,则是上链的该区块的区块头、该区块所包含的业务数据的哈希值以及获取到的该区块的区块关联数据,例如,对于第一共识子网络的上述业务区块,第一共识子网络中上链有完整的业务区块,各个第二共识子网络中则分别上链有自己获取到的该业务区块的区块关联数据、该业务区块的区块头以及该业务区块中的业务数据的哈希值(也就是上链有业务数据的上述共识数据以及获取到的区块关联数据)。可以理解的是,各个第二主节点即使在对业务区块进行共识时也并未获取到完整的业务区块,因此,第一共识子网络的业务区块对于各个第二共识子网络而言,是数据隔离的且具有数据隐私性的。一个第二共识子网络可以存储有业务区块的一个区块关联数据。
更多的,当后续第一主节点在检测第一共识子网络中上链的业务区块丢失(即缺失)时,由于各个第二主节点所在的第二共识子网络中分别存储有业务区块的区块关联数据,因此,第一主节点可以向各个第二主节点获取针对业务区块的区块关联数据,进而通过各个第二主节点所返回的区块关联数据即可还原出业务区块。
其中,可以将还原第一主节点的业务区块的过程理解为解方程组的过程,由于将业务区块分块为了M个区块分块数据,一个区块分块数据可以理解为一个未知量,因此,只要获取到针对业务区块的M个方程即可还原出业务区块,业务区块的一个区块关联数据可以理解为是业务区块的一个方程。因此,可以理解的是,由于通常N+M等于K,因此若区块冗余数量N越大,则区块分块数量M可以越小,那么通过更少的方程就可以还原出业务区块。因此,此时就可以理解到,当区块链网络越稳定,则区块冗余数量N可以越小,因为区块链网络越稳定,表明第一主节点更能及时准确地获取到其他更多的第二主节点所广播的区块关联数据,即获取不到某些第二主节点所广播的区块关联数据的情况比较少。
可选的,M+N也可以不等于K,例如,通常M是要大于N的,因此当Z很小的时候,即业务区块包含的字段数据的数量很少的时候,第二主节点的数量又比较多的时候,此时不需要将业务区块分割为很多个区块分块数据,此种情形下,多个第二主节点就可能获取到相同的区块关联数据。
通过上述描述,即可知道,若第一主节点需要对业务区块进行还原,则第一主节点可以向第二主节点获取针对业务区块的区块关联数据,只要第一主节点获取到的区块关联数据的总数量大于或者等于M,且M个区块关联数据互不相同,那么第一主节点即可根据获取到的区块关联数据还原出上述M个区块分块数据,通过还原的该M个区块分块数据即可汇聚得到业务区块。
并且,需要进行说明的是,由于各个第二主节点只存储有业务区块的区块分块数据,因此,一个第二主节点单凭自己的数据是不能读取业务区块的,这也保证了在对业务区块进行备份还原时的准确性和安全性。
请参见图4,图4是本申请提供的一种数据还原的场景示意图。如图4所示,第一主节点可以对业务区块100b进行分块,得到框101b中的M个区块分块数据。进而第一主节点可以对该M个区块分块数据进行冗余计算,得到框102b中的N个区块冗余数据。
如框103b所示,上述M个区块分块数据和N个区块冗余数据均为业务区块的区块关联数据,第一主节点可以将该M+N个区块关联数据分别发送给K个第二主节点进行存储。进而如框104b,当第一主节点需要对业务区块进行恢复还原时,第一主节点只要从K个第二主节点处获取到针对业务区块的M个不同的区块关联数据,即可通过该M个不同的区块关联数据还原出业务区块100b。
请参见图5,图5是本申请提供的一种数据备份的场景示意图。如图5所示,可以将业务区块分块得到M个区块分块数据,包括区块分块数据1~区块分块数据M,通过该M个区块分块数据可以得到业务区块的N个区块冗余数据,包括区块冗余数据1~区块冗余数据N。该M个区块分块数据和N个区块冗余数据构成了业务区块的关联集合,该关联集合就包括业务区块的M+N个区块关联数据。
M+N可以等于K,第一主节点可以将该M+N个区块关联数据分别发送给K个第二主节点,一个主节点可以获取到一个区块关联数据,以此即实现了对业务区块的备份。
请参见图6,图6是本申请提供的一种数据上链的场景示意图。此处,假设主节点1上链的区块包括区块1,即区块1属于主节点1所属的共识子网络,主节点2上链的区块包括区块2,即区块2属于主节点2所属的共识子网络,主节点3上链的区块包括区块3,即区块3属于主节点3所属的共识子网络。
因此,对于主节点1的链上(可以理解为主节点1所属的共识子网络中)可以存储有完整的区块1、区块2的一个区块关联数据以及区块3的一个区块关联数据;对于主节点2的链上(可以理解为主节点2所属的共识子网络中)可以存储有区块1的一个区块关联数据、完整的区块2以及区块3的一个区块关联数据;对于主节点3的链上(可以理解为主节点3所属的共识子网络中)可以存储有区块1的一个区块关联数据、区块2的一个区块关联数据以及完整的区块3。由上可知,各个主节点在的链上的区块,对于自己的区块可以保存的完整的区块,对于其他共识子网络的区块可以是保存的区块的一个区块关联数据。
请参见图7,图7是本申请提供的一种区块链的结构示意图。第一主节点的区块链上可以包括区块1~区块5,共5个区块,其中,区块2和区块4均为属于第一主节点的区块。因此,在共识主网络的角度而言,区块4需要锚定区块3,即区块4中可以包含区块3的区块哈希(属于共识主网络中区块4的前区块哈希),在第一主节点的第一共识子网络的角度而言,区块4需要锚定区块2,即区块4中可以包含区块2的区块哈希(属于第一共识子网络中区块4的前区块哈希)。通过让各个区块不仅锚定共识主网络中的前区块哈希,还锚定所属的共识子网络中的前区块哈希,可以使得各个主节点不仅可以维护自己的共识子网络中的区块链还可以维护共识主网络中的区块链。
请参见图8,图8是本申请提供的一种数据还原的场景示意图。图8描述了如何通过纠删码实现对业务区块的还原。具体的,此处区块分块数量M等于5,首先可以根据区块分块数量M构建单位矩阵E,该单位矩阵E的行数和列数等于M。一个区块分块数据可以与该单位矩阵E中的一行相对应,例如,此处业务区块的5个区块分块数据可以包括区块分块数据D1、区块分块数据D2、区块分块数据D3、区块分块数据D4和区块分块数据D5。
其中,区块分块数据D1可以对应于单位矩阵E中的第1行,区块分块数据D2可以对应于单位矩阵E中的第2行,区块分块数据D3可以对应于单位矩阵E中的第3行,区块分块数据D4可以对应于单位矩阵E中的第4行,区块分块数据D5可以对应于单位矩阵E中的第5行。
其中,第一主节点还可以获取矩阵B,该矩阵B为一个进行冗余计算的矩阵,该矩阵B的行数等于区块冗余数量N,此处N等于3,该矩阵B的列数等于区块分块数量M。可以理解为,该矩阵B中的一行元素就对应于一种冗余算法,因此,矩阵B中的元素b11、b12、b13、b14、b15、b21、b22、b23、b24、b25、b31、b32、b33、b34、b35的具体取值根据实际所采用的冗余算法决定。业务区块的3个区块冗余数据包括区块冗余数据C1、区块冗余数据C2和区块冗余数据C3。一个区块冗余数据可以与矩阵B中的一行相对应,例如,可以将矩阵E和矩阵B构成的矩阵称之为编码矩阵或者生成矩阵,此处区块冗余数据C1可以对应于矩阵B的第1行(即编码矩阵的第6行),区块冗余数据C2可以对应于矩阵B的第2行(即编码矩阵的第7行),区块冗余数据C3可以对应于矩阵B的第3行(即编码矩阵的第8行)。
其中,由于只需要获取到5个区块关联数据即可还原出业务区块,因此,可以理解的是,在还原业务区块时,可以只保留该5个区块关联数据在编码矩阵中的那5行进行业务区块的还原。例如框100c所示,假设丢失了区块分块数据D3、区块分块数据D4以及区块冗余数据C2共3个区块关联数据,具有区块分块数据D1、区块分块数据D2、区块分块数据D5、区块冗余数据C1和区块冗余数据C3共5个区块关联数据。因此,可以得到只保留该编码矩阵中区块分块数据D1、区块分块数据D2、区块分块数据D5、区块冗余数据C1和区块冗余数据C3分别对应的行后所得到的矩阵103c。
进而,通过该矩阵103c和该5个区块关联数据可以构建等式101c,通过该等级101c即可计算得到矩阵102c,矩阵102c就包括所还原的业务区块的5个区块分块数据,包括区块分块数据D1、区块分块数据D2、区块分块数据D3、区块分块数据D4和区块分块数据D5,因此,通过所还原得到的5个区块分块数据,即可还原得到业务区块。
本申请当第一共识子网络包括待上链的业务区块时,第一主节点可以在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;对业务区块进行分块,得到业务区块的M个区块分块数据;根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。由此可见,本申请提出的方法各个第二主节点在对业务区块进行备份还原时,只需要存储该业务区块的区块关联数据,不用存储完整的业务区块,因此,减少了对业务区块进行备份还原时对各个第二主节点的存储资源的占用;并且,由于各个第二主节点只存储有业务区块的区块关联数据,一个第二主节点无法根据自己所存储的数据读取业务区块,因此,也保证了业务区块对于各个第二主节点的私密性。
请参见图9,图9是本申请提供的一种区块链网络的数据处理方法的流程示意图。本申请实施例与上述图3对应实施例中描述的是同一个方法,只是本申请实施例中的执行主体是上述K个第二主节点中的目标主节点,该目标主节点可以是该K个第二主节点中的任意一个主节点,上述图3对应实施例中的执行主体则为第一主节点,因此,本申请实施例中的内容可以与上述图3对应实施例中所描述的内容相结合。如图9所示,该方法可以包括:
步骤S201,在共识主网络中对第一共识子网络的待上链的业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
可选的,目标主节点可以在共识主网络中对第一共识子网络的待上链的上述业务区块进行共识,在共识主网络中对业务区块进行共识,即是第一主节点和K个第二主节点一起对业务区块进行共识。
其中,各个第二主节点对业务区块进行共识的原理相同,此处具体描述目标主节点对业务区块进行共识的过程:
目标主节点可以获取到第一主节点广播的业务区块的共识数据(包括业务区块的区块头和业务区块中的业务数据的哈希值)以及区块签名,该区块签名可以是第一主节点通过自己的节点私钥对共识数据的哈希值进行加密得到,共识数据的哈希值可以是对业务区块的区块头以及区块签名拼接后进行哈希运算得到。各个主节点之间相互具有对方的节点公钥,因此目标主节点具有第一主节点的节点公钥。
目标主节点可以通过第一主节点的节点公钥对获取到的区块签名进行解密,得到解密后哈希值,可以将该解密后的哈希值称之为共识数据的真实哈希值。目标主节点还可以对获取到的共识数据进行哈希运算,运算的方式与上述第一主节点通过共识数据运算得到共识数据的哈希值的方式一致,可以将目标主节点对获取到的共识数据进行哈希运算所得到的哈希值称之为验证哈希值。
若目标主节点检测到获取到的验证哈希值与该真实哈希值相同时,则表明目标主节点对业务区块共识通过,目标主节点可以生成针对业务区块的共识通过信息。
同理,各个第二主节点均可以根据自己获取到的共识数据和区块签名对业务区块进行相同的共识,若共识通过,也可以生成针对业务区块的共识通过信息,若共识不通过(如获取到的验证哈希值与真实哈希值不相同时),则可以生成针对业务区块的共识不通过信息,该共识通过信息与共识不通过信息均为主节点针对业务区块的共识结果,一个主节点可以有一个共识结果。各个主节点在生成针对业务区块的共识结果后,均可以相互广播自己获取到的共识结果。因此,可以理解的是,若目标主节点检测到获取到的验证哈希值与该真实哈希值不相同时,则表明目标主节点对业务区块共识不通过,目标主节点可以生成针对业务区块的共识不通过信息,而不会生成针对业务区块的共识通过信息。
因此,目标主节点也可以获取到其他第二主节点广播的针对业务区块的共识结果,若目标主节点获取到其他第二主节点返回的共识结果中的共识通过信息的数量大于信息数量阈值,则可以认为大部分主节点(如超过2/3的主节点)对业务区块共识通过,进而认为在共识主网络中对业务区块共识通过。因此,信息数量阈值可以通过所有主节点的数量以及目标主节点所生成的针对业务区块的共识结果而定,例如,若需要共识主网络中对业务区块共识通过的主节点的数量大于2/3(即2/3乘以K,也就是2/3*K),才认为在共识主网络中对业务区块共识通过,则当目标主节点生成的针对业务区块的共识结果是共识通过信息时,信息数量阈值可以等于2/3*K-1,当目标主节点生成的针对业务区块的共识结果是共识不通过信息时,信息数量阈值可以等于2/3*K。
步骤S202,获取第一主节点发送的针对业务区块的区块关联数据;业务区块的关联集合包括M+N个区块关联数据,M+N个区块关联数据包括对业务区块进行分块后的M个区块分块数据以及通过M个区块分块数据获取到的业务区块的N个区块冗余数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;关联集合中的区块关联数据由第一主节点分别发送至K个第二主节点;
可选的,目标主节点可以获取到第一主节点发送的针对业务区块的一个或者多个区块关联数据(通常是一个)。
步骤S203,当在共识主网络中对业务区块共识通过时,将第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链;当在共识主网络中对业务区块共识通过时,关联主节点在所属的第二共识子网络中对获取到的第一主节点发送的区块关联数据进行上链;关联主节点是指K个第二主节点中除目标主节点之外的第二主节点;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原;
可选的,当目标主节点检测到在共识主网络中对业务区块共识通过时,目标主节点可以将获取到的上述共识数据以及第一主节点所发送的区块关联数据在所属的第二共识子网络中进行上链。同时,其他第二主节点(即关联主节点,也就是所有第二主节点中除目标主节点之外的第二主节点)检测到在共识主网络中对业务区块共识通过时,也可以将自己获取到的共识数据以及第一主节点所发送的区块关联数据在所属的第二共识子网络中进行上链。
后续,任意一个第二主节点若是获取到针对业务区块的区块还原请求时,均可以向其他第二主节点获取针对业务区块的区块关联数据,进而通过获取到的区块关联数据以及自己所上链的区块关联数据,还原出业务区块。此处,以目标主节点还原业务区块的过程为例进行说明:目标主节点在获取到针对业务区块的区块还原请求(可以是业务客户端发送的)时,目标主节点可以向关联主节点获取在该关联主节点所属的第二共识子网络中上链的区块关联数据,进而目标主节点可以通过自己所属的第二共识子网络中上链的区块关联数据、以及向关联主节点获取到的区块关联数据,还原得到初始业务区块。
进而,目标主节点可以获取还原得到的该初始业务区块中的业务数据的哈希值,并在检测到该初始业务区块中的业务数据的哈希值与所上链的共识数据中的业务数据的哈希值相同时,就认为还原得到的初始业务区块就为第一主节点的上述业务区块。
本申请所提供的方法可以应用于区块链税务系统中,该区块链税务系统就可以为上述区块链网络,可以包含多个子集群,即包含多个共识子网络。其中,还可以创建数据读取合约让区块链税务系统中的监管系统进行组织,该数据读取合约中可以设置可以对业务区块进行还原的一些限制条件,从而通过该数据读取合约可以智能化地实现对业务区块的数据恢复(即还原)、审计(如对业务区块还原后进行审查)和抽查(如对需要还原的区块进行定期抽查后还原)。
本申请在对业务区块进行备份时,无需在各个主节点上落盘全部数据(即存储完整的业务区块),即可高效地在各个第二主节点上对业务区块进行备份,从而节省了各个第二主节点的计算和存储资源。
本申请当第一共识子网络包括待上链的业务区块时,第一主节点可以在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;对业务区块进行分块,得到业务区块的M个区块分块数据;根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。由此可见,本申请提出的方法各个第二主节点在对业务区块进行备份还原时,只需要存储该业务区块的区块关联数据,不用存储完整的业务区块,因此,减少了对业务区块进行备份还原时对各个第二主节点的存储资源的占用;并且,由于各个第二主节点只存储有业务区块的区块关联数据,一个第二主节点无法根据自己所存储的数据读取业务区块,因此,也保证了业务区块对于各个第二主节点的私密性。
请参见图10,图10是本申请提供的一种区块链网络的数据处理装置的结构示意图。该区块链网络的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该区块链网络的数据处理装置为一个应用软件,该区块链网络的数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。其中,区块链网络可以包括第一共识子网络和K个第二共识子网络,K为正整数,第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;该区块链网络的数据处理装置可以应用于第一主节点。如图10所示,该区块链网络的数据处理装置1可以包括:共识发起模块11、分块模块12、冗余获取模块13和数据发送模块14。
共识发起模块11,用于当第一共识子网络包括待上链的业务区块时,在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
分块模块12,用于对业务区块进行分块,得到业务区块的M个区块分块数据;
冗余获取模块13,用于根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;
数据发送模块14,用于将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。
可选的,上述装置1还用于:
获取业务节点发送的业务数据,并将业务数据打包为目标区块;
在第一共识子网络中对目标区块进行共识,在目标区块共识通过后,将目标区块确定为待上链的业务区块。
可选的,当第一共识子网络包括待上链的业务区块时,共识发起模块11在共识主网络中对业务区块进行共识的方式,包括:
当第一共识子网络包括待上链的业务区块时,向共识主网络广播针对业务区块的区块上链请求;
在共识主网络中对区块上链请求进行共识;
当区块上链请求共识通过时,在共识主网络中对业务区块进行共识。
可选的,当第一共识子网络包括待上链的业务区块时,共识发起模块11在共识主网络中对业务区块进行共识的方式,包括:
当第一共识子网络包括待上链的业务区块时,将业务区块的区块头以及业务区块所包含的业务数据的哈希值确定为共识数据;
基于第一主节点的节点私钥对共识数据进行签名,得到针对业务区块的区块签名;
在共识主网络中广播共识数据以及区块签名,以使每个第二主节点根据共识数据和区块签名对业务区块进行共识。
可选的,业务区块包括Z个字段数据,Z为正整数;
分块模块12对业务区块进行分块,得到业务区块的M个区块分块数据的方式,包括:
获取区块冗余数量N,并根据区块冗余数量N和K个第二主节点的节点总数量K确定区块分块数量M;M和N之和等于K;
根据区块分块数量M对Z个字段数据进行分块,得到M个区块分块数据。
可选的,冗余获取模块13根据M个区块分块数据获取业务区块的N个区块冗余数据的方式,包括:
将M个区块分块数据确定为冗余计算数据,并获取N种冗余算法;
根据N种冗余算法中的每种冗余算法分别对冗余计算数据进行计算,得到N个区块冗余数据。
可选的,分块模块12获取区块冗余数量N的方式,包括:
获取共识主网络的网络稳定等级,并将共识主网络的网络稳定等级确定为目标稳定等级;
获取冗余数量映射表;冗余数量映射表包括至少两种网络稳定等级与对应的冗余数量之间的映射关系;至少两种网络稳定等级包含目标稳定等级;
将冗余数量映射表中与目标稳定等级具有映射关系的冗余数量确定为区块冗余数量N。
可选的,上述装置1还用于:
当在共识主网络中对业务区块共识通过时,将业务区块在第一共识子网络中进行上链;
上述装置1还用于:
当检测到在第一共识子网络中所上链的业务区块缺失时,向共识主网络中的第二主节点获取针对业务数据的区块关联数据;
根据共识主网络中的第二主节点所返回的区块关联数据,还原得到业务区块。
根据本申请的一个实施例,图3所示的区块链网络的数据处理方法所涉及的步骤可由图10所示的区块链网络的数据处理装置1中的各个模块来执行。例如,图3中所示的步骤S101可由图10中的共识发起模块11来执行,图3中所示的步骤S102可由图10中的分块模块12来执行;图3中所示的步骤S103可由图10中的冗余获取模块13来执行,图3中所示的步骤S104可由图10中的数据发送模块14来执行。
本申请当第一共识子网络包括待上链的业务区块时,第一主节点可以在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;对业务区块进行分块,得到业务区块的M个区块分块数据;根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。由此可见,本申请提出的装置各个第二主节点在对业务区块进行备份还原时,只需要存储该业务区块的区块关联数据,不用存储完整的业务区块,因此,减少了对业务区块进行备份还原时对各个第二主节点的存储资源的占用;并且,由于各个第二主节点只存储有业务区块的区块关联数据,一个第二主节点无法根据自己所存储的数据读取业务区块,因此,也保证了业务区块对于各个第二主节点的私密性。
根据本申请的一个实施例,图10所示的区块链网络的数据处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,区块链网络的数据处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图10中所示的区块链网络的数据处理装置1,以及来实现本申请实施例的区块链网络的数据处理方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
请参见图11,图11是本申请提供的一种区块链网络的数据处理装置的结构示意图。该区块链网络的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该区块链网络的数据处理装置为一个应用软件,该区块链网络的数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。其中,区块链网络可以包括第一共识子网络和K个第二共识子网络,K为正整数,第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;该区块链网络的数据处理装置可以应用于K个第二主节点中的目标主节点。如图11所示,该区块链网络的数据处理装置1可以包括:共识模块21、关联数据获取模块22和数据上链模块23;
共识模块21,用于在共识主网络中对第一共识子网络的待上链的业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
关联数据获取模块22,用于获取第一主节点发送的针对业务区块的区块关联数据;业务区块的关联集合包括M+N个区块关联数据,M+N个区块关联数据包括对业务区块进行分块后的M个区块分块数据以及通过M个区块分块数据获取到的业务区块的N个区块冗余数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;关联集合中的区块关联数据由第一主节点分别发送至K个第二主节点;
数据上链模块23,用于当在共识主网络中对业务区块共识通过时,将第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链;当在共识主网络中对业务区块共识通过时,关联主节点在所属的第二共识子网络中对获取到的第一主节点发送的区块关联数据进行上链;关联主节点是指K个第二主节点中除目标主节点之外的第二主节点;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。
可选的,共识模块21在共识主网络中对第一共识子网络中待上链的业务区块进行共识的方式,包括:
获取第一主节点发送的共识数据和区块签名;共识数据包括业务区块的区块头以及业务区块中的业务数据的哈希值;区块签名是由第一主节点基于所属的节点私钥对共识数据的哈希值进行加密得到;
基于第一主节点的节点公钥对区块签名进行解密,并将解密得到的哈希值确定为共识数据的真实哈希值;
对获取到的共识数据进行哈希运算,得到验证哈希值;
若验证哈希值与真实哈希值相同,则生成针对业务区块的共识通过信息;
当获取到关联主节点返回的针对业务区块的共识通过信息的数量大于信息数量阈值时,根据所生成的共识通过信息以及关联主节点所返回的共识通过信息确认在共识主网络中对业务区块共识通过;
当在共识主网络中对业务区块共识通过时,数据上链模块23将第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链的方式,包括:
当在共识主网络中对业务区块共识通过时,将共识数据和第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链。
可选的,上述装置2还用于:
当获取到针对业务区块的区块还原请求时,向关联主节点获取在关联主节点所属的第二共识子网络中上链的区块关联数据;
根据目标主节点所属的第二共识子网络中上链的区块关联数据以及向关联主节点获取到的区块关联数据还原得到初始业务区块,并获取初始业务区块中的业务数据的哈希值;
若初始业务区块中的业务数据的哈希值与所上链的共识数据中的业务数据的哈希值相同时,将初始业务区块确定为还原得到的业务区块。
根据本申请的一个实施例,图9所示的区块链网络的数据处理方法所涉及的步骤可由图11所示的区块链网络的数据处理装置1中的各个模块来执行。例如,图9中所示的步骤S201可由图11中的共识模块21来执行,图9中所示的步骤S202可由图11中的关联数据获取模块22来执行;图9中所示的步骤S203可由图11中的数据上链模块23来执行。
本申请当第一共识子网络包括待上链的业务区块时,第一主节点可以在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;对业务区块进行分块,得到业务区块的M个区块分块数据;根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。由此可见,本申请提出的装置各个第二主节点在对业务区块进行备份还原时,只需要存储该业务区块的区块关联数据,不用存储完整的业务区块,因此,减少了对业务区块进行备份还原时对各个第二主节点的存储资源的占用;并且,由于各个第二主节点只存储有业务区块的区块关联数据,一个第二主节点无法根据自己所存储的数据读取业务区块,因此,也保证了业务区块对于各个第二主节点的私密性。
根据本申请的一个实施例,图11所示的区块链网络的数据处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,区块链网络的数据处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图11中所示的区块链网络的数据处理装置1,以及来实现本申请实施例的区块链网络的数据处理方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
请参见图12,图12是本申请提供的一种计算机设备的结构示意图。如图12所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图12所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
当第一共识子网络包括待上链的业务区块时,在共识主网络中对业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
对业务区块进行分块,得到业务区块的M个区块分块数据;
根据M个区块分块数据获取业务区块的N个区块冗余数据;M个区块分块数据和N个区块冗余数据构成业务区块的关联集合,关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;
将关联集合中的区块关联数据分别发送至每个第二主节点,以使每个第二主节点在共识主网络中对业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。
可选的,处理器1001还可以用于调用存储器1005中存储的设备控制应用程序,以实现:
在共识主网络中对第一共识子网络的待上链的业务区块进行共识;共识主网络包括第一主节点和K个第二主节点;
获取第一主节点发送的针对业务区块的区块关联数据;业务区块的关联集合包括M+N个区块关联数据,M+N个区块关联数据包括对业务区块进行分块后的M个区块分块数据以及通过M个区块分块数据获取到的业务区块的N个区块冗余数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;关联集合中的区块关联数据由第一主节点分别发送至K个第二主节点;
当在共识主网络中对业务区块共识通过时,将第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链;当在共识主网络中对业务区块共识通过时,关联主节点在所属的第二共识子网络中对获取到的第一主节点发送的区块关联数据进行上链;关联主节点是指K个第二主节点中除目标主节点之外的第二主节点;每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对业务区块进行备份还原。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3或图9对应实施例中对上述区块链网络的数据处理方法的描述,也可执行前文图10所对应实施例中对上述区块链网络的数据处理装置1的描述、以及前文图11所对应实施例中对上述区块链网络的数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的区块链网络的数据处理装置1和区块链网络的数据处理装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3或图9所对应实施例中对区块链网络的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
上述计算机可读存储介质可以是前述任一实施例提供的区块链网络的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3或图9对应实施例中对上述区块链网络的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种区块链网络的数据处理方法,其特征在于,所述区块链网络包括第一共识子网络和K个第二共识子网络,K为正整数,所述第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;所述方法由所述第一主节点执行,所述方法包括:
当所述第一共识子网络包括待上链的业务区块时,在共识主网络中对所述业务区块进行共识;所述共识主网络包括所述第一主节点和K个第二主节点;
对所述业务区块进行分块,得到所述业务区块的M个区块分块数据;
根据所述M个区块分块数据获取所述业务区块的N个区块冗余数据;所述M个区块分块数据和所述N个区块冗余数据构成所述业务区块的关联集合,所述关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;
将所述关联集合中的区块关联数据分别发送至每个第二主节点,以使所述每个第二主节点在所述共识主网络中对所述业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;所述每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对所述业务区块进行备份还原。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取业务节点发送的业务数据,并将所述业务数据打包为目标区块;
在所述第一共识子网络中对所述目标区块进行共识,在所述目标区块共识通过后,将所述目标区块确定为待上链的所述业务区块。
3.根据权利要求1所述的方法,其特征在于,所述当所述第一共识子网络包括待上链的业务区块时,在共识主网络中对所述业务区块进行共识,包括:
当所述第一共识子网络包括待上链的所述业务区块时,向所述共识主网络广播针对所述业务区块的区块上链请求;
在所述共识主网络中对所述区块上链请求进行共识;
当所述区块上链请求共识通过时,在所述共识主网络中对所述业务区块进行共识。
4.根据权利要求1所述的方法,其特征在于,所述当所述第一共识子网络包括待上链的业务区块时,在共识主网络中对所述业务区块进行共识,包括:
当所述第一共识子网络包括待上链的所述业务区块时,将所述业务区块的区块头以及所述业务区块所包含的业务数据的哈希值确定为共识数据;
基于所述第一主节点的节点私钥对所述共识数据进行签名,得到针对所述业务区块的区块签名;
在所述共识主网络中广播所述共识数据以及所述区块签名,以使所述每个第二主节点根据所述共识数据和所述区块签名对所述业务区块进行共识。
5.根据权利要求1所述的方法,其特征在于,所述业务区块包括Z个字段数据,Z为正整数;
所述对所述业务区块进行分块,得到所述业务区块的M个区块分块数据,包括:
获取区块冗余数量N,并根据所述区块冗余数量N和所述K个第二主节点的节点总数量K确定区块分块数量M;M和N之和等于K;
根据所述区块分块数量M对所述Z个字段数据进行分块,得到所述M个区块分块数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述M个区块分块数据获取所述业务区块的N个区块冗余数据,包括:
将所述M个区块分块数据确定为冗余计算数据,并获取N种冗余算法;
根据所述N种冗余算法中的每种冗余算法分别对所述冗余计算数据进行计算,得到所述N个区块冗余数据。
7.根据权利要求5所述的方法,其特征在于,所述获取区块冗余数量N,包括:
获取所述共识主网络的网络稳定等级,并将所述共识主网络的网络稳定等级确定为目标稳定等级;
获取冗余数量映射表;所述冗余数量映射表包括至少两种网络稳定等级与对应的冗余数量之间的映射关系;所述至少两种网络稳定等级包含所述目标稳定等级;
将所述冗余数量映射表中与所述目标稳定等级具有所述映射关系的冗余数量确定为所述区块冗余数量N。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当在所述共识主网络中对所述业务区块共识通过时,将所述业务区块在所述第一共识子网络中进行上链;
所述方法还包括:
当检测到在所述第一共识子网络中所上链的所述业务区块缺失时,向所述共识主网络中的第二主节点获取针对所述业务数据的区块关联数据;
根据所述共识主网络中的第二主节点所返回的区块关联数据,还原得到所述业务区块。
9.一种区块链网络的数据处理方法,其特征在于,所述区块链网络包括第一共识子网络和K个第二共识子网络,K为正整数,所述第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;所述方法由K个第二主节点中的目标主节点执行,所述方法包括:
在共识主网络中对所述第一共识子网络的待上链的业务区块进行共识;所述共识主网络包括所述第一主节点和所述K个第二主节点;
获取所述第一主节点发送的针对所述业务区块的区块关联数据;所述业务区块的关联集合包括M+N个区块关联数据,M+N个区块关联数据包括对所述业务区块进行分块后的M个区块分块数据以及通过所述M个区块分块数据获取到的所述业务区块的N个区块冗余数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;所述关联集合中的区块关联数据由所述第一主节点分别发送至所述K个第二主节点;
当在所述共识主网络中对所述业务区块共识通过时,将所述第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链;当在所述共识主网络中对所述业务区块共识通过时,关联主节点在所属的第二共识子网络中对获取到的所述第一主节点发送的区块关联数据进行上链;所述关联主节点是指所述K个第二主节点中除所述目标主节点之外的第二主节点;所述每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对所述业务区块进行备份还原。
10.根据权利要求9所述的方法,其特征在于,所述在共识主网络中对所述第一共识子网络中待上链的业务区块进行共识,包括:
获取所述第一主节点发送的共识数据和区块签名;所述共识数据包括所述业务区块的区块头以及所述业务区块中的业务数据的哈希值;所述区块签名是由所述第一主节点基于所属的节点私钥对所述共识数据的哈希值进行加密得到;
基于所述第一主节点的节点公钥对所述区块签名进行解密,并将解密得到的哈希值确定为所述共识数据的真实哈希值;
对获取到的所述共识数据进行哈希运算,得到验证哈希值;
若所述验证哈希值与所述真实哈希值相同,则生成针对所述业务区块的共识通过信息;
当获取到所述关联主节点返回的针对所述业务区块的共识通过信息的数量大于信息数量阈值时,根据所生成的共识通过信息以及所述关联主节点所返回的共识通过信息确认在所述共识主网络中对所述业务区块共识通过;
所述当在所述共识主网络中对所述业务区块共识通过时,将所述第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链,包括:
当在所述共识主网络中对所述业务区块共识通过时,将所述共识数据和所述第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当获取到针对所述业务区块的区块还原请求时,向所述关联主节点获取在所述关联主节点所属的第二共识子网络中上链的区块关联数据;
根据所述目标主节点所属的第二共识子网络中上链的区块关联数据以及向所述关联主节点获取到的区块关联数据还原得到初始业务区块,并获取所述初始业务区块中的业务数据的哈希值;
若所述初始业务区块中的业务数据的哈希值与所上链的所述共识数据中的业务数据的哈希值相同时,将所述初始业务区块确定为还原得到的所述业务区块。
12.一种区块链网络的数据处理装置,其特征在于,所述区块链网络包括第一共识子网络和K个第二共识子网络,K为正整数,所述第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;所述装置应用于所述第一主节点,所述装置包括:
共识发起模块,用于当所述第一共识子网络包括待上链的业务区块时,在共识主网络中对所述业务区块进行共识;所述共识主网络包括所述第一主节点和K个第二主节点;
分块模块,用于对所述业务区块进行分块,得到所述业务区块的M个区块分块数据;
冗余获取模块,用于根据所述M个区块分块数据获取所述业务区块的N个区块冗余数据;所述M个区块分块数据和所述N个区块冗余数据构成所述业务区块的关联集合,所述关联集合包括M+N个区块关联数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;
数据发送模块,用于将所述关联集合中的区块关联数据分别发送至每个第二主节点,以使所述每个第二主节点在所述共识主网络中对所述业务区块共识通过后,在各自所属的第二共识子网络中对获取到的区块关联数据进行上链;所述每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对所述业务区块进行备份还原。
13.一种区块链网络的数据处理装置,其特征在于,所述区块链网络包括第一共识子网络和K个第二共识子网络,K为正整数,所述第一共识子网络包含第一主节点,每个第二共识子网络分别包含一个第二主节点;所述装置应用于K个第二主节点中的目标主节点,所述装置包括:
共识模块,用于在共识主网络中对所述第一共识子网络的待上链的业务区块进行共识;所述共识主网络包括所述第一主节点和所述K个第二主节点;
关联数据获取模块,用于获取所述第一主节点发送的针对所述业务区块的区块关联数据;所述业务区块的关联集合包括M+N个区块关联数据,M+N个区块关联数据包括对所述业务区块进行分块后的M个区块分块数据以及通过所述M个区块分块数据获取到的所述业务区块的N个区块冗余数据,一个区块关联数据是一个区块分块数据或一个区块冗余数据;所述关联集合中的区块关联数据由所述第一主节点分别发送至所述K个第二主节点;
数据上链模块,用于当在所述共识主网络中对所述业务区块共识通过时,将所述第一主节点发送的区块关联数据在所属的第二共识子网络中进行上链;当在所述共识主网络中对所述业务区块共识通过时,关联主节点在所属的第二共识子网络中对获取到的所述第一主节点发送的区块关联数据进行上链;所述关联主节点是指所述K个第二主节点中除所述目标主节点之外的第二主节点;所述每个第二主节点在各自所属的第二共识子网络中上链的区块关联数据用于对所述业务区块进行备份还原。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-11中任一项所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110645028.0A CN113254272B (zh) | 2021-06-09 | 2021-06-09 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110645028.0A CN113254272B (zh) | 2021-06-09 | 2021-06-09 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254272A true CN113254272A (zh) | 2021-08-13 |
CN113254272B CN113254272B (zh) | 2022-09-13 |
Family
ID=77187254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110645028.0A Active CN113254272B (zh) | 2021-06-09 | 2021-06-09 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254272B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626260A (zh) * | 2021-10-11 | 2021-11-09 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、设备及存储介质 |
CN114385761A (zh) * | 2022-03-23 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 一种基于共识系统的共识数据存储、获取方法及装置 |
CN114928622A (zh) * | 2022-05-07 | 2022-08-19 | 杭州复杂美科技有限公司 | 多子网区块链网络及其数据存储方法、设备和存储介质 |
CN115437852A (zh) * | 2022-11-07 | 2022-12-06 | 四川大学 | 一种基于灾备恢复和文件分区表的快速区块链系统及方法 |
CN116663068A (zh) * | 2023-07-31 | 2023-08-29 | 腾讯科技(深圳)有限公司 | 联盟链归档方法、相关装置和介质 |
WO2023221772A1 (zh) * | 2022-05-19 | 2023-11-23 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法及相关产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110852882A (zh) * | 2019-11-11 | 2020-02-28 | 北京众享比特科技有限公司 | 用于区块链网络的分组共识方法、装置、设备和介质 |
US20200076827A1 (en) * | 2018-09-04 | 2020-03-05 | Allen Gluck | Systems and methods for hybrid blockchain control |
CN110943838A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 区块链网络中确定区块的共识的方法、设备和存储介质 |
CN111600965A (zh) * | 2020-06-05 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN112118239A (zh) * | 2020-09-03 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 区块链共识方法及装置、电子设备、存储介质 |
US20210026844A1 (en) * | 2018-03-28 | 2021-01-28 | Nec Corporation | Virtual blockchain system, data management method, and program |
WO2021032138A1 (zh) * | 2019-08-20 | 2021-02-25 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
-
2021
- 2021-06-09 CN CN202110645028.0A patent/CN113254272B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210026844A1 (en) * | 2018-03-28 | 2021-01-28 | Nec Corporation | Virtual blockchain system, data management method, and program |
US20200076827A1 (en) * | 2018-09-04 | 2020-03-05 | Allen Gluck | Systems and methods for hybrid blockchain control |
CN110943838A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 区块链网络中确定区块的共识的方法、设备和存储介质 |
WO2021032138A1 (zh) * | 2019-08-20 | 2021-02-25 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
CN110852882A (zh) * | 2019-11-11 | 2020-02-28 | 北京众享比特科技有限公司 | 用于区块链网络的分组共识方法、装置、设备和介质 |
CN111600965A (zh) * | 2020-06-05 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN112118239A (zh) * | 2020-09-03 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 区块链共识方法及装置、电子设备、存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626260A (zh) * | 2021-10-11 | 2021-11-09 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、设备及存储介质 |
CN113626260B (zh) * | 2021-10-11 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、设备及存储介质 |
CN114385761A (zh) * | 2022-03-23 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 一种基于共识系统的共识数据存储、获取方法及装置 |
CN114928622A (zh) * | 2022-05-07 | 2022-08-19 | 杭州复杂美科技有限公司 | 多子网区块链网络及其数据存储方法、设备和存储介质 |
WO2023221772A1 (zh) * | 2022-05-19 | 2023-11-23 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法及相关产品 |
CN115437852A (zh) * | 2022-11-07 | 2022-12-06 | 四川大学 | 一种基于灾备恢复和文件分区表的快速区块链系统及方法 |
CN116663068A (zh) * | 2023-07-31 | 2023-08-29 | 腾讯科技(深圳)有限公司 | 联盟链归档方法、相关装置和介质 |
CN116663068B (zh) * | 2023-07-31 | 2023-12-29 | 腾讯科技(深圳)有限公司 | 联盟链归档方法、相关装置和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113254272B (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113254272B (zh) | 区块链网络的数据处理方法、装置、计算机设备和介质 | |
Zamani et al. | Rapidchain: Scaling blockchain via full sharding | |
CN111427957B (zh) | 区块链投票信息校验方法、装置、设备以及存储介质 | |
EP3394756B1 (en) | Method and system for byzantine fault - tolerance replicating of data | |
US20200145222A1 (en) | Optimal data storage configuration in a blockchain | |
US8656175B2 (en) | Secure processing device, secure processing method, encrypted confidential information embedding method, program, storage medium, and integrated circuit | |
CN111406252B (zh) | 基于纠错码的共享区块链数据存储的共识 | |
CN111417930B (zh) | 优先处理共享区块链数据存储 | |
CN108769264B (zh) | 一种区块链分域方法 | |
CN111373378B (zh) | 基于纠错码的共享区块链数据存储的数据安全性 | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
JP2021515271A (ja) | コンピュータにより実施される投票処理およびシステム | |
CN115348278A (zh) | 区块链的分布式存储方法 | |
CN111488134A (zh) | 基于区块链的公开随机数生成方法及设备 | |
CN111260475A (zh) | 一种数据处理方法、区块链节点设备及存储介质 | |
CN117251889B (zh) | 区块链共识方法、相关装置和介质 | |
CN114710504A (zh) | 区块链系统中共识节点的轮换方法、节点和区块链系统 | |
CN111818087A (zh) | 区块链的节点接入方法、装置、设备及可读存储介质 | |
CN112487091A (zh) | 一种确定区块链共识节点的方法及装置 | |
CN112165383A (zh) | 基于共享根密钥的加密方法、装置、设备及介质 | |
US20220114276A1 (en) | Controlling a data network with respect to a use of a distributed database | |
CN112565201B (zh) | 一种区块链中的私钥处理方法、装置及计算机存储介质 | |
CN111147477B (zh) | 一种基于区块链网络的验证方法及装置 | |
CN114679466B (zh) | 区块链网络的共识处理方法、装置、计算机设备和介质 | |
CN113901519A (zh) | 基于区块链的数据处理方法、装置、设备及介质 |
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 |