CN116205650A - 一种基于区块链的数据处理方法、设备以及可读存储介质 - Google Patents
一种基于区块链的数据处理方法、设备以及可读存储介质 Download PDFInfo
- Publication number
- CN116205650A CN116205650A CN202111459833.0A CN202111459833A CN116205650A CN 116205650 A CN116205650 A CN 116205650A CN 202111459833 A CN202111459833 A CN 202111459833A CN 116205650 A CN116205650 A CN 116205650A
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- target
- state
- 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 26
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 89
- 238000012795 verification Methods 0.000 claims description 73
- 230000002159 abnormal effect Effects 0.000 claims description 47
- 238000012163 sequencing technique Methods 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 11
- 238000012512 characterization method Methods 0.000 claims description 8
- 230000002547 anomalous effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/386—Payment protocols; Details thereof using messaging services or messaging apps
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- 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
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于区块链的数据处理方法、设备以及可读存储介质,该方法包括:获取状态消息对集合Xy;状态消息对集合Xy包括状态消息对Ab,状态消息对Ab包括共识节点Zb广播的第一状态消息Cb以及共识节点Zy生成的第二状态消息Cy;确定共识节点Zb在状态消息对Ab中的状态分值;根据状态消息对集合Xy中每个状态消息对分别对应的状态分值对共识节点进行排序,得到状态消息对集合Xy对应的节点排序结果;根据N个状态消息对集合分别对应的节点排序结果,确定N个共识节点分别对应的节点状态。采用本申请,可以准确识别节点状态以及提高区块链网络的吞吐量。本申请可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于区块链的数据处理方法、设备以及可读存储介质。
背景技术
随着网络技术的快速发展以及政府和企业对数据安全的重视,区块链得到了极大的应用。区块链网络中的节点可以包括共识节点以及同步节点,其中,共识节点参与记账共识,同步节点主要进行业务执行,不参与记账共识,通过身份认证的方式从共识节点中同步区块数据。
在由共识委员会中的共识节点轮流出块的共识算法中,如果当前轮值的出块节点发生故障,如与其它共识节点相比,出块节点落后很多个区块,或由于网络原因发送不出新块,共识算法为了维持活性,会在出块超时后,由下一个轮值的出块节点出块。上述方法虽然解决了活性,但是由于没有识别出异常共识节点,故再次轮到异常共识节点出块时,仍然会有一次超时,这种情况必然会降低区块链网络的吞吐量。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、设备以及可读存储介质,不仅可以提高识别节点状态的准确度,还可以提高区块链网络的吞吐量。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
目标共识节点获取N个共识节点分别对应的状态消息对集合;N为大于1的正整数;N个状态消息对集合包括共识节点Zy对应的状态消息对集合Xy;y为正整数且y小于或等于N;状态消息对集合Xy包括状态消息对Ab,状态消息对Ab包括共识节点Zb广播至共识网络的第一状态消息Cb,以及共识节点Zy针对第一状态消息Cb所生成的第二状态消息Cy;b为正整数且b小于或等于N;N个共识节点包括目标共识节点、共识节点Zb以及共识节点Zy;
确定共识节点Zb在状态消息对Ab中的状态分值;状态消息对Ab对应的状态分值用于表征,第一状态消息Cb以及第二状态消息Cy之间的状态差异;
根据状态消息对集合Xy中每个状态消息对分别对应的状态分值,对N个共识节点进行排序,得到状态消息对集合Xy对应的节点排序结果;
根据N个状态消息对集合分别对应的节点排序结果,确定N个共识节点分别对应的节点状态,在共识网络中删除节点状态为节点异常状态的共识节点。
本申请实施例一方面提供了一种基于区块链的数据处理装置,该基于区块链的数据处理装置运行于目标共识节点,包括:
第一获取模块,用于获取N个共识节点分别对应的状态消息对集合;N为大于1的正整数;N个状态消息对集合包括共识节点Zy对应的状态消息对集合Xy;y为正整数且y小于或等于N;所述状态消息对集合Xy包括状态消息对Ab,所述状态消息对Ab包括共识节点Zb广播至共识网络的第一状态消息Cb,以及所述共识节点Zy针对所述第一状态消息Cb所生成的第二状态消息Cy;b为正整数且b小于或等于N;所述N个共识节点包括所述目标共识节点、所述共识节点Zb以及所述共识节点Zy;
第一确定模块,用于确定所述共识节点Zb在所述状态消息对Ab中的状态分值;所述状态消息对Ab对应的状态分值用于表征,所述第一状态消息Cb以及所述第二状态消息Cy之间的状态差异;
排序节点模块,用于根据所述状态消息对集合Xy中每个状态消息对分别对应的状态分值,对所述N个共识节点进行排序,得到所述状态消息对集合Xy对应的节点排序结果;
第二确定模块,用于根据所述N个状态消息对集合分别对应的节点排序结果,确定所述N个共识节点分别对应的节点状态,在所述共识网络中删除所述节点状态为节点异常状态的共识节点。
其中,第一获取模块,包括:
第一获取单元,用于目标共识节点获取共识节点Ze在系统时间达到状态校验周期时所广播的第一状态消息Ce;共识节点Ze属于N-1个共识节点;N-1个共识节点包括N个共识节点中除了目标共识节点之外的共识节点;第一状态消息Ce包括共识节点Ze对应的节点签名Ie;e为正整数且e小于或等于N-1;
第二获取单元,用于获取共识节点Ze对应的节点公钥,基于共识节点Ze对应的节点公钥对节点签名Ie进行验签,得到第一验签结果;
第一生成单元,用于根据第一验签结果,生成针对共识节点Ze的状态消息对;
第二生成单元,用于根据N-1个共识节点分别对应的状态消息对,生成目标状态消息对集合;
第一确定单元,用于获取N-1个共识节点分别广播的状态消息对集合,将N-1个状态消息对集合以及目标状态消息对集合,确定为N个状态消息对集合。
其中,第一状态消息Ce还包括共识节点Ze的节点标识、共识节点Ze对应的区块高度Ge,以及区块高度Ge对应的区块哈希;
第一生成单元,包括:
第一获取子单元,用于当第一验签结果为验签成功结果时,获取目标区块高度;目标区块高度是指目标共识节点对应的区块高度;
第一生成子单元,用于基于目标区块高度以及区块高度Ge,生成第一状态消息Ce对应的第二状态消息Fe;
第二生成子单元,用于将第一状态消息Ce以及第二状态消息Fe组合成针对共识节点Ze的待签名状态消息对;
第三生成子单元,用于基于目标节点私钥对待签名状态消息对进行签名,得到共识节点Ze对应的携带第一消息签名的状态消息对;目标节点私钥是指目标共识节点对应的节点私钥。
其中,第一生成子单元,具体用于获取目标节点标识;目标节点标识是指目标共识节点对应的节点标识;
第一生成子单元,还具体用于将目标区块高度以及区块高度Ge进行对比;
第一生成子单元,还具体用于若目标区块高度等于或大于区块高度Ge,则将第一区块对应的区块哈希确定为目标区块哈希,基于目标节点标识、目标区块高度以及目标区块哈希,生成第一状态消息Ce对应的第二状态消息Fe;第一区块对应的区块高度等于区块高度Ge;第一区块属于目标共识节点对应的账本中的区块;
第一生成子单元,还具体用于若目标区块高度小于区块高度Ge,则将第二区块对应的区块哈希确定为目标区块哈希,基于目标节点标识、目标区块高度以及目标区块哈希,生成第一状态消息Ce对应的第二状态消息Fe;第二区块对应的区块高度等于目标区块高度;第二区块属于目标共识节点对应的账本中的区块。
其中,状态消息对Ab还包括针对第一状态消息Cb以及第二状态消息Cy的第二消息签名;第一状态消息Cb包括针对共识节点Zb的第一区块高度,以及针对共识节点Zb的与第一区块高度相关联的第一区块哈希;第二状态消息Cy包括针对共识节点Zy的第二区块高度,以及针对共识节点Zy的与第一区块高度相关联的第二区块哈希;
第一确定模块,包括:
第三获取单元,用于调用治理共识委员会合约,通过治理共识委员会合约获取共识节点Zy的节点公钥;
第三生成单元,用于基于共识节点Zy的节点公钥对第二消息签名进行验签,得到第二验签结果;
第一对比单元,用于当第二验签结果为验签成功结果时,对第一区块高度以及第二区块高度进行对比;
第二确定单元,用于若第一区块高度大于第二区块高度,则将第一目标数值确定为共识节点Zb在状态消息对Ab中的状态分值;第一目标数值用于表征第一区块高度大于第二区块高度;
第三确定单元,用于若第一区块高度等于或小于第二区块高度,则根据第一区块高度、第二区块高度、第一区块哈希以及第二区块哈希,确定共识节点Zb在状态消息对Ab中的状态分值。
其中,第三确定单元,包括:
对比哈希子单元,用于对第一区块哈希以及第二区块哈希进行对比;
第一确定子单元,用于若第一区块哈希以及第二区块哈希不相同,则将第二目标数值确定为共识节点Zb在状态消息对Ab中的状态分值;第二目标数值小于第一目标数值,且第二目标数值用于表征第一区块哈希属于异常数据;
第二确定子单元,用于若第一区块哈希以及第二区块哈希相同,则将第一区块高度以及第二区块高度之间的区块高度差值,确定为共识节点Zb在状态消息对Ab中的状态分值;区块高度差值大于第一目标数值。
其中,第三生成单元,包括:
第四生成子单元,用于基于共识节点Zy的节点公钥对第二消息签名进行解密,得到第一数字摘要;
第二获取子单元,用于获取第一状态消息Cb以及第二状态消息Cy的第二数字摘要,将第一数字摘要以及第二数字摘要进行对比;
第三确定子单元,用于若第一数字摘要以及第二数字摘要相同,则确定第二验签结果为验签成功结果;
第四确定子单元,用于若第一数字摘要以及第二数字摘要不同,则确定第二验签结果为验签失败结果。
其中,N个状态消息对集合分别对应的节点排序结果包括节点排序结果Hj,j为正整数且j小于或等于N;
第二确定模块,包括:
第四获取单元,用于从节点排序结果Hj中按序获取S个连续位置上分别对应的共识节点,作为待识别共识节点;S为大于1的正整数且S小于N;
统计数量单元,用于在N个节点排序结果中,统计在S个连续位置上具有相同的待识别共识节点的节点排序结果的数量,作为目标数量;
第二对比单元,用于获取最大的目标数量,将最大的目标数量与数量阈值进行对比,得到对比结果;
第四确定单元,用于根据对比结果确定N个共识节点分别对应的节点状态。
其中,第四确定单元,包括:
第五确定子单元,用于若对比结果为最大的目标数量等于或大于数量阈值,则将最大的目标数量对应的待识别共识节点的节点状态确定为节点正常状态;
第六确定子单元,用于将N个共识节点中除了最大的目标数量对应的待识别共识节点之外的共识节点,确定为剩余共识节点;
第七确定子单元,用于根据剩余共识节点在目标节点排序结果中的状态分值,确定剩余共识节点的节点状态;目标节点排序结果为最大的目标数量对应的节点排序结果。
其中,第七确定子单元,具体用于将剩余共识节点在目标节点排序结果中的状态分值与状态分值阈值进行对比;
第七确定子单元,还具体用于若剩余共识节点在目标节点排序结果中的状态分值小于或等于状态分值阈值,则确定剩余共识节点的节点状态为节点异常状态;
第七确定子单元,还具体用于若剩余共识节点在目标节点排序结果中的状态分值大于状态分值阈值,则确定剩余共识节点的节点状态为节点正常状态。
其中,基于区块链的数据处理装置,还包括:
第二获取模块,用于获取目标节点标识、待校验区块高度以及待校验区块哈希;目标节点标识是指目标共识节点对应的节点标识;待校验区块高度是指目标共识节点在系统时间达到状态校验周期时所对应的区块高度;待校验区块哈希对应的区块高度等于待校验区块高度,待校验区块哈希对应的区块属于目标账本中的区块;目标账本是指目标共识节点对应的账本;
签名消息模块,用于基于目标节点私钥对目标节点标识、待校验区块高度以及待校验区块哈希进行签名,得到携带第三消息签名的第一状态消息;目标节点私钥是指目标共识节点对应的节点私钥;
广播消息模块,用于将携带第三消息签名的第一状态消息广播至共识网络。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以使得计算机设备执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中的方法。
在本申请实施例中,目标共识节点通过第一状态消息以及第二状态消息之间的状态差异,可以确定广播第一状态消息的共识节点在状态消息对中的状态分值;进一步地,根据该状态分值,可以对包括该状态消息对的状态消息对集合中的共识节点进行排序,故可以得到该状态消息对集合对应的节点排序结果;进一步地,通过N个状态消息对集合分别对应的节点排序结果,可以确定N个共识节点分别对应的节点状态;进一步地,在共识网络中删除节点状态为节点异常状态的共识节点。上述可知,本申请实施例是基于N个节点排序结果,确定N个共识节点的节点状态,故可以提高识别节点状态的准确度,此外,通过删除节点状态为节点异常状态的共识节点,可以避免异常共识节点(即节点状态为节点异常状态的共识节点)作为出块节点,即以正常共识节点(即节点状态为节点正常状态的共识节点)作为出块节点,故可以提高区块链网络的吞吐量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种系统架构示意图;
图2是本申请实施例提供的一种数据处理的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
图5是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
图6是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
图7是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,首先对部分名词进行以下简单解释:
1、区块链:狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。
2、区块链节点:区块链网络将节点区分为共识节点(也可以称作核心节点)以及同步节点(可以包括数据节点以及轻节点)。其中,共识节点负责区块链全网的共识业务;同步节点负责同步共识节点的账本信息,即同步最新的区块数据。无论是共识节点还是同步节点,其内部构造都包括网络通信组件,因为区块链网络本质是一个点对点(Peer to Peer,P2P)网络,需通过P2P组件与区块链网络中的其他节点进行通信。区块链网络中的资源和服务都分散在各个节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间环节或中心化的服务器(第三方)介入。
3、公钥(public key)与私钥(private key):公钥与私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密数据、验证数字签名等。通过这种算法能够确保得到的密钥对是唯一的,使用这种密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密,例如,用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
4、区块(block):是在区块链网络上承载交易数据的数据包,是一种被标记上时间戳和前继区块对应的哈希值的数据结构,区块经过网络的共识机制验证并确认区块中的交易。区块包括区块头(Block Header)以及区块体(Block Body),区块头可以记录当前区块的元信息,包含当前版本号、前继区块对应的哈希值、时间戳、随机数、默克尔树根(MerkleRoot)的哈希值等数据。区块体可以记录一段时间内所生成的详细数据,包括当前区块经过验证的、区块创建过程中生成的所有交易记录或是其他信息,可以理解为账本的一种表现形式。
5、哈希值:也称作信息特征值或特征值,哈希值是通过哈希算法将任意长度的输入数据转换为密码并进行固定输出而生成的,不能通过解密哈希值来检索原始输入数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的哈希值,前继区块被称为当前区块的父区块。哈希值是区块链技术中的潜力核心基础和最重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。
6、智能合约(Smart Contract):是一种旨在以信息化方式传播、验证或执行合同的计算机协议。在区块链系统当中,智能合约(简称合约)是一种区块链各节点可以理解并执行的代码,可以执行任意逻辑并得到结果。在实际应用中,智能合约通过区块链上的交易来管理与试用。每条交易相当于对区块链系统的一个远程过程调用(Remote ProcedureCall,RPC)请求。如果说智能合约相当于可执行程序,区块链就相当于提供运行环境的操作系统。区块链可以包含多个合约,以合约账号(Identity,ID)、标识号或名称来区分。下文叙述的治理共识委员会合约是本申请实施例提供的一个智能合约,其用于管理共识节点,可以包括记录共识节点的节点状态,动态地加入共识节点,剔除异常共识节点等。
请参见图1,图1是本申请实施例提供的一种系统架构示意图。如图1所示,该系统架构可以为区块链网络,其中,区块链网络可以包括共识网络101以及同步网络102;同步网络102中的节点可以称为同步节点,同步节点主要进行业务执行,不参与记账共识,通过身份认证的方式从共识网络101中获得区块数据。共识网络101也可以称作核心网络,共识网络101中的节点可以称为共识节点,共识节点拥有全量数据。其中,共识网络101和同步网络102可以处在不同网络环境下,通常来说,共识网络101处于私有网络中,而同步网络102处于共有网络中,二者通过路由边界进行交互。
可以理解的是,上述共识网络101可以包括一个或者多个共识节点,这里将不对共识节点的数量进行限制。请再参见图1,共识网络101可以包括共识节点1011、共识节点1012、...、共识节点1013。
可以理解的是,上述同步网络102可以包括一个或者多个同步节点,这里将不对同步节点的数量进行限制。请再参见图1,同步网络102可以包括同步节点1021、同步节点1022、同步节点1023、...、同步节点1024以及同步节点1025。
每个节点(包括共识网络101中的共识节点以及同步网络102中的同步节点)在进行正常工作时,可以接收到客户端发送的交易数据,并基于接收到的交易数据生成区块,然后进行区块上链处理。可以理解的是,在本申请的具体实施方式中,涉及到用户信息(例如节点公钥)等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
为了保证各个节点之间的数据互通,每个节点之间可以存在数据连接,例如共识节点1011与共识节点1012之间存在数据连接,共识节点1011与共识节点1013之间存在数据连接,同步节点1021与同步节点1023之间存在数据连接等等。进一步地,共识网络101与同步网络102之间存在数据连接,例如共识节点1011与同步节点1022之间存在数据连接,共识节点1012与同步节点1023之间存在数据连接等等。
可以理解的是,节点之间可以通过上述数据连接进行数据或者区块传输。上述节点之间的数据连接可以基于节点标识,对于区块链网络中的每个节点,均具有与其对应的节点标识,而且上述每个节点均可以存储与自身有相连关系的其他节点的节点标识,以便后续根据其他节点的节点标识,将获取到的数据或生成的区块广播至其他节点,例如共识节点1011可以维护一个节点标识列表,该节点标识列表保存着其他节点的节点名称和节点标识,如表1所示。
表1
其中,节点标识可为网络之间互联的协议(Internet Protocol,IP)地址以及其他任意一种能够用于标识区块链网络中节点的信息,表1中仅以IP地址为例进行说明。
假设共识节点1011的节点标识为117.116.156.425,则共识节点1011可以通过节点标识117.114.151.183,向同步节点1021发送数据同步请求,且同步节点1021通过节点标识117.116.156.425,可以知道该数据同步请求是共识节点1011所发送的;同理,同步节点1023可以通过节点标识117.116.156.425,向共识节点1011发送交易数据A,且共识节点1011通过节点标识119.250.485.362,可以知道该交易数据A是同步节点1023所发送的,其他节点之间的数据传输亦如此,故不再一一进行赘述。
可以理解的是,上述的数据连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
可以理解的是,图1中的区块链网络中的区块链节点包括但不限于终端设备或服务器。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。其中,终端设备和服务器可以通过有线或无线方式进行直接或间接地连接,本申请实施例对此不做限制。
为了便于叙述以及理解,本申请将区块高度为P的区块命名为区块P,并将区块高度为P叙述为区块高度P,P为正整数。例如将区块高度为1的区块命名为区块1,将区块高度为1叙述成区块高度1;将区块高度为98的区块命名为区块98,将区块高度为98叙述成区块高度98,其他区块高度对应的区块命名亦如此,此处不再一一进行赘述。
进一步地,请参见图2,图2是本申请实施例提供的一种数据处理的场景示意图。其中,目标共识节点20a可以为共识网络中的任意一个共识节点;本申请实施例为了便于叙述以及理解,将N示例为4,即共识网络中包含4个共识节点,如图2所示例的共识节点Z1、共识节点Z2、共识节点Z3以及共识节点Z4;可以理解的是,若N等于其他数值,可以按照下文描述确定N个共识节点分别对应的节点状态。
如图2所示,目标共识节点20a获取4个共识节点分别生成的状态消息对集合,包括共识节点Z1生成的状态消息对集合X1,共识节点Z2生成的状态消息对集合X2,共识节点Z3生成的状态消息对集合X3,以及共识节点Z4生成的状态消息对集合X4。其中,状态消息对集合X1包括3个状态消息对,分别为状态消息对(C21,C12),状态消息对(C31,C12)以及状态消息对(C41,C13);为了便于叙述以及理解,状态消息对中的第一项元素可以表征在系统时间达到状态校验周期时,广播至共识网络中的第一状态消息,且该第一项元素中的第二个字符可以表征生成并广播该第一状态消息的共识节点;状态消息对中的第二项元素可以表征针对第一状态消息所生成的第二状态消息,且该第二项元素中的第二个字符可以表征生成该第二状态消息,以及根据第一状态消息以及第二状态消息生成该状态消息对的共识节点;例如状态消息对(C21,C12)中的第一项元素可以表示由共识节点Z2所生成并进行广播的第一状态消息C21,第二项元素可以表示共识节点Z1针对第一状态消息C21所生成的第二状态消息C12,第二项元素中的第二个字符(即1),可以表明状态消息对(C21,C12)由共识节点Z1生成;例如状态消息对(C41,C13)中的第一项元素可以表示由共识节点Z4所生成并进行广播的第一状态消息C41,第二项元素可以表示共识节点Z1针对第一状态消息C41所生成的第二状态消息C13,第二项元素中的第二个字符(即1),可以表明状态消息对(C41,C13)由共识节点Z1生成。
请再参见图2,状态消息对集合X2包括3个状态消息对,分别为状态消息对(C11,C23),状态消息对(C31,C23)以及状态消息对(C41,C23),其中,状态消息对(C11,C23)中的第一项元素可以表示由共识节点Z1所生成并进行广播的第一状态消息C11,第二项元素可以表示共识节点Z2针对第一状态消息C11所生成的第二状态消息C23,第二项元素中的第二个字符(即2),可以表明状态消息对(C11,C23)由共识节点Z2生成;其它状态消息对的含义可以根据上文的描述理解,不进行一一赘述。
请再参见图2,状态消息对集合X3包括3个状态消息对,分别为状态消息对(C11,C31),状态消息对(C21,C31)以及状态消息对(C41,C31);状态消息对集合X4包括3个状态消息对,分别为状态消息对(C11,C42),状态消息对(C21,C42)以及状态消息对(C31,C42)。
本申请实施例是以共识节点接收第一状态消息的当前状态生成第二状态消息,故针对同一个共识节点,其所生成的第二状态消息可以相同(因为处于相同的状态中),例如图2中所示例的共识节点Z2,其针对第一状态消息C11、第一状态消息C31以及第一状态消息C41,基于相同的当前状态生成相同的第二状态消息C23;可选的,针对同一个共识节点,其所生成的第二状态消息可以不相同(因为处于不同的状态中),例如共识节点Z1,其针对第一状态消息C21所生成的第二状态消息C12,不同于其针对第一状态消息C41所生成的第二状态消息C13,比如共识节点Z1是在最大区块高度为区块高度2的状态中获取到共识节点Z2广播的第一状态消息C21,而获取到共识节点Z4广播的第一状态消息C41时,其最大区块高度为区块高度3。
可以理解的是,在健康的区块链网络中,由于共识网络在正常地执行出块任务,故共识节点生成第二状态消息时所对应的最大区块高度,应等于或大于生成第一状态消息时所对应的最大区块高度,例如图2中的共识节点Z2生成第二状态消息C23时,其最大区块高度等于区块高度3,共识节点Z2生成第一状态消息C21时,其最大区块高度等于区块高度1。
可选的,本申请实施例不限定共识节点生成第二状态消息的时间,除了上述所示例的,还可以以共识节点在系统时间达到状态校验周期时的状态生成第二状态消息,此时,同一个共识节点针对不同的共识节点所广播的第一状态消息,其生成相同的第二状态消息。除此之外,可以根据实际的应用场景,设定共识节点生成第二状态消息的条件,包括但不限于基于获取到第一个第一状态消息的当前状态生成第二状态消息、基于获取到特定共识节点(预先设定的共识节点)所广播的第一状态消息的当前状态生成第二状态消息,基于获取到最后一个第一状态消息的当前状态生成第二状态消息。
请再参见图2,若目标共识节点20a为共识节点Z1,则状态消息对集合X1是目标共识节点20a在获取到共识节点Z2广播的第一状态消息C21、共识节点Z3广播的第一状态消息C31、共识节点Z4广播的第一状态消息C41之后,所生成的,而剩余状态消息对集合是剩余共识节点广播至共识网络中,目标共识节点20a从共识网络中获取的,例如共识节点Z2生成状态消息对集合X2,并将其广播至共识网络。
目标共识节点20a获取到状态消息对集合后,调用治理共识委员会合约,通过治理共识委员会合约执行获取到的状态消息对集合,得到共识节点在状态消息对中的状态分值;本申请实施例不限定执行状态消息对集合的先后顺序,例如目标共识节点20a可以对先获取到的状态消息对集合运行治理共识委员会合约,得到该状态消息对集合对应的节点排序结果;也可以在获取到预设数量的状态消息对集合后,运行治理共识委员会合约,得到节点排序结果。
目标共识节点20a通过运行治理共识委员会合约,首先确定广播第一状态消息的共识节点在状态消息对中的状态分值,如图2所示,目标共识节点20a调用治理共识委员会合约,执行状态消息对集合X1,确定第一状态消息C21以及第二状态消息C12之间的状态差异为1,故可以确定共识节点Z2在状态消息对(C21,C12)中的状态分值为-1,对应地,确定共识节点Z1在状态消息对(C21,C12)中的状态分值为0;目标共识节点20a确定第一状态消息C31以及第二状态消息C12之间的状态差异为999,故可以确定共识节点Z3在状态消息对(C31,C12)中的状态分值为-999,对应地,确定共识节点Z1在状态消息对(C31,C12)中的状态分值为0;目标共识节点20a确定第一状态消息C41以及第二状态消息C13之间的状态差异为3,故可以确定共识节点Z4在状态消息对(C41,C13)中的状态分值为-3,对应地,确定共识节点Z1在状态消息对(C41,C13)中的状态分值为0;则目标共识节点20a可以得到状态消息对集合X1中的每个状态消息对分别对应的状态分值,如图2所示例的状态分值列表201c;进一步地,通过运行治理共识委员会合约,目标共识节点20a可以根据状态分值列表201a,对4个共识节点进行排序,本申请实施例是以降序排序示例,故得到状态消息对集合X1对应的节点排序结果201d,即共识节点Z1排在第一个位置,共识节点Z2排在第二个位置,共识节点Z4排在第三个位置,共识节点Z3排在第四个位置。本申请实施例不对第一状态消息以及第二状态消息之间的状态差异的确定展开描述,请参见下文图3所对应的实施例中步骤S102中的描述。
可以理解的是,在实际应用中,目标共识节点20a可以根据状态消息对集合中每个状态消息对分别对应的状态分值,对N个共识节点进行升序排序,还可以是按照其他序列方式进行排序,本申请对此不做限定。
同理,通过治理共识委员会合约,目标共识节点20a可以确定共识节点Z1在状态消息对(C11,C23)中的状态分值为-2,共识节点Z3在状态消息对(C31,C23)中的状态分值为-999,共识节点Z4在状态消息对(C41,C23)中的状态分值为-3,共识节点Z2在状态消息对集合X2中的状态分值为0,如图2所示例的状态分值列表202c;按照每个共识节点在状态消息对集合X2中分别对应的状态分值,对4个共识节点进行排序,得到状态消息对集合X2对应的节点排序结果202d,即共识节点Z2排在第一个位置,共识节点Z1排在第二个位置,共识节点Z4排在第三个位置,共识节点Z3排在第四个位置。
同理,通过治理共识委员会合约,目标共识节点20a可以确定共识节点Z1在状态消息对(C11,C31)中的状态分值为-1,共识节点Z2在状态消息对(C21,C31)中的状态分值为-1,共识节点Z4在状态消息对(C41,C31)中的状态分值为-2,共识节点Z3在状态消息对集合X3中的状态分值为0,如图2所示例的状态分值列表203c;按照每个共识节点在状态消息对集合X3中分别对应的状态分值,对4个共识节点进行排序,得到状态消息对集合X3对应的节点排序结果203d,即共识节点Z3排在第一个位置,共识节点Z1以及共识节点Z2并列排在第二个位置,共识节点Z4排在第三个位置。
同理,通过治理共识委员会合约,目标共识节点20a可以确定共识节点Z1在状态消息对(C11,C42)中的状态分值为0,共识节点Z2在状态消息对(C21,C42)中的状态分值为0,共识节点Z3在状态消息对(C31,C42)中的状态分值为-99,共识节点Z4在状态消息对集合X4中的状态分值为0,如图2所示例的状态分值列表204c;按照每个共识节点在状态消息对集合X4中分别对应的状态分值,对4个共识节点进行排序,得到状态消息对集合X4对应的节点排序结果204d,即共识节点Z4、共识节点Z1以及共识节点Z2并列排在第一个位置,共识节点Z3排在第二个位置。
进一步地,目标共识节点20a根据N个(本申请实施例示例为4个)状态消息对集合分别对应的节点排序结果,如本申请实施例示例的节点排序结果201d、节点排序结果202d、节点排序结果203d,以及节点排序结果204d,可以确定上述4个共识节点分别对应的节点状态,明显地,在4个节点排序结果中,共识节点Z3有3次排在末尾,且共识节点Z3在状态分值列表201c、状态分值列表202c、状态分值列表204c中的状态分值均很低,此处可以根据实际应用场景设定一个状态分值阈值,若共识节点Z3对应的3个状态分值中存在小于状态分值阈值的状态分值,则可以确定共识节点Z3的节点状态为节点异常状态。由于共识节点Z1、共识节点Z2以及共识节点Z4排序位置靠前,且不存在小于状态分值阈值的状态分值,故可以确定共识节点Z1、共识节点Z2以及共识节点Z4分别对应的节点状态均为节点正常状态。后续,目标共识节点20a可以在共识网络中删除节点状态为节点异常状态的共识节点,或取消其出块功能,例如图2所示例的共识节点Z3。
前述可知,区块链网络包括共识网络和同步网络,但共识网络中的共识节点不是固定不变的,存在动态增删的情况,例如共识网络确定某个共识节点的节点状态为节点异常状态,则可以确定该共识节点为异常共识节点,此时可以删除异常共识节点。此外,共识网络的共识过程可以划分为共识周期,其中,每一个共识周期由部分区块链节点(即当前共识周期的共识节点)参与共识,其他区块链节点作为同步节点,当当前共识周期所生成的区块高度满足共识节点切换条件时,将重新选出下一个共识周期的共识节点,以参与下一个共识周期的共识业务。
综上所述,共识节点周期广播第一状态消息至共识网络,在收到其它共识节点广播的第一状态消息时,对比其他共识节点的第一状态消息以及自身的第二状态消息,从而可以检测出节点状态为节点异常状态的共识节点;在多数共识节点均确定某个共识节点为异常共识节点时,则可以在共识网络中删除异常共识节点,后续,当该删除的共识节点恢复节点正常状态时,可以再次将其增加到共识网络中,故可以包括共识网络中的节点均为健康节点。故采用本申请,可以提高识别节点状态的准确度,此外,通过删除节点状态为节点异常状态的共识节点,还可以避免作恶节点伪造信息,提高了区块链网络的安全性。
进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。目标共识节点可以为共识网络中的任意一个共识节点,如图3所示,该数据处理方法至少可以包括以下步骤S101-步骤S104。
步骤S101,目标共识节点获取N个共识节点分别对应的状态消息对集合;N为大于1的正整数;N个状态消息对集合包括共识节点Zy对应的状态消息对集合Xy;y为正整数且y小于或等于N;状态消息对集合Xy包括状态消息对Ab,状态消息对Ab包括共识节点Zb广播至共识网络的第一状态消息Cb,以及共识节点Zy针对第一状态消息Cb所生成的第二状态消息Cy;b为正整数且b小于或等于N;N个共识节点包括目标共识节点、共识节点Zb以及共识节点Zy。
具体的,目标共识节点获取共识节点Ze在系统时间达到状态校验周期时所广播的第一状态消息Ce;共识节点Ze属于N-1个共识节点;N-1个共识节点包括N个共识节点中除了目标共识节点之外的共识节点;第一状态消息Ce包括共识节点Ze对应的节点签名Ie;e为正整数且e小于或等于N-1;获取共识节点Ze对应的节点公钥,基于共识节点Ze对应的节点公钥对节点签名Ie进行验签,得到第一验签结果;根据第一验签结果,生成针对共识节点Ze的状态消息对;根据N-1个共识节点分别对应的状态消息对,生成目标状态消息对集合;获取N-1个共识节点分别广播的状态消息对集合,将N-1个状态消息对集合以及目标状态消息对集合,确定为N个状态消息对集合。
其中,第一状态消息Ce还包括共识节点Ze的节点标识、共识节点Ze对应的区块高度Ge,以及区块高度Ge对应的区块哈希;根据第一验签结果,生成针对共识节点Ze的状态消息对的具体过程可以包括:当第一验签结果为验签成功结果时,获取目标区块高度;目标区块高度是指目标共识节点对应的区块高度;基于目标区块高度以及区块高度Ge,生成第一状态消息Ce对应的第二状态消息Fe;将第一状态消息Ce以及第二状态消息Fe组合成针对共识节点Ze的待签名状态消息对;基于目标节点私钥对待签名状态消息对进行签名,得到共识节点Ze对应的携带第一消息签名的状态消息对;目标节点私钥是指目标共识节点对应的节点私钥。
其中,生成第一状态消息Ce对应的第二状态消息Fe的具体过程可以包括:获取目标节点标识;目标节点标识是指目标共识节点对应的节点标识;将目标区块高度以及区块高度Ge进行对比;若目标区块高度等于或大于区块高度Ge,则将第一区块对应的区块哈希确定为目标区块哈希,基于目标节点标识、目标区块高度以及目标区块哈希,生成第一状态消息Ce对应的第二状态消息Fe;第一区块对应的区块高度等于区块高度Ge;第一区块属于目标共识节点对应的账本中的区块;若目标区块高度小于区块高度Ge,则将第二区块对应的区块哈希确定为目标区块哈希,基于目标节点标识、目标区块高度以及目标区块哈希,生成第一状态消息Ce对应的第二状态消息Fe;第二区块对应的区块高度等于目标区块高度;第二区块属于目标共识节点对应的账本中的区块。
当系统时间达到状态校验周期时,共识网络中的每个共识节点均基于自身状态,生成第一状态消息,为了便于叙述以及理解,本申请实施例以N=4示例,即共识网络包括4个共识节点,请一并参见图4,图4是本申请实施例提供的一种基于区块链的数据处理的场景示意图。4个共识节点分别包括图4所示例的共识节点Z1、共识节点Z2、共识节点Z3以及共识节点Z4,可以理解的是,若无特别说明,本申请中的图2、图4以及下文描述的标号,若为相同的标号,则表示同一对象。
在本申请实施例中,假设目标共识节点为共识节点Z2。如图4所示,共识节点Z2获取共识节点Z1在系统时间达到状态校验周期时所广播的第一状态消息30a,该第一状态消息30a可以等同于图2中的第一状态消息C11,其包括共识节点Z1的节点标识(如图4所示例的标识1),共识节点Z1在系统时间达到状态校验周期时的最大区块高度(图4缩写为块高G1,即最大区块高度为区块高度G1),最大区块高度对应的区块哈希(图4缩写为块哈希1),以及节点签名(如图4所示例的签名I1)。
共识节点Z2获取到第一状态消息30a后,获取共识节点Z1的节点公钥30b,基于节点公钥30b对签名I1进行验签,得到第一验签结果,若第一验签结果为验签失败结果,则共识节点Z2可以确定共识节点Z1不是对标识1、块高G1以及块哈希1进行签名的节点,此时拒绝第一状态消息30a;若第一验签结果为验签成功结果,则将账本中的最大区块高度作为目标区块高度,图4缩写为目标块高。
进一步地,共识节点Z2将目标区块高度与第一状态消息30a中的块高G1进行对比,若目标区块高度大于或等于块高G1,则共识节点Z2可以从账本中获取块高G1对应的区块哈希,将其作为目标块哈希,此时,将目标节点标识(图4缩写为目标标识)、账本中块高G1对应的区块哈希,以及目标区块高度生成第二状态消息30c(等同于图2中的第二状态消息C23);进一步,共识节点Z2将第一状态消息30a以及第二状态消息30c组成待签名状态消息对,基于目标节点私钥30d对待签名状态消息对进行签名,得到携带第一消息签名的状态消息对(C11,23)。
若目标区块高度小于块高G1,此时,共识节点Z2不能确认块哈希1的合法性,故从账本中获取目标区块高度对应的区块哈希,将其作为目标块哈希,将目标节点标识、账本中目标区块高度对应的区块哈希,以及目标区块高度生成第二状态消息30c;后续过程与上文一致,故此处不进行赘述,请参见上文。
可以理解的是,图4是以共识节点Z1示例广播第一状态消息,按照上文的描述,共识节点Z2可以根据共识节点Z3广播的第一状态消息C31,生成第二状态消息C23,并生成状态消息对(C31,C23);同理,可以根据共识节点Z4广播的第一状态消息C41,生成第二状态消息C23,并生成状态消息对(C41,C23);如图4所示,共识节点Z2将3个共识节点分别对应的状态消息对组成目标状态消息对集合,即图4中的状态消息对集合X2,并将目标状态消息对集合广播至共识网络中。
同理,共识节点Z2可以获取共识节点Z1、共识节点Z3以及共识节点Z4分别广播的状态消息对集合,如图2所示例的状态消息对集合X1、状态消息对集合X3以及状态消息对集合X4,故可以获取N个(本申请示例N=4)状态消息对集合。
步骤S102,确定共识节点Zb在状态消息对Ab中的状态分值;状态消息对Ab对应的状态分值用于表征,第一状态消息Cb以及第二状态消息Cy之间的状态差异。
具体的,状态消息对Ab还包括针对第一状态消息Cb以及第二状态消息Cy的第二消息签名;第一状态消息Cb包括针对共识节点Zb的第一区块高度,以及针对共识节点Zb的与第一区块高度相关联的第一区块哈希;第二状态消息Cy包括针对共识节点Zy的第二区块高度,以及针对共识节点Zy的与第一区块高度相关联的第二区块哈希;调用治理共识委员会合约,通过治理共识委员会合约获取共识节点Zy的节点公钥;基于共识节点Zy的节点公钥对第二消息签名进行验签,得到第二验签结果;当第二验签结果为验签成功结果时,对第一区块高度以及第二区块高度进行对比;若第一区块高度大于第二区块高度,则将第一目标数值确定为共识节点Zb在状态消息对Ab中的状态分值;第一目标数值用于表征第一区块高度大于第二区块高度;若第一区块高度等于或小于第二区块高度,则根据第一区块高度、第二区块高度、第一区块哈希以及第二区块哈希,确定共识节点Zb在状态消息对Ab中的状态分值。
其中,确定共识节点Zb在状态消息对Ab中的状态分值的具体过程可以包括:对第一区块哈希以及第二区块哈希进行对比;若第一区块哈希以及第二区块哈希不相同,则将第二目标数值确定为共识节点Zb在状态消息对Ab中的状态分值;第二目标数值小于第一目标数值,且第二目标数值用于表征第一区块哈希属于异常数据;若第一区块哈希以及第二区块哈希相同,则将第一区块高度以及第二区块高度之间的区块高度差值,确定为共识节点Zb在状态消息对Ab中的状态分值;区块高度差值大于第一目标数值。
其中,基于共识节点Zy的节点公钥对第二消息签名进行验签,得到第二验签结果的具体过程可以包括:基于共识节点Zy的节点公钥对第二消息签名进行解密,得到第一数字摘要;获取第一状态消息Cb以及第二状态消息Cy的第二数字摘要,将第一数字摘要以及第二数字摘要进行对比;若第一数字摘要以及第二数字摘要相同,则确定第二验签结果为验签成功结果;若第一数字摘要以及第二数字摘要不同,则确定第二验签结果为验签失败结果。
为了便于理解,本申请实施例以状态消息对集合X1为例进行叙述,生成其它状态消息对集合中的每个状态消息对分别对应的状态分值,请参照下文的描述,不一一进行赘述。请一并参见图4以及图5,图5是本申请实施例提供的一种基于区块链的数据处理的场景示意图。如图5所示,状态消息对集合X1包括3个状态消息对,分别为状态消息对(C21,C12,第二消息签名1),状态消息对(C31,C12,第二消息签名2),以及状态消息对(C41,C13,第二消息签名3),其中,第二消息签名1用于目标共识节点20a确认共识节点Z1的身份,还可以确认第一状态消息C21以及第二状态消息C12的合法性;同理,第二消息签名2用于目标共识节点20a确认共识节点Z1的身份,还可以确认第一状态消息C31以及第二状态消息C12的合法性;第二消息签名3用于目标共识节点20a确认共识节点Z1的身份,还可以确认第一状态消息C41以及第二状态消息C13的合法性。
目标共识节点20调用治理共识委员会合约,通过治理共识委员会合约获取生成状态消息对集合X1的共识节点的节点公钥,即共识节点Z1的节点公钥30b,同理,为了便于叙述,此处以状态消息对(C21,C12,第二消息签名1)示例第二验签结果,其他状态消息对对应的第二验签结果可以参照下文的描述。目标共识节点20a基于节点公钥30b对第二消息签名1进行解密,得到第二消息签名1对应的第一数字摘要;进一步,基于哈希算法获取第一状态消息C21以及第二状态消息C12的第二数字摘要,将第二消息签名1对应的第一数字摘要,与第二数字摘要进行对比;若两个数字摘要相同,则确定第二验签结果为验签成功结果;若第一数字摘要以及第二数字摘要不同,则确定第二验签结果为验签失败结果。
若第二验签结果为验签失败结果,目标共识节点20a可以确定状态消息对(C21,C12,第二消息签名1)为伪造数据,将删除该状态消息对;若第二验签结果为验签成功结果,则对第一状态消息C21中的第一区块高度以及第二状态消息C12中的第二区块高度进行对比,若第一区块高度大于第二区块高度,即广播第一状态消息C21的共识节点Z2的账本中的最大区块高度大于,接收第一状态消息C21的共识节点Z1的账本中的最大区块高度(即第二区块高度),此时,目标共识节点20a无法根据第二状态消息C12,确定第一状态消息C21的合法性,故将第一目标数值确定为共识节点Z2在状态消息对(C21,C12,第二消息签名1)中的状态分值,可以理解的是,该第一目标数值可以根据实际应用场景进行设定,本申请实施例对此不作限定,只需第一目标数值对应的绝对值大于N,以保证第一目标数值小于最小的区块高度差值。
若第一区块高度小于或等于第二区块高度,即共识节点Z1在获取到第一状态消息C21时,账本中的最大区块高度(即第二区块高度)大于或等于第一区块高度(为共识节点Z2在系统时间达到状态校验周期时,账本中的最大区块高度),故共识节点Z1账本中的区块可以校验共识节点Z2账本中的区块,如图5所示,针对状态消息对(C21,C12,第二消息签名1),收集节点V(获取第一状态消息C21的节点)为共识节点Z1,上报节点W(即广播第一状态消息C21的节点)为共识节点Z2,第一区块高度为10,第二区块高度为11,故区块高度差值为1,第一区块哈希等于块哈希10,第二区块哈希等于块哈希10,故两个区块哈希相同,此时根据区块高度差值确定共识节点Z2以及共识节点Z1分别在状态消息对(C21,C12,第二消息签名1)中的状态分值,为了便于排序,将收集节点的状态分值取0,则共识节点Z2在状态消息对(C21,C12,第二消息签名1)中的状态分值等于-1。
请再参见图5,针对状态消息对(C31,C12,第二消息签名2),收集节点V为共识节点Z1,上报节点W为共识节点Z3,第一区块高度为11,第二区块高度为11,故区块高度差值为0,第一区块哈希等于块哈希10,第二区块哈希等于块哈希11,显然两个区块哈希不相同,则基于第二状态消息确定第一状态消息为异常状态消息,故目标共识节点20a确定共识节点Z3在状态消息对(C31,C12,第二消息签名1)中的状态分值等于第二目标数值,该第二目标数值可以表明第一区块哈希属于异常数据,可以理解的是,第二目标数值可以根据实际应用场景进行设定,本申请实施例对此不作限定,只需第二目标数值远小于第一目标数值,图5中以-999示例第二目标数值。
针对状态消息对(C41,C13,第二消息签名3),收集节点V为共识节点Z1,上报节点W为共识节点Z4,第一区块高度为9,第二区块高度为12,故区块高度差值为3,第一区块哈希等于块哈希9,第二区块哈希等于块哈希9,故两个区块哈希相同,此时,目标共识节点20a根据区块高度差值,确定共识节点Z4在状态消息对(C41,C13,第二消息签名3)中的状态分值为-3。
步骤S103,根据状态消息对集合Xy中每个状态消息对分别对应的状态分值,对N个共识节点进行排序,得到状态消息对集合Xy对应的节点排序结果。
具体的,结合步骤S102,目标共识节点20a可以得到状态消息对集合X1对应的状态分值列表201c,进一步地,可以根据每个共识节点分别对应的状态分值,对4个共识节点进行排序,如图5所示,若进行降序排序,则得到节点排序结果201d。
本申请采用计分排序,可以保证正确性及公平性,进而可以保证区块链网络流畅出块,故可以提高系统的性能及吞吐量。
步骤S104,根据N个状态消息对集合分别对应的节点排序结果,确定N个共识节点分别对应的节点状态,在共识网络中删除节点状态为节点异常状态的共识节点。
具体的,N个状态消息对集合分别对应的节点排序结果包括节点排序结果Hj,j为正整数且j小于或等于N;从节点排序结果Hj中按序获取S个连续位置上分别对应的共识节点,作为待识别共识节点;S为大于1的正整数且S小于N;在N个节点排序结果中,统计在S个连续位置上具有相同的待识别共识节点的节点排序结果的数量,作为目标数量;获取最大的目标数量,将最大的目标数量与数量阈值进行对比,得到对比结果;根据对比结果确定N个共识节点分别对应的节点状态。
其中,根据对比结果确定N个共识节点分别对应的节点状态的具体过程可以包括:若对比结果为最大的目标数量等于或大于数量阈值,则将最大的目标数量对应的待识别共识节点的节点状态确定为节点正常状态;将N个共识节点中除了最大的目标数量对应的待识别共识节点之外的共识节点,确定为剩余共识节点;根据剩余共识节点在目标节点排序结果中的状态分值,确定剩余共识节点的节点状态;目标节点排序结果为最大的目标数量对应的节点排序结果。
其中,根据剩余共识节点在目标节点排序结果中的状态分值,确定剩余共识节点的节点状态的具体过程可以包括:将剩余共识节点在目标节点排序结果中的状态分值与状态分值阈值进行对比;若剩余共识节点在目标节点排序结果中的状态分值小于或等于状态分值阈值,则确定剩余共识节点的节点状态为节点异常状态;若剩余共识节点在目标节点排序结果中的状态分值大于状态分值阈值,则确定剩余共识节点的节点状态为节点正常状态。
为了便于叙述以及理解,本申请实施例将N示例为4。请一并参见图6,图6是本申请实施例提供的一种基于区块链的数据处理的场景示意图。如图6所示,目标共识节点获取到4个状态消息对集合分别对应的节点排序结果,包括图6中的节点排序结果601b、节点排序结果602b、节点排序结果603b以及节点排序结果604b;假设本申请实施例是以降序对共识节点进行排序,则共识节点对应的位置越靠前,共识节点对应的状态分值越大;其中,节点排序结果601b中的排序顺序为共识节点1,共识节点2,共识节点4,共识节点3;节点排序结果602b中的排序顺序为共识节点2,共识节点1,共识节点4,共识节点3;节点排序结果603b中的排序顺序为共识节点3,共识节点2,共识节点1,共识节点4;节点排序结果604b中的排序顺序为共识节点4,共识节点1,共识节点2,共识节点3。
目标共识节点从节点排序结果601b中按序获取S个连续位置上分别对应的共识节点,作为待识别共识节点,可以理解的是,S可以根据实际应用场景进行设定,本申请对此不作限定,本申请实施例设定S=2,则目标共识节点从节点排序结果601b中获取前两个位置上分别对应的共识节点(其状态分值大于后面的共识节点的状态分值),故可以得到包括共识节点1以及共识节点2的待识别共识节点601a;从节点排序结果602b中获取前两个位置上分别对应的共识节点,故可以得到包括共识节点2以及共识节点1的待识别共识节点602a;从节点排序结果603b中获取前两个位置上分别对应的共识节点,故可以得到包括共识节点3以及共识节点2的待识别共识节点603a;从节点排序结果604b中获取前两个位置上分别对应的共识节点,故可以得到包括共识节点4以及共识节点1的待识别共识节点604a。
在4个待识别共识节点中,目标共识节点统计相同的待识别共识节点的数量,即在4个节点排序结果中,统计在2个连续位置上具有相同的待识别共识节点的节点排序结果的数量,根据图6所示例的,可以确认待识别共识节点601a以及待识别共识节点602a是相同的待识别共识节点,而待识别共识节点603a与其他待识别共识节点不相同,待识别共识节点604a与其他待识别共识节点不相同,则得到3个目标数量,分别为2(待识别共识节点601a与待识别共识节点602a相同)、1(可以表示待识别共识节点603a对应的数量)、1(可以表示待识别共识节点604a对应的数量)。
请再参见图6,目标共识节点获取最大的目标数量,即2,将最大的目标数量与数量阈值进行对比,若数量阈值大于2,则对比结果为最大的目标数量小于数量阈值,此时,目标共识节点确定此次的节点排序无效;若数量阈值等于2,则对比结果为最大的目标数量等于数量阈值,则可以确定待识别共识节点601a的节点状态为节点正常状态,即共识节点1以及共识节点2分别对应的节点状态均为节点正常状态。可以理解的是,数量阈值应当根据实际应用场景进行设定,本申请实施例仅为了理解设定为2。
目标共识节点将待识别共识节点601a以及待识别共识节点602a分别对应的节点排序结果,确定为目标节点排序结果,如图6中的节点排序结果601b以及节点排序结果602b。目标共识节点将N个共识节点中除了最大的目标数量对应的待识别共识节点之外的共识节点,确定为剩余共识节点,例如图6中的共识节点3以及共识节点4为剩余共识节点,目标共识节点获取共识节点3以及共识节点4分别在节点排序结果601b中的状态分值,例如图6中的状态分值601c,其表明共识节点4的状态分值等于-2,共识节点3的状态分值等于-5;同理,目标共识节点获取共识节点3以及共识节点4分别在节点排序结果602b中的状态分值,例如图6中的状态分值602c,其表明共识节点4的状态分值等于-1,共识节点3的状态分值等于-5。
进一步地,目标共识节点将共识节点3对应的两个状态分值(即-5)分别与状态分值阈值进行对比,明显地,两个状态分值均小于状态分值阈值(图6示例为-2),则可以确定共识节点3的节点状态为节点异常状态;同样地,目标共识节点将共识节点4对应的两个状态分值(即-2以及-1)分别与状态分值阈值进行对比,其中,在节点排序结果601b中的状态分值(即-2)等于状态分值阈值,在节点排序结果602b中的状态分值(即-1)大于状态分值阈值,此时,可以确定共识节点4的节点状态为节点异常状态。可以理解的是,状态分值阈值可以根据实际应用场景进行设定,本申请实施例对此不做限定
可选的,在确定最大的目标数量等于或大于数量阈值时,针对目标节点排序结果,目标共识节点可以将位于目标位置上的共识节点的节点状态确定为节点正常状态,其中,目标位置可以根据实际应用场景进行设定,其对应的状态分值大于剩余位置对应的状态分值,剩余位置是指目标节点排序结果中除了目标位置之外的位置,以图6示例,已知最大的目标数量(即2)等于数量阈值,则可以将目标位置上的共识节点对应的节点状态确定为节点正常状态,例如目标位置为前3个位置,即目标共识节点确定节点排序结果601b中的共识节点1、共识节点2以及共识节点3分别对应的节点状态为节点正常状态,剩余位置为第4个位置,此时需要按照上述方法确定剩余位置上的共识节点的节点状态。
若按照升序对4个共识节点进行排序,则与上文描述对应相反理解即可,故不进行赘述。
在本申请实施例中,目标共识节点通过第一状态消息以及第二状态消息之间的状态差异,可以确定广播第一状态消息的共识节点在状态消息对中的状态分值;进一步地,根据该状态分值,可以对包括该状态消息对的状态消息对集合中的共识节点进行排序,故可以得到该状态消息对集合对应的节点排序结果;进一步地,通过N个状态消息对集合分别对应的节点排序结果,可以确定N个共识节点分别对应的节点状态;进一步地,在共识网络中删除节点状态为节点异常状态的共识节点。上述可知,本申请实施例是基于N个节点排序结果,确定N个共识节点的节点状态,故可以提高识别节点状态的准确度,此外,通过删除节点状态为节点异常状态的共识节点,可以避免异常共识节点(即节点状态为节点异常状态的共识节点)作为出块节点,即以正常共识节点(即节点状态为节点正常状态的共识节点)作为出块节点,故可以提高区块链网络的吞吐量。
进一步地,请参见图7,图7是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。目标共识节点可以为共识网络中的任意一个共识节点,如图7所示,该方法至少可以包括以下步骤。
步骤S201,获取目标节点标识、待校验区块高度以及待校验区块哈希;目标节点标识是指目标共识节点对应的节点标识;待校验区块高度是指目标共识节点在系统时间达到状态校验周期时所对应的区块高度;待校验区块哈希对应的区块高度等于待校验区块高度,待校验区块哈希对应的区块属于目标账本中的区块;目标账本是指目标共识节点对应的账本。
步骤S202,基于目标节点私钥对目标节点标识、待校验区块高度以及待校验区块哈希进行签名,得到携带第三消息签名的第一状态消息;目标节点私钥是指目标共识节点对应的节点私钥。
步骤S203,将携带第三消息签名的第一状态消息广播至共识网络。
具体的,结合步骤S201-步骤S203叙述,当系统时间达到状态校验周期时,共识网络中的每个共识节点均基于自身状态,生成第一状态消息,其中,自身状态可以包括目标节点标识、待校验区块高度以及待校验区块哈希;此外,基于目标节点私钥对待广播的状态数据进行签名,得到携带第三小学签名的第一状态消息,然后将携带第三消息签名的第一状态消息广播至共识网络。
步骤S204,目标共识节点获取N个共识节点分别对应的状态消息对集合;N为大于1的正整数;N个状态消息对集合包括共识节点Zy对应的状态消息对集合Xy;y为正整数且y小于或等于N;状态消息对集合Xy包括状态消息对Ab,状态消息对Ab包括共识节点Zb广播至共识网络的第一状态消息Cb,以及共识节点Zy针对第一状态消息Cb所生成的第二状态消息Cy;b为正整数且b小于或等于N;N个共识节点包括目标共识节点、共识节点Zb以及共识节点Zy。
步骤S205,确定共识节点Zb在状态消息对Ab中的状态分值;状态消息对Ab对应的状态分值用于表征,第一状态消息Cb以及第二状态消息Cy之间的状态差异。
步骤S206,根据状态消息对集合Xy中每个状态消息对分别对应的状态分值,对N个共识节点进行排序,得到状态消息对集合Xy对应的节点排序结果。
步骤S207,根据N个状态消息对集合分别对应的节点排序结果,确定N个共识节点分别对应的节点状态,在共识网络中删除节点状态为节点异常状态的共识节点。
其中,步骤S204-步骤S207的具体实现过程,请参见上文图3所对应的实施例中的步骤S101-步骤S103,此处不进行赘述。
在本申请实施例中,目标共识节点通过第一状态消息以及第二状态消息之间的状态差异,可以确定广播第一状态消息的共识节点在状态消息对中的状态分值;进一步地,根据该状态分值,可以对包括该状态消息对的状态消息对集合中的共识节点进行排序,故可以得到该状态消息对集合对应的节点排序结果;进一步地,通过N个状态消息对集合分别对应的节点排序结果,可以确定N个共识节点分别对应的节点状态;进一步地,在共识网络中删除节点状态为节点异常状态的共识节点。上述可知,本申请实施例是基于N个节点排序结果,确定N个共识节点的节点状态,故可以提高识别节点状态的准确度,此外,通过删除节点状态为节点异常状态的共识节点,可以避免异常共识节点(即节点状态为节点异常状态的共识节点)作为出块节点,即以正常共识节点(即节点状态为节点正常状态的共识节点)作为出块节点,故可以提高区块链网络的吞吐量。
进一步地,请参见图8,图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。上述基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该基于区块链的数据处理装置1可以包括:第一获取模块11、第一确定模块12、排序节点模块13以及第二确定模块14。
第一获取模块11,用于获取N个共识节点分别对应的状态消息对集合;N为大于1的正整数;N个状态消息对集合包括共识节点Zy对应的状态消息对集合Xy;y为正整数且y小于或等于N;所述状态消息对集合Xy包括状态消息对Ab,所述状态消息对Ab包括共识节点Zb广播至共识网络的第一状态消息Cb,以及所述共识节点Zy针对所述第一状态消息Cb所生成的第二状态消息Cy;b为正整数且b小于或等于N;所述N个共识节点包括所述目标共识节点、所述共识节点Zb以及所述共识节点Zy;
第一确定模块12,用于确定所述共识节点Zb在所述状态消息对Ab中的状态分值;所述状态消息对Ab对应的状态分值用于表征,所述第一状态消息Cb以及所述第二状态消息Cy之间的状态差异;
排序节点模块13,用于根据所述状态消息对集合Xy中每个状态消息对分别对应的状态分值,对所述N个共识节点进行排序,得到所述状态消息对集合Xy对应的节点排序结果;
第二确定模块14,用于根据所述N个状态消息对集合分别对应的节点排序结果,确定所述N个共识节点分别对应的节点状态,在所述共识网络中删除所述节点状态为节点异常状态的共识节点。
其中,第一获取模块11、第一确定模块12、排序节点模块13以及第二确定模块14的具体功能实现方式可以参见上述图3对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
再请参见图8,第一获取模块11可以包括:第一获取单元111、第二获取单元112、第一生成单元113、第二生成单元114以及第一确定单元115。
第一获取单元111,用于目标共识节点获取共识节点Ze在系统时间达到状态校验周期时所广播的第一状态消息Ce;共识节点Ze属于N-1个共识节点;N-1个共识节点包括N个共识节点中除了目标共识节点之外的共识节点;第一状态消息Ce包括共识节点Ze对应的节点签名Ie;e为正整数且e小于或等于N-1;
第二获取单元112,用于获取共识节点Ze对应的节点公钥,基于共识节点Ze对应的节点公钥对节点签名Ie进行验签,得到第一验签结果;
第一生成单元113,用于根据第一验签结果,生成针对共识节点Ze的状态消息对;
第二生成单元114,用于根据N-1个共识节点分别对应的状态消息对,生成目标状态消息对集合;
第一确定单元115,用于获取N-1个共识节点分别广播的状态消息对集合,将N-1个状态消息对集合以及目标状态消息对集合,确定为N个状态消息对集合。
其中,第一获取单元111、第二获取单元112、第一生成单元113、第二生成单元114以及第一确定单元115的具体功能实现方式可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图8,第一状态消息Ce还包括共识节点Ze的节点标识、共识节点Ze对应的区块高度Ge,以及区块高度Ge对应的区块哈希;
第一生成单元113可以包括:第一获取子单元1131、第一生成子单元1132、第二生成子单元1133以及第三生成子单元1134。
第一获取子单元1131,用于当第一验签结果为验签成功结果时,获取目标区块高度;目标区块高度是指目标共识节点对应的区块高度;
第一生成子单元1132,用于基于目标区块高度以及区块高度Ge,生成第一状态消息Ce对应的第二状态消息Fe;
第二生成子单元1133,用于将第一状态消息Ce以及第二状态消息Fe组合成针对共识节点Ze的待签名状态消息对;
第三生成子单元1134,用于基于目标节点私钥对待签名状态消息对进行签名,得到共识节点Ze对应的携带第一消息签名的状态消息对;目标节点私钥是指目标共识节点对应的节点私钥。
其中,第一获取子单元1131、第一生成子单元1132、第二生成子单元1133以及第三生成子单元1134的具体功能实现方式可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图8,第一生成子单元1132,具体用于获取目标节点标识;目标节点标识是指目标共识节点对应的节点标识;
第一生成子单元1132,还具体用于将目标区块高度以及区块高度Ge进行对比;
第一生成子单元1132,还具体用于若目标区块高度等于或大于区块高度Ge,则将第一区块对应的区块哈希确定为目标区块哈希,基于目标节点标识、目标区块高度以及目标区块哈希,生成第一状态消息Ce对应的第二状态消息Fe;第一区块对应的区块高度等于区块高度Ge;第一区块属于目标共识节点对应的账本中的区块;
第一生成子单元1132,还具体用于若目标区块高度小于区块高度Ge,则将第二区块对应的区块哈希确定为目标区块哈希,基于目标节点标识、目标区块高度以及目标区块哈希,生成第一状态消息Ce对应的第二状态消息Fe;第二区块对应的区块高度等于目标区块高度;第二区块属于目标共识节点对应的账本中的区块。
其中,第一生成子单元1132的具体功能实现方式可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图8,状态消息对Ab还包括针对第一状态消息Cb以及第二状态消息Cy的第二消息签名;第一状态消息Cb包括针对共识节点Zb的第一区块高度,以及针对共识节点Zb的与第一区块高度相关联的第一区块哈希;第二状态消息Cy包括针对共识节点Zy的第二区块高度,以及针对共识节点Zy的与第一区块高度相关联的第二区块哈希;
第一确定模块12可以包括:第三获取单元121、第三生成单元122、第一对比单元123、第二确定单元124以及第三确定单元125。
第三获取单元121,用于调用治理共识委员会合约,通过治理共识委员会合约获取共识节点Zy的节点公钥;
第三生成单元122,用于基于共识节点Zy的节点公钥对第二消息签名进行验签,得到第二验签结果;
第一对比单元123,用于当第二验签结果为验签成功结果时,对第一区块高度以及第二区块高度进行对比;
第二确定单元124,用于若第一区块高度大于第二区块高度,则将第一目标数值确定为共识节点Zb在状态消息对Ab中的状态分值;第一目标数值用于表征第一区块高度大于第二区块高度;
第三确定单元125,用于若第一区块高度等于或小于第二区块高度,则根据第一区块高度、第二区块高度、第一区块哈希以及第二区块哈希,确定共识节点Zb在状态消息对Ab中的状态分值。
其中,第三获取单元121、第三生成单元122、第一对比单元123、第二确定单元124以及第三确定单元125的具体功能实现方式可以参见上述图3对应实施例中的步骤S102,这里不再进行赘述。
再请参见图8,第三确定单元125可以包括:对比哈希子单元1251、第一确定子单元1252以及第二确定子单元1253。
对比哈希子单元1251,用于对第一区块哈希以及第二区块哈希进行对比;
第一确定子单元1252,用于若第一区块哈希以及第二区块哈希不相同,则将第二目标数值确定为共识节点Zb在状态消息对Ab中的状态分值;第二目标数值小于第一目标数值,且第二目标数值用于表征第一区块哈希属于异常数据;
第二确定子单元1253,用于若第一区块哈希以及第二区块哈希相同,则将第一区块高度以及第二区块高度之间的区块高度差值,确定为共识节点Zb在状态消息对Ab中的状态分值;区块高度差值大于第一目标数值。
其中,对比哈希子单元1251、第一确定子单元1252以及第二确定子单元1253的具体功能实现方式可以参见上述图3对应实施例中的步骤S102,这里不再进行赘述。
再请参见图8,第三生成单元122可以包括:第四生成子单元1221、第二获取子单元1222、第三确定子单元1223以及第四确定子单元1224。
第四生成子单元1221,用于基于共识节点Zy的节点公钥对第二消息签名进行解密,得到第一数字摘要;
第二获取子单元1222,用于获取第一状态消息Cb以及第二状态消息Cy的第二数字摘要,将第一数字摘要以及第二数字摘要进行对比;
第三确定子单元1223,用于若第一数字摘要以及第二数字摘要相同,则确定第二验签结果为验签成功结果;
第四确定子单元1224,用于若第一数字摘要以及第二数字摘要不同,则确定第二验签结果为验签失败结果。
其中,第四生成子单元1221、第二获取子单元1222、第三确定子单元1223以及第四确定子单元1224的具体功能实现方式可以参见上述图3对应实施例中的步骤S102,这里不再进行赘述。
再请参见图8,N个状态消息对集合分别对应的节点排序结果包括节点排序结果Hj,j为正整数且j小于或等于N;
第二确定模块14可以包括:第四获取单元141、统计数量单元142、第二对比单元143以及第四确定单元144。
第四获取单元141,用于从节点排序结果Hj中按序获取S个连续位置上分别对应的共识节点,作为待识别共识节点;S为大于1的正整数且S小于N;
统计数量单元142,用于在N个节点排序结果中,统计在S个连续位置上具有相同的待识别共识节点的节点排序结果的数量,作为目标数量;
第二对比单元143,用于获取最大的目标数量,将最大的目标数量与数量阈值进行对比,得到对比结果;
第四确定单元144,用于根据对比结果确定N个共识节点分别对应的节点状态。
其中,第四获取单元141、统计数量单元142、第二对比单元143以及第四确定单元144的具体功能实现方式可以参见上述图3对应实施例中的步骤S104,这里不再进行赘述。
再请参见图8,第四确定单元144可以包括:第五确定子单元1441、第六确定子单元1442以及第七确定子单元1443。
第五确定子单元1441,用于若对比结果为最大的目标数量等于或大于数量阈值,则将最大的目标数量对应的待识别共识节点的节点状态确定为节点正常状态;
第六确定子单元1442,用于将N个共识节点中除了最大的目标数量对应的待识别共识节点之外的共识节点,确定为剩余共识节点;
第七确定子单元1443,用于根据剩余共识节点在目标节点排序结果中的状态分值,确定剩余共识节点的节点状态;目标节点排序结果为最大的目标数量对应的节点排序结果。
其中,第五确定子单元1441、第六确定子单元1442以及第七确定子单元1443的具体功能实现方式可以参见上述图3对应实施例中的步骤S104,这里不再进行赘述。
再请参见图8,第七确定子单元1443,具体用于将剩余共识节点在目标节点排序结果中的状态分值与状态分值阈值进行对比;
第七确定子单元,还具体用于若剩余共识节点在目标节点排序结果中的状态分值小于或等于状态分值阈值,则确定剩余共识节点的节点状态为节点异常状态;
第七确定子单元1443,还具体用于若剩余共识节点在目标节点排序结果中的状态分值大于状态分值阈值,则确定剩余共识节点的节点状态为节点正常状态。
其中,第七确定子单元1443的具体功能实现方式可以参见上述图3对应实施例中的步骤S104,这里不再进行赘述。
再请参见图8,基于区块链的数据处理装置1还可以包括:第二获取模块15、签名消息模块16以及广播消息模块17。
第二获取模块15,用于获取目标节点标识、待校验区块高度以及待校验区块哈希;目标节点标识是指目标共识节点对应的节点标识;待校验区块高度是指目标共识节点在系统时间达到状态校验周期时所对应的区块高度;待校验区块哈希对应的区块高度等于待校验区块高度,待校验区块哈希对应的区块属于目标账本中的区块;目标账本是指目标共识节点对应的账本;
签名消息模块16,用于基于目标节点私钥对目标节点标识、待校验区块高度以及待校验区块哈希进行签名,得到携带第三消息签名的第一状态消息;目标节点私钥是指目标共识节点对应的节点私钥;
广播消息模块17,用于将携带第三消息签名的第一状态消息广播至共识网络。
其中,第二获取模块15、签名消息模块16以及广播消息模块17的具体功能实现方式可以参见上述图7对应实施例中的步骤S201-步骤S203,这里不再进行赘述。
在本申请实施例中,目标共识节点通过第一状态消息以及第二状态消息之间的状态差异,可以确定广播第一状态消息的共识节点在状态消息对中的状态分值;进一步地,根据该状态分值,可以对包括该状态消息对的状态消息对集合中的共识节点进行排序,故可以得到该状态消息对集合对应的节点排序结果;进一步地,通过N个状态消息对集合分别对应的节点排序结果,可以确定N个共识节点分别对应的节点状态;进一步地,在共识网络中删除节点状态为节点异常状态的共识节点。上述可知,本申请实施例是基于N个节点排序结果,确定N个共识节点的节点状态,故可以提高识别节点状态的准确度,此外,通过删除节点状态为节点异常状态的共识节点,可以避免异常共识节点(即节点状态为节点异常状态的共识节点)作为出块节点,即以正常共识节点(即节点状态为节点正常状态的共识节点)作为出块节点,故可以提高区块链网络的吞吐量。
进一步地,请参见图9,图9是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,该计算机设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机存储介质的存储器1005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
目标共识节点获取N个共识节点分别对应的状态消息对集合;N为大于1的正整数;N个状态消息对集合包括共识节点Zy对应的状态消息对集合Xy;y为正整数且y小于或等于N;状态消息对集合Xy包括状态消息对Ab,状态消息对Ab包括共识节点Zb广播至共识网络的第一状态消息Cb,以及共识节点Zy针对第一状态消息Cb所生成的第二状态消息Cy;b为正整数且b小于或等于N;N个共识节点包括目标共识节点、共识节点Zb以及共识节点Zy;
确定共识节点Zb在状态消息对Ab中的状态分值;状态消息对Ab对应的状态分值用于表征,第一状态消息Cb以及第二状态消息Cy之间的状态差异;
根据状态消息对集合Xy中每个状态消息对分别对应的状态分值,对N个共识节点进行排序,得到状态消息对集合Xy对应的节点排序结果;
根据N个状态消息对集合分别对应的节点排序结果,确定N个共识节点分别对应的节点状态,在共识网络中删除节点状态为节点异常状态的共识节点。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3以及图7所对应实施例中对基于区块链的数据处理方法的描述,也可执行前文图8所对应实施例中对基于区块链的数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图3以及图7中各个步骤所提供的基于区块链的数据处理方法,具体可参见上述图3以及图7各个步骤所提供的实现方式,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
上述计算机可读存储介质可以是前述任一实施例提供的基于区块链的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3以及图7所对应实施例中对基于区块链的数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,包括:
目标共识节点获取N个共识节点分别对应的状态消息对集合;N为大于1的正整数;N个状态消息对集合包括共识节点Zy对应的状态消息对集合Xy;y为正整数且y小于或等于N;所述状态消息对集合Xy包括状态消息对Ab,所述状态消息对Ab包括共识节点Zb广播至共识网络的第一状态消息Cb,以及所述共识节点Zy针对所述第一状态消息Cb所生成的第二状态消息Cy;b为正整数且b小于或等于N;所述N个共识节点包括所述目标共识节点、所述共识节点Zb以及所述共识节点Zy;
确定所述共识节点Zb在所述状态消息对Ab中的状态分值;所述状态消息对Ab对应的状态分值用于表征,所述第一状态消息Cb以及所述第二状态消息Cy之间的状态差异;
根据所述状态消息对集合Xy中每个状态消息对分别对应的状态分值,对所述N个共识节点进行排序,得到所述状态消息对集合Xy对应的节点排序结果;
根据所述N个状态消息对集合分别对应的节点排序结果,确定所述N个共识节点分别对应的节点状态,在所述共识网络中删除所述节点状态为节点异常状态的共识节点。
2.根据权利要求1所述的方法,其特征在于,所述目标共识节点获取N个共识节点分别对应的状态消息对集合,包括:
所述目标共识节点获取共识节点Ze在系统时间达到状态校验周期时所广播的第一状态消息Ce;所述共识节点Ze属于N-1个共识节点;所述N-1个共识节点包括所述N个共识节点中除了所述目标共识节点之外的共识节点;所述第一状态消息Ce包括所述共识节点Ze对应的节点签名Ie;e为正整数且e小于或等于N-1;
获取所述共识节点Ze对应的节点公钥,基于所述共识节点Ze对应的节点公钥对所述节点签名Ie进行验签,得到第一验签结果;
根据第一验签结果,生成针对所述共识节点Ze的状态消息对;
根据所述N-1个共识节点分别对应的状态消息对,生成目标状态消息对集合;
获取所述N-1个共识节点分别广播的状态消息对集合,将N-1个状态消息对集合以及所述目标状态消息对集合,确定为所述N个状态消息对集合。
3.根据权利要求2所述的方法,其特征在于,所述第一状态消息Ce还包括所述共识节点Ze的节点标识、所述共识节点Ze对应的区块高度Ge,以及所述区块高度Ge对应的区块哈希;
所述根据第一验签结果,生成针对所述共识节点Ze的状态消息对,包括:
当所述第一验签结果为验签成功结果时,获取目标区块高度;所述目标区块高度是指所述目标共识节点对应的区块高度;
基于所述目标区块高度以及所述区块高度Ge,生成所述第一状态消息Ce对应的第二状态消息Fe;
将所述第一状态消息Ce以及所述第二状态消息Fe组合成针对所述共识节点Ze的待签名状态消息对;
基于目标节点私钥对所述待签名状态消息对进行签名,得到所述共识节点Ze对应的携带第一消息签名的状态消息对;所述目标节点私钥是指所述目标共识节点对应的节点私钥。
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标区块高度以及所述区块高度Ge,生成所述第一状态消息Ce对应的第二状态消息Fe,包括:
获取目标节点标识;所述目标节点标识是指所述目标共识节点对应的节点标识;
将所述目标区块高度以及所述区块高度Ge进行对比;
若所述目标区块高度等于或大于所述区块高度Ge,则将第一区块对应的区块哈希确定为目标区块哈希,基于所述目标节点标识、所述目标区块高度以及所述目标区块哈希,生成所述第一状态消息Ce对应的所述第二状态消息Fe;所述第一区块对应的区块高度等于所述区块高度Ge;所述第一区块属于所述目标共识节点对应的账本中的区块;
若所述目标区块高度小于所述区块高度Ge,则将第二区块对应的区块哈希确定为目标区块哈希,基于所述目标节点标识、所述目标区块高度以及所述目标区块哈希,生成所述第一状态消息Ce对应的所述第二状态消息Fe;所述第二区块对应的区块高度等于所述目标区块高度;所述第二区块属于所述目标共识节点对应的账本中的区块。
5.根据权利要求1所述的方法,其特征在于,所述状态消息对Ab还包括针对所述第一状态消息Cb以及所述第二状态消息Cy的第二消息签名;所述第一状态消息Cb包括针对所述共识节点Zb的第一区块高度,以及针对所述共识节点Zb的与所述第一区块高度相关联的第一区块哈希;所述第二状态消息Cy包括针对所述共识节点Zy的第二区块高度,以及针对所述共识节点Zy的与所述第一区块高度相关联的第二区块哈希;
所述确定所述共识节点Zb在所述状态消息对Ab中的状态分值,包括:
调用治理共识委员会合约,通过所述治理共识委员会合约获取所述共识节点Zy的节点公钥;
基于所述共识节点Zy的节点公钥对所述第二消息签名进行验签,得到第二验签结果;
当所述第二验签结果为验签成功结果时,对所述第一区块高度以及所述第二区块高度进行对比;
若所述第一区块高度大于所述第二区块高度,则将第一目标数值确定为所述共识节点Zb在所述状态消息对Ab中的状态分值;所述第一目标数值用于表征所述第一区块高度大于所述第二区块高度;
若所述第一区块高度等于或小于所述第二区块高度,则根据所述第一区块高度、所述第二区块高度、第一区块哈希以及所述第二区块哈希,确定所述共识节点Zb在所述状态消息对Ab中的状态分值。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一区块高度、所述第二区块高度、第一区块哈希以及所述第二区块哈希,确定所述共识节点Zb在所述状态消息对Ab中的状态分值,包括:
对所述第一区块哈希以及所述第二区块哈希进行对比;
若所述第一区块哈希以及所述第二区块哈希不相同,则将第二目标数值确定为所述共识节点Zb在所述状态消息对Ab中的状态分值;所述第二目标数值小于所述第一目标数值,且所述第二目标数值用于表征所述第一区块哈希属于异常数据;
若所述第一区块哈希以及所述第二区块哈希相同,则将所述第一区块高度以及所述第二区块高度之间的区块高度差值,确定为所述共识节点Zb在所述状态消息对Ab中的状态分值;所述区块高度差值大于所述第一目标数值。
7.根据权利要求5所述的方法,其特征在于,所述基于所述共识节点Zy的节点公钥对所述第二消息签名进行验签,得到第二验签结果,包括:
基于所述共识节点Zy的节点公钥对所述第二消息签名进行解密,得到第一数字摘要;
获取所述第一状态消息Cb以及所述第二状态消息Cy的第二数字摘要,将所述第一数字摘要以及所述第二数字摘要进行对比;
若所述第一数字摘要以及所述第二数字摘要相同,则确定所述第二验签结果为所述验签成功结果;
若所述第一数字摘要以及所述第二数字摘要不同,则确定所述第二验签结果为验签失败结果。
8.根据权利要求1所述的方法,其特征在于,所述N个状态消息对集合分别对应的节点排序结果包括节点排序结果Hj,j为正整数且j小于或等于N;
所述根据所述N个状态消息对集合分别对应的节点排序结果,确定所述N个共识节点分别对应的节点状态,包括:
从所述节点排序结果Hj中按序获取S个连续位置上分别对应的共识节点,作为待识别共识节点;S为大于1的正整数且S小于N;
在N个节点排序结果中,统计在所述S个连续位置上具有相同的待识别共识节点的节点排序结果的数量,作为目标数量;
获取最大的目标数量,将所述最大的目标数量与数量阈值进行对比,得到对比结果;
根据对比结果确定所述N个共识节点分别对应的节点状态。
9.根据权利要求8所述的方法,其特征在于,所述根据对比结果确定所述N个共识节点分别对应的节点状态,包括:
若所述对比结果为所述最大的目标数量等于或大于所述数量阈值,则将所述最大的目标数量对应的待识别共识节点的节点状态确定为节点正常状态;
将所述N个共识节点中除了所述最大的目标数量对应的待识别共识节点之外的共识节点,确定为剩余共识节点;
根据所述剩余共识节点在目标节点排序结果中的状态分值,确定所述剩余共识节点的节点状态;所述目标节点排序结果为所述最大的目标数量对应的节点排序结果。
10.根据权利要求9所述的方法,其特征在于,所述根据所述剩余共识节点在目标节点排序结果中的状态分值,确定所述剩余共识节点的节点状态,包括:
将所述剩余共识节点在所述目标节点排序结果中的状态分值与状态分值阈值进行对比;
若所述剩余共识节点在所述目标节点排序结果中的状态分值小于或等于所述状态分值阈值,则确定所述剩余共识节点的节点状态为节点异常状态;
若所述剩余共识节点在所述目标节点排序结果中的状态分值大于所述状态分值阈值,则确定所述剩余共识节点的节点状态为节点正常状态。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取目标节点标识、待校验区块高度以及待校验区块哈希;所述目标节点标识是指所述目标共识节点对应的节点标识;所述待校验区块高度是指所述目标共识节点在系统时间达到状态校验周期时所对应的区块高度;所述待校验区块哈希对应的区块高度等于所述待校验区块高度,所述待校验区块哈希对应的区块属于目标账本中的区块;所述目标账本是指所述目标共识节点对应的账本;
基于目标节点私钥对所述目标节点标识、所述待校验区块高度以及所述待校验区块哈希进行签名,得到携带第三消息签名的第一状态消息;所述目标节点私钥是指所述目标共识节点对应的节点私钥;
将所述携带第三消息签名的第一状态消息广播至所述共识网络。
12.一种基于区块链的数据处理装置,其特征在于,所述基于区块链的数据处理装置运行于目标共识节点,包括:
第一获取模块,用于获取N个共识节点分别对应的状态消息对集合;N为大于1的正整数;N个状态消息对集合包括共识节点Zy对应的状态消息对集合Xy;y为正整数且y小于或等于N;所述状态消息对集合Xy包括状态消息对Ab,所述状态消息对Ab包括共识节点Zb广播至共识网络的第一状态消息Cb,以及所述共识节点Zy针对所述第一状态消息Cb所生成的第二状态消息Cy;b为正整数且b小于或等于N;所述N个共识节点包括所述目标共识节点、所述共识节点Zb以及所述共识节点Zy;
第一确定模块,用于确定所述共识节点Zb在所述状态消息对Ab中的状态分值;所述状态消息对Ab对应的状态分值用于表征,所述第一状态消息Cb以及所述第二状态消息Cy之间的状态差异;
排序节点模块,用于根据所述状态消息对集合Xy中每个状态消息对分别对应的状态分值,对所述N个共识节点进行排序,得到所述状态消息对集合Xy对应的节点排序结果;
第二确定模块,用于根据所述N个状态消息对集合分别对应的节点排序结果,确定所述N个共识节点分别对应的节点状态,在所述共识网络中删除所述节点状态为节点异常状态的共识节点。
13.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-11任一项所述的方法。
15.一种计算机程序产品,其特征在于,计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,所述计算机指令适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行如权利要求1-11任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111459833.0A CN116205650A (zh) | 2021-12-01 | 2021-12-01 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111459833.0A CN116205650A (zh) | 2021-12-01 | 2021-12-01 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116205650A true CN116205650A (zh) | 2023-06-02 |
Family
ID=86511828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111459833.0A Pending CN116205650A (zh) | 2021-12-01 | 2021-12-01 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116205650A (zh) |
-
2021
- 2021-12-01 CN CN202111459833.0A patent/CN116205650A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600720B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113067707B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111061769A (zh) | 一种区块链系统的共识方法及相关设备 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN116467062A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
US20240163118A1 (en) | Blockchain-based data processing method, device, and readable storage medium | |
CN116205650A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN116055403A (zh) | 报文数据的传输方法、装置和服务器 | |
CN117633099A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
Pokharel | Comparing blockchain bridges: Poly network vs ibc | |
CN117411858A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
US20240414230A1 (en) | Blockchain-based data processing method, device, and readable storage medium | |
HK40048724A (zh) | 基於區塊鏈的數據處理方法、裝置、設備及可讀存儲介質 | |
HK40048724B (zh) | 基於區塊鏈的數據處理方法、裝置、設備及可讀存儲介質 | |
CN118535568A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117560190A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN116483915A (zh) | 一种区块同步方法、相关装置、介质及程序产品 | |
CN117974120A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
HK40051775A (zh) | 基於区块链的数据处理方法、装置、设备及可读存储介质 | |
HK40051775B (zh) | 基於区块链的数据处理方法、装置、设备及可读存储介质 | |
CN120186164A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN117041254A (zh) | 区块链数据处理方法、装置、存储介质及设备 | |
CN119966952A (zh) | 账户地址处理方法、装置及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40086898 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |