CN117155953A - 一种数据处理方法、装置、计算机设备以及可读存储介质 - Google Patents

一种数据处理方法、装置、计算机设备以及可读存储介质 Download PDF

Info

Publication number
CN117155953A
CN117155953A CN202210562916.0A CN202210562916A CN117155953A CN 117155953 A CN117155953 A CN 117155953A CN 202210562916 A CN202210562916 A CN 202210562916A CN 117155953 A CN117155953 A CN 117155953A
Authority
CN
China
Prior art keywords
transaction
target
auxiliary
node
data
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
Application number
CN202210562916.0A
Other languages
English (en)
Inventor
刘汉卿
王宗友
蓝虎
朱耿良
时一防
廖志勇
张劲松
刘区城
郭英杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210562916.0A priority Critical patent/CN117155953A/zh
Publication of CN117155953A publication Critical patent/CN117155953A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种数据处理方法、装置、计算机设备以及可读存储介质,本申请实施例可应用于区块链、云技术、人工智能、智慧交通、辅助驾驶等各种场景。该方法包括:向区块链网络中的共识节点发送第一数据同步请求;接收共识节点基于第一数据同步请求返回的区块同步数据;根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合,基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树;将辅助状态树的辅助根值与交易写集合中的目标根值进行比较,若辅助根值与目标根值不同,则向区块链网络中的业务节点发送提示交易。采用本申请,可以准确验证所同步到的目标交易的正确性。

Description

一种数据处理方法、装置、计算机设备以及可读存储介质
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据处理方法、装置、计算机设备以及可读存储介质。
背景技术
区块链网络中的业务节点可以向区块链网络中的共识节点发送数据同步请求,通过数据同步请求获取区块同步数据,区块同步数据可以包括目标区块的目标区块头以及目标区块中的与业务节点相关联的目标交易。目前,业务节点可以对接收到的目标区块头进行校验,然而,一旦共识节点不可靠且未正确执行目标交易,业务节点无法感知错误交易(即目标交易),会接收共识节点所返回的错误交易执行结果。这样,就会存在目标区块头是正确的,但是交易执行结果是错误的情况,从而无法确定共识节点是否正确执行了目标交易,即无法准确验证目标交易的正确性。
发明内容
本申请实施例提供一种数据处理方法、装置、计算机设备以及可读存储介质,可以准确验证所同步到的目标交易的正确性。
本申请实施例一方面提供了一种数据处理方法,方法由区块链网络中的见证节点执行,包括:
见证节点向区块链网络中的共识节点发送第一数据同步请求;
接收共识节点基于第一数据同步请求返回的区块同步数据;区块同步数据包括目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合;
根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合,基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树;
将辅助状态树的辅助根值与交易写集合中的目标根值进行比较,若辅助根值与目标根值不同,则向区块链网络中的业务节点发送提示交易;目标根值是由共识节点基于交易写集合中的目标交易写数据构建的目标状态树所确定的;提示交易用于指示业务节点确定与目标交易相关联的异常提示内容。
本申请实施例一方面提供了一种数据处理装置,装置应用于区块链网络中的见证节点,包括:
第一发送模块,用于向区块链网络中的共识节点发送第一数据同步请求;
第一接收模块,用于接收共识节点基于第一数据同步请求返回的区块同步数据;区块同步数据包括目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合;
交易执行模块,用于根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合,基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树;
交易发送模块,用于将辅助状态树的辅助根值与交易写集合中的目标根值进行比较,若辅助根值与目标根值不同,则向区块链网络中的业务节点发送提示交易;目标根值是由共识节点基于交易写集合中的目标交易写数据构建的目标状态树所确定的;提示交易用于指示业务节点确定与目标交易相关联的异常提示内容。
其中,交易执行模块包括:
合约调用单元,用于获取用于执行目标交易的目标智能合约,调用目标智能合约从交易读集合中获取针对目标交易的交易读数据;
交易执行单元,用于根据交易读数据执行目标交易,得到目标交易对应的辅助交易写数据,将辅助交易写数据作为目标交易对应的辅助交易写集合。
其中,辅助交易写数据包括对象名和对象值;对象名用于表征辅助交易写数据的索引标识,对象值用于表征辅助交易写数据对应于索引标识的索引结果;
交易执行模块包括:
对象值排序单元,用于根据辅助交易写集合中的辅助交易写数据对应的生成时间,对辅助交易写数据中的对象值进行排序,得到排序后的对象值;
哈希计算单元,用于对排序后的对象值进行哈希计算,得到排序后的对象值的对象哈希值;
状态树构建单元,用于基于对象哈希值的排序顺序确定状态树路径,基于对象哈希值和状态树路径构建与目标交易相关联的辅助状态树。
其中,装置还具体用于获取用于表征辅助根值的根值标识,将根值标识和辅助根值关联回填至辅助交易写集合中。
其中,交易发送模块包括:
根值比较单元,用于根据根值标识从辅助交易写集合中获取辅助状态树的辅助根值,根据根值标识从交易写集合中获取目标根值;
根值比较单元,用于将辅助根值与目标根值进行比较。
其中,交易发送模块包括:
交易生成单元,用于若辅助根值与目标根值不同,则获取目标区块的目标区块高度和目标交易的交易哈希值,将目标区块高度和交易哈希值作为与目标交易相关联的异常提示内容;
交易生成单元,用于通过异常智能合约生成包含异常合约名称和异常提示内容的提示交易,向区块链网络中的业务节点发送提示交易,以使业务节点通过异常智能合约执行提示交易;异常合约名称为异常智能合约的合约名称。
其中,目标交易的数量为至少两个;
交易发送模块,具体用于将至少两个目标交易中的每个目标交易分别对应的辅助状态树的辅助根值与每个目标交易分别对应的交易写集合中的目标根值进行比较;
交易发送模块,具体用于若至少两个目标交易中存在业务交易对应的辅助根值和业务交易对应的目标根值不同,则基于业务交易向区块链网络中的业务节点发送提示交易;至少两个目标交易包括业务交易。
其中,区块同步数据还包括目标区块的目标区块头;
装置还具体用于对目标区块头进行校验,得到校验结果,若校验结果指示校验成功,则执行根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合的步骤。
本申请实施例一方面提供了一种数据处理方法,方法由区块链网络中的业务节点执行,包括:
业务节点向区块链网络中的共识节点发送的第二数据同步请求;
接收共识节点基于第二数据同步请求返回的区块同步数据;区块同步数据包括目标区块的目标区块头、目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合;
对目标区块头进行校验,得到校验结果,若校验结果指示校验成功,则对区块同步数据进行存储;
若接收区块链网络中的见证节点发送的提示交易,则根据提示交易确定与目标交易相关联的异常提示内容;提示交易是由见证节点在辅助状态树的辅助根值与交易写集合中的目标根值不同时所生成的;辅助状态树是由见证节点基于辅助交易写集合中的辅助交易写数据所构建的;辅助交易写集合是由见证节点根据交易读集合执行目标交易所得到的;目标根值是由共识节点基于交易写集合中的目标交易写数据构建的目标状态树所确定的;
根据异常提示内容对所存储的区块同步数据进行回滚处理。
本申请实施例一方面提供了一种数据处理装置,装置应用于区块链网络中的业务节点,包括:
第二发送模块,用于向区块链网络中的共识节点发送的第二数据同步请求;
第二接收模块,用于接收共识节点基于第二数据同步请求返回的区块同步数据;区块同步数据包括目标区块的目标区块头、目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合;
数据存储模块,用于对目标区块头进行校验,得到校验结果,若校验结果指示校验成功,则对区块同步数据进行存储;
交易接收模块,用于若接收区块链网络中的见证节点发送的提示交易,则根据提示交易确定与目标交易相关联的异常提示内容;提示交易是由见证节点在辅助状态树的辅助根值与交易写集合中的目标根值不同时所生成的;辅助状态树是由见证节点基于辅助交易写集合中的辅助交易写数据所构建的;辅助交易写集合是由见证节点根据交易读集合执行目标交易所得到的;目标根值是由共识节点基于交易写集合中的目标交易写数据构建的目标状态树所确定的;
数据回滚模块,用于根据异常提示内容对所存储的区块同步数据进行回滚处理。
其中,数据存储模块,具体用于从目标区块头中获取针对目标区块的节点签名,确定节点签名的签名数量;
数据存储模块,具体用于获取区块链网络中的共识节点数量,若签名数量与共识节点数量之间的比例大于比例阈值,则生成用于表征校验成功的校验结果;
数据存储模块,具体用于若签名数量与共识节点数量之间的比例小于或等于比例阈值,则生成用于表征校验不成功的校验结果。
其中,区块同步数据还包括目标交易对应的默克尔证明信息;
数据存储模块,具体用于基于目标交易的交易哈希值和默克尔证明信息,确定目标区块对应的待比较树根;
数据存储模块,具体用于获取目标区块头中针对目标区块的交易的默克尔树根,将待比较树根与默克尔树根进行比较,若待比较树根与默克尔树根相同,则生成用于表征校验成功的校验结果;目标区块中的交易包括目标交易;
数据存储模块,具体用于若待比较树根与默克尔树根不同,则生成用于表征校验失败的校验结果。
其中,异常提示内容包括目标区块的目标区块高度;
数据回滚模块包括:
第一删除单元,用于获取所存储的区块头中的最大区块高度,若最大区块高度等于目标区块高度,则删除所存储的区块同步数据;
第二删除单元,用于若最大区块高度大于目标区块高度,则删除处于区块高度范围内的已存储区块同步数据;已存储区块同步数据包括所存储的区块同步数据;区块高度范围是基于最大区块高度和目标区块高度所确定的;
则装置还具体用于将异常提示内容存储至节点日志中。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,区块链网络中的见证节点可以向区块链网络中的共识节点发送第一数据同步请求,接收共识节点基于第一数据同步请求返回的区块同步数据。其中,区块同步数据可以包括目标区块中的目标交易和目标交易对应的交易执行结果,交易执行结果包括目标交易对应的交易读集合和交易写集合。进一步地,见证节点可以根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合,基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树,进而将辅助状态树的辅助根值与交易写集合中的目标根值进行比较,若辅助根值与目标根值不同,则向区块链网络中的业务节点发送提示交易,以使业务节点根据提示交易确定与目标交易相关联的异常提示内容。其中,目标根值是由共识节点基于交易写集合中的目标交易写数据构建的目标状态树所确定的。由此可见,本申请实施例可以引入交易写集合和交易读集合,见证节点可以根据交易读集合执行目标交易,这样可以保证共识节点和见证节点在分别执行目标交易时的读盘数据(即交易读集合)是相符的,从而保证见证节点可以成功执行目标交易。此外,见证节点可以生成目标交易的执行结果(即辅助交易写集合),将辅助交易写集合与共识节点所生成的目标交易的执行结果(即交易写集合)进行比较,进而基于辅助交易写集合与交易写集合的匹配结果(即确定基于辅助交易写数据所构建的辅助状态树中的辅助根值与基于目标交易写数据所构建的目标状态树中的目标根值是否相同),确定共识节点是否成功执行目标交易,从而可以准确验证所同步到的目标交易的正确性。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链网络分层结构的示意图;
图2是本申请实施例提供的一种进行数据交互的场景示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的一种执行目标交易的场景示意图;
图5是本申请实施例提供的一种构建辅助状态树的场景示意图;
图6是本申请实施例提供的一种数据处理方法的流程示意图;
图7是本申请实施例提供的一种数据处理方法的流程示意图;
图8是本申请实施例提供的一种发送数据同步请求的场景示意图;
图9是本申请实施例提供的一种数据处理装置的结构示意图;
图10是本申请实施例提供的一种数据处理装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
具体的,请参见图1,图1是本申请实施例提供的一种区块链网络分层结构的示意图。如图1所示的区块链网络分层结构可以应用于区块链系统,该区块链系统可以包括代理节点(例如,代理节点100b)、第一区块链系统、第二区块链系统和第三区块链系统,以构成图1所示的区块链网络2000,区块链网络2000可以包括但不限于联盟链所对应的区块链网络。其中,第一区块链系统、第二区块链系统和第三区块链系统均可以包括一个或者多个节点,这里将不对第一区块链系统、第二区块链系统和第三区块链系统中节点的数量进行限制。如图1所示,第一区块链系统具体可以包括节点110a、节点110b、节点110c、…、和节点110n;第二区块链系统具体可以包括节点120a、节点120b、节点120c、…、和节点120n;第三区块链系统具体可以包括节点130a、节点130b、节点130c、…、和节点130n。
可以理解的是,第一区块链系统对应的区块链网络可以称之为业务网络(即见证网络)100a,第三区块链系统对应的区块链网络可以称之为业务网络(即见证网络)100d,处于业务网络100a和业务网络100d中的节点可以称之为轻量级节点(即轻量节点,Lightweight Node)。根据隐私要求和存储限制,轻量级节点存储了部分的区块链数据库,一般只存储区块头和与自身节点相关联的交易数据,而不存储完整交易数据,它们会通过“简化交易验证(Simplified Payment Verification,简称SPV)”的方式完成交易校验,这样的节点可以称为SPV节点。其中,为了保证第一区块链系统内的信息互通,第一区块链系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。同理,为了保证第三区块链系统内的信息互通,第三区块链系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。
其中,轻量级节点可以包括业务节点和见证节点,本申请实施例不对业务网络100a中的业务节点和见证节点的数量进行限定,本申请实施例不对业务网络100d中的业务节点和见证节点的数量进行限定。业务节点和见证节点一般不执行交易,不需要参与记账共识,但能够通过身份认证的方式从核心共识网络中获得区块头数据和部分授权可见的区块数据。此外,业务节点可以负责处理业务上的请求,并将业务请求转发给共识节点;见证节点可以负责重放交易,验证交易的正确性。
为便于理解,本申请实施例可以将业务网络100a中的节点110a和节点110b称之为见证节点,将业务网络100a中的节点110c、节点110d、…、和节点110n称之为业务节点;本申请实施例可以将业务网络100d中的节点130a和节点130b称之为见证节点,将业务网络100d中的节点130c、节点130d、…、和节点130n称之为业务节点。可选的,本申请实施例也可以业务网络100a中的节点110c、节点110d、…、和节点110n称之为见证节点,将业务网络100a中的节点110a和节点110b称之为业务节点;本申请实施例可以将业务网络100d中的节点130c、节点130d、…、和节点130n称之为见证节点,将业务网络100d中的节点130a和节点130b称之为业务节点。
可以理解的是,第二区块链系统对应的区块链网络可以为称之为核心共识网络(即共识网络)100c,处于核心共识网络100c中的节点可以称之为共识节点(即记账节点),这里的共识节点可以运行有区块链共识协议,可以负责产生区块,并对区块达成共识以更新链状态。共识节点存储了完整的区块链数据库,这样的包含所有交易数据的节点可以称为全量节点(Full Node)。其中,为了保证第二区块链系统内的信息互通,第二区块链系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。
可以理解的是,上述第一区块链系统、第二区块链系统和第三区块链系统内的信息连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。此外,上述第一区块链系统、第二区块链系统和第三区块链系统之间也可以存在信息连接,该信息连接也不限定连接方式。
其中,图1所示的区块链网络2000可以包括但不限于上述业务网络100a和业务网络100d,本申请实施例不对区块链网络2000中的业务网络的数量进行限定。图1所示的代理节点100b可以用于对业务网络和核心共识网络进行网络隔离,该代理节点100b可以将点对点(Peer To Peer,简称P2P)网络进行网络分层,以形成“业务网络—核心共识网络”这样的分层结构(即双层链结构),进而能够提高区块链上数据的保密性和安全性。
其中,可以理解的是,本申请实施例可以将代理节点100b、业务网络100a中的节点、业务网络100d中的节点以及核心共识网络100c中的节点统称为区块链网络2000中的区块链节点。可以理解的是,该区块链节点可以为接入该区块链网络2000中的服务器,也可以为接入该区块链网络2000中的终端设备,这里对区块链节点的具体形式不做限定。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,终端设备可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、POS(Point Of Sales,销售点)机、可穿戴设备(例如,智能手表、智能手环等)、智能语音交互设备、智能家电、车载终端、飞行器等。本申请实施例可应用于各种场景,包括但不限于区块链、云技术、人工智能、智慧交通、辅助驾驶等。
可以理解的是,图1所示的业务网络100a、业务网络100d和核心共识网络100c可以处于不同的网络环境,通常来说,业务网络100a和业务网络100d可以处于公有网络中,核心共识网络100c可以处于私有网络中。因此,见证节点和业务节点部署在处于公网(即公有网络)的业务网络100a和业务网络100d中,共识节点部署在处于私网(即私有网络)的核心共识网络100c中,业务网络和核心共识网络可以通过路由边界进行交互。
为便于理解,本申请实施例可以在图1所示的多个业务网络中选择一个业务网络作为目标业务网络,例如,本申请实施例可以将图1所示的业务网络100a作为目标业务网络。为便于理解,本申请实施例可以在图1所示的业务网络100a(即目标业务网络)中的多个业务节点中选择一个业务节点作为目标业务节点,本申请实施例可以在图1所示的业务网络100a中的多个见证节点中选择一个见证节点作为目标见证节点,该目标业务节点和目标见证节点均具有向代理节点100b发送数据同步请求的功能,例如,本申请实施例可以将图1所示的节点110a作为目标见证节点,本申请实施例可以将图1所示的节点110c作为目标业务节点。为便于理解,本申请实施例可以在图1所示的核心共识网络100c中的多个共识节点中选择一个共识节点作为目标共识节点,该目标共识节点具有向代理节点100b返回数据同步请求对应的区块同步数据的功能,例如,本申请实施例可以将图1所示的节点120a作为目标共识节点。其中,代理节点100b可以将目标业务节点和目标见证节点发送的数据同步请求转发至目标共识节点,代理节点100b可以将目标共识节点返回的区块同步数据转发至目标业务节点和目标见证节点。
由于核心共识网络处于相对安全的私有云中,其互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制。而目标业务节点和目标见证节点处于公共网络中,可能会被其他不确定的网络终端访问,因此,目标业务节点和目标见证节点接入核心共识网络中的行为需要被严格控制。这样,代理节点100b和目标共识节点需要对发送数据同步请求的目标业务节点和目标见证节点进行验证,这里以对目标业务节点进行验证为例进行说明,对目标见证节点进行验证的具体过程可以参见对目标业务节点进行验证的描述。
可以理解的是,代理节点100b在接收到目标业务节点发送的数据同步请求时,可以对该目标业务节点进行权限验证,以得到权限验证结果,这里的权限验证可以包括验证目标业务节点的节点标识是否属于非法节点列表中的节点标识。其中,非法节点列表可以是指代理节点100b所存储的黑名单列表,该非法节点列表中的非法节点标识所对应的非法节点是指检测到的恶意节点、被他人举报的节点,在某一时间段发送交易频率异常的节点等。
其中,可以理解的是,代理节点100b可以在该非法节点列表中查找与该目标业务节点的节点标识相同的非法节点标识,以得到权限验证结果。若权限验证结果指示在非法节点列表中查找到与目标业务节点的节点标识相同的非法节点标识,则代理节点100b可以确定该权限验证结果属于非法验证结果,此时,该代理节点100b可以确定该目标业务节点为非法节点,进而无需将数据同步请求转发至核心共识网络中的目标共识节点。可选的,若权限验证结果指示在非法节点列表中未查找到与目标业务节点的节点标识相同的非法节点标识,则代理节点100b可以确定该权限验证结果属于合法验证结果,此时,该代理节点100b可以确定该目标业务节点为合法节点,进而可以将数据同步请求转发至核心共识网络中的目标共识节点。
应当理解,上述分层结构在极大的提升区块链网络的安全性的同时,可以通过目标业务节点和目标见证节点验证目标共识节点是否正确的执行了目标业务节点提交的交易,提升共识节点的可信度和可验证性,从而提升区块链系统的公信力。具体的,目标见证节点和目标业务节点可以基于目标共识节点所返回的区块同步数据,对区块同步数据中的目标交易进行验证,确定目标交易的准确性。其中,目标共识节点向目标业务节点和目标见证节点所返回的区块同步数据中可以包括目标交易对应的交易执行结果,交易执行结果可以表示目标交易对应的交易读集合(即读集合)和目标交易对应的交易写集合(即写集合)。读集合用于记录目标交易在执行过程中的所有读盘操作,写集合用于记录目标交易在执行后的所有落盘操作,写集合不参与交易哈希的计算。
为便于理解,请参见表1,表1是本申请实施例提供的一种节点标识列表。该节点标识列表中可以存储有对某一交易数据可见的节点的节点标识和节点名称。如表1所示:
表1
节点名称 节点标识
节点1 AAAAAA
节点2 BBBBBB
节点J CCCCCC
其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。例如,节点1(例如,节点1可以为图1所示的节点110c)可以通过节点标识BBBBBB向节点2(例如,节点2可以为图1所示的节点120a)发送信息(例如,数据同步请求),且节点2可以通过节点标识AAAAAA确定该信息是由节点1所发送的;节点2可以通过节点标识AAAAAA向节点1返回信息(例如,区块同步数据),且节点1可以通过节点标识BBBBBB确定该信息是由节点2所返回的。其中,代理节点100b可以转发节点1向节点2发送的数据同步请求,代理节点100b可以转发节点2向节点1返回的区块同步数据,比如,这里的节点1可以为目标业务节点,这里的节点2可以为目标共识节点。
其中,核心共识网络中的目标共识节点可以获取代理节点100b发送的加密数据信息。其中,加密数据信息可以为代理节点100b通过核心共识网络的系统公钥对数据同步请求和签名信息进行加密处理后所得到的,签名信息可以为业务网络中的目标业务节点通过该目标业务节点的节点私钥对数据同步请求进行签名后所得到的。进一步地,目标共识节点可以获取核心共识网络的系统私钥(即核心共识网络的系统公钥对应的系统私钥),通过核心共识网络的系统私钥对加密数据信息进行解密处理,得到数据同步请求和签名信息。进一步地,目标共识节点可以获取目标业务节点的节点公钥(即目标业务节点的节点私钥对应的节点公钥),基于目标业务节点的节点公钥对签名信息进行验签,得到验签结果。进一步地,目标共识节点可以在验签结果指示验签成功时,接收数据同步请求。可选的,目标共识节点可以在验签结果指示验签失败时,拒绝接收数据同步请求。
其中,可以理解的是,目标业务节点可以利用哈希算法对数据同步请求进行哈希计算,从而可以得到数据同步请求的摘要信息h,并基于目标业务节点的节点私钥对该摘要信息h进行数字签名,得到数据同步请求对应的签名信息。目标共识节点可以基于目标业务节点的节点公钥对签名信息中的数字签名进行验签,得到数据同步请求的摘要信息h,并基于目标业务节点所使用的哈希算法对接收到的数据同步请求进行哈希计算,从而可以得到数据同步请求的摘要信息H,进而可以将验签所得到的摘要信息h和哈希计算所得到的摘要信息H进行比较,得到验签结果。其中,在摘要信息h与摘要信息H相同时,验签结果指示目标共识节点验签成功;在摘要信息h与摘要信息H不相同时,验签结果指示目标共识节点验签失败。
可选的,可以理解的是,代理节点100b在对加密数据信息进行转发时,还可以通过代理节点100b的节点私钥对加密数据信息进行加密处理,得到加密后的加密数据信息,以使目标共识节点通过代理节点100b的节点公钥对加密后的加密数据信息进行解密处理。可选的,目标业务节点在将数据同步请求和签名信息发送至代理节点100b之前,可以通过代理节点100b的节点公钥对数据同步请求和签名信息进行加密处理,得到加密请求信息,进而将该加密请求信息发送至代理节点100b。这样,代理节点100b在接收到加密请求信息时,可以通过该代理节点100b的节点私钥对加密请求信息进行解密处理,得到数据同步请求和签名信息。
同理,目标业务节点接收目标共识节点返回的区块同步数据的具体过程,可以参见上述目标共识节点接收目标业务节点发送的数据同步请求的描述,这里将不再进行赘述。同理,目标共识节点接收目标见证节点发送的数据同步请求的具体过程、以及目标见证节点接收目标共识节点返回的区块同步数据的具体过程,可以参见上述目标共识节点接收目标业务节点发送的数据同步请求的描述,这里将不再进行赘述。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示的业务节点20a可以为上述图1所对应实施例的业务网络100a中的任意一个业务节点,如图2所示的见证节点20b可以为上述图1所对应实施例的业务网络100a中的任意一个见证节点,如图2所示的代理节点20c可以为上述图1所对应实施例中的代理节点100b,如图2所示的共识节点20d可以为上述图1所对应实施例的核心共识网络100c中的任意一个节点。为便于理解,本申请实施例以上述图1所示的节点110c作为该业务节点20a、以上述图1所示的节点110a作为该见证节点20b、以上述图1所示的节点120a作为该共识节点20d为例,以阐述图2所示的业务节点20a、见证节点20b、代理节点20c和共识节点20d之间进行数据交互的具体过程。
如图2所示,业务节点20a和见证节点20b可以分别向代理节点20c发送数据同步请求(即区块同步请求),代理节点20c可以将数据同步请求转发至共识节点20d。这样,共识节点20d在获取到数据同步请求对应的区块同步数据之后,可以向代理节点20c返回区块同步数据,代理节点20c可以将区块同步数据分别转发至业务节点20a和见证节点20b。
为便于理解,本申请实施例可以将见证节点20b所发送的数据同步请求称之为第一数据同步请求,本申请实施例可以将业务节点20a所发送的数据同步请求称之为第二数据同步请求。同理,本申请实施例可以将见证节点20b所接收的区块同步数据称之为第一区块同步数据,本申请实施例可以将业务节点20a所接收的区块同步数据称之为第二区块同步数据。
可以理解的是,第一区块同步数据和第二区块同步数据中均可以包括目标区块的目标区块头、目标区块中的目标交易、目标交易对应的交易执行结果,交易执行结果可以包括目标交易对应的交易读集合和目标交易对应的交易写集合。其中,目标区块可以为共识节点20d所维护的区块链上的任意一个区块,目标交易可以为与业务节点20a和见证节点20b相关联的交易。
其中,共识节点20d在对目标交易进行打包处理时,可以根据交易读集合执行目标交易,得到交易写集合,并将交易写集合填入目标交易的结构体内,即将交易写集合存储至目标区块中。可以理解的是,共识节点20d可以基于交易写集合中的目标交易写数据,构建与目标交易相关联的目标状态树,进而获取目标状态树的目标树根,将目标树根回填至交易写集合中。
如图2所示,业务节点20a在接收到第二区块同步数据时,可以对第二区块同步数据中的目标区块头进行校验,得到校验结果(即第二校验结果),若第二校验结果指示校验成功,则业务节点20a可以对第二区块同步数据进行存储(即落盘交易数据),即将第二区块同步数据存储至数据库21a中。其中,通过交易写集合可以在业务节点20a不执行目标交易的前提下,快速更新链状态,即业务节点20a可以解析区块同步数据中的交易写集合,并根据交易写集合更新链状态。可选的,若第二校验结果指示校验失败,则业务节点20a无需对第二区块同步数据进行存储。
如图2所示,见证节点20b在接收到第一区块同步数据时,可以对第一区块同步数据中的目标区块头进行校验,得到校验结果(即第一校验结果),若第一校验结果指示校验成功,则见证节点20b可以重放目标交易。可选的,若第一校验结果指示校验失败,则见证节点20b重新向共识节点20d发送第一数据同步请求。
其中,如图2所示,在第一校验结果指示校验成功时,见证节点20b可以根据交易写集合执行目标交易,得到目标交易对应的辅助交易写集合,进而基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树,获取辅助状态树的辅助根值,将辅助根值回填至辅助交易写集合中。其中,辅助交易写数据是由对象名和对象值构成的,见证节点20b可以基于辅助交易写数据中的对象值,构建与目标交易相关联的辅助状态树。
其中,可以理解的是,目标状态树和辅助状态树可以统称为状态树,状态树表示将一组状态值(例如,辅助交易写数据中的对象值)按序排列,所有状态值的哈希构成默克尔树的叶子节点,并最终组成一个默克尔树(即Merkle树)。对任意状态值的更改将导致默克尔树根(即Merkle根)的变化。
其中,默克尔树是一种典型的二叉树结构,由一个根结点(即Merkle根)、一组中间节点和一组叶子节点构成。最下层的叶子节点存储目标数据(例如,辅助交易写数据中的对象值)或目标数据的哈希值,其他节点存储其两个子节点内容的哈希值。其中,辅助树根可以表示辅助状态树的Merkle根,目标树根可以表示目标状态树的Merkle根。
进一步地,如图2所示,见证节点20b可以从交易写集合中获取目标根值,将辅助交易写集合中的辅助根值与目标根值进行比较(即对比交易写集合与交易重放产生的状态树),若辅助根值与目标根值不同,则见证节点20b可以证明共识节点20d未正确执行目标交易,生成与目标交易相关联的提示交易,且向业务节点20a发送提示交易。这样,业务节点20a可以接收见证节点20b发送的提示交易,根据提示交易确定与目标交易相关联的异常提示内容,根据异常提示内容对数据库21a中所存储的第二区块同步数据进行回滚处理。其中,通过交易写集合可以在业务节点20a不执行目标交易的前提下,快速更新链状态。可选的,若辅助根值与目标根值相同,则见证节点20b可以对第一区块同步数据进行存储(即落盘交易数据)。
由此可见,见证节点可以基于共识节点返回的交易读集合执行目标交易,得到辅助交易写集合,进而将基于辅助交易写集合所得到的辅助树根与共识节点返回的交易写集合中的目标树根进行比较。其中,在辅助树根与目标树根不同时,本申请可以确定见证节点所生成的辅助交易写集合与共识节点所生成的交易写集合不同,即确定共识节点未正确执行目标交易,从而向业务节点发送提示交易。这样,业务节点可以对区块同步数据进行存储,且在接收到见证节点所发送的提示交易时,根据提示交易中的异常提示内容对所存储的区块同步数据进行回滚处理。因此,见证节点和业务节点可以准确验证所同步到的目标交易的正确性。
可以理解的是,在本申请的具体实施方式中,涉及到的每一个同步数据(如区块同步数据),当本申请中的实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
进一步地,请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图。该方法可以由区块链网络中的见证节点执行,该见证节点可以为接入至业务网络中的服务器,也可以为接入至业务网络中的终端设备,这里不对见证节点的具体形式进行限定。该见证节点可以为上述图1所示的业务网络(例如,业务网络100a)中的任意一个见证节点,例如,节点110a。其中,该数据处理方法可以包括以下步骤:
步骤S101,向区块链网络中的共识节点发送第一数据同步请求;
可以理解的是,见证节点可以基于其节点标识向共识节点发送第一数据同步请求,可选的,见证节点可以基于其节点标识向上级节点发送第一数据同步请求,以使上级节点向共识节点转发第一数据同步请求。其中,上级节点可以为业务网络中的业务节点或见证节点。
步骤S102,接收共识节点基于第一数据同步请求返回的区块同步数据;
其中,区块同步数据包括目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合。其中,交易执行结果还包括目标交易对应的执行结果相关参数,执行结果相关参数可以表示目标交易是否被正确执行、目标交易执行的时间戳、区块高度和错误码等。
其中,交易读集合是由交易读数据构成的,交易读数据包括对象名(即第一对象名)和对象值(即第一对象值);第一对象名用于表征交易读数据的索引标识,第一对象值用于表征交易读数据对应于索引标识的索引结果。可以理解的是,共识节点在执行目标交易时,可以依序记录从区块链存储层读到的所有数据,将从区块链存储层读到的所有数据作为交易读数据,进而将交易读数据作为交易读集合。交易读数据是由K(即key)-V(即value)键值对所构成的,键(key)是存储层的对象名(即对象名),值(即value)是存储层的对象值(即对象值)序列化后产生的字符串。其中,序列化是把对象(即第一对象值)转换为字节序列,永久存到磁盘中。
同理,交易写集合是由目标交易写数据构成的,目标交易写数据包括对象名(即第二对象名、K)和对象值(即第二对象值、V);第二对象名用于表征目标交易写数据的索引标识,第二对象值用于表征目标交易写数据对应于索引标识的索引结果。同理,第二对象值可以被序列化后存储在交易写集合中。
应当理解,交易读集合中可以包括一个或多个交易读数据,本申请实施例不对交易读集合中的交易读数据的数量进行限定;交易写集合中可以包括一个或多个目标交易写数据,本申请实施例不对交易写集合中的目标交易写数据的数量进行限定。
可以理解的是,共识节点可以基于交易写集合中的目标交易写数据构建的目标状态树,获取用于表征目标状态树的目标根值的根值标识,将根值标识和目标根值关联回填至交易写集合中。
其中,区块同步数据还包括目标区块的目标区块头。应当理解,见证节点可以对目标区块头进行校验,得到校验结果(即第一校验结果),若校验结果指示校验成功,则执行根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合的步骤,即若校验结果指示校验成功,则见证节点可以执行步骤S103。
其中,见证节点对目标区块头进行校验的具体过程,可以参见图6所对应实施例的步骤S203中业务节点对目标区块头进行校验的描述。
换言之,见证节点可以向共识节点或者见证节点的上级节点发起第一数据同步请求,共识节点或上级节点可以基于第一数据同步请求将见证节点可见的交易(即目标交易)清分给见证节点。其中,清分表示上级节点根据下级节点(即发送数据同步请求的见证节点)的权限,向下级节点同步交易。
步骤S103,根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合,基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树;
具体的,见证节点可以获取用于执行目标交易的目标智能合约,调用目标智能合约从交易读集合中获取针对目标交易的交易读数据。其中,目标智能合约可以为存储在见证节点的区块链智能合约,区块链智能合约可以在共识网络中发布,并同步到见证节点中执行。进一步地,见证节点可以根据交易读数据执行目标交易,得到目标交易对应的辅助交易写数据,将辅助交易写数据作为目标交易对应的辅助交易写集合。进一步地,见证节点可以基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树。
其中,由于交易读数据中的对象值被序列化后存储在交易读集合中,因此,见证节点在从交易读集合中获取针对目标交易的交易读数据时,需要对交易读数据的对象值所表示的字符串进行反序列化处理。其中,反序列化是从磁盘中读取字节序列将它们反序列化成对象(即第一对象值)读出来。
同理,辅助交易写数据包括对象名(即第三对象名、K)和对象值(即第三对象值、V);第三对象名用于表征辅助交易写数据的索引标识,第三对象值用于表征辅助交易写数据对应于索引标识的索引结果。同理,第三对象值可以被序列化后存储在辅助交易写集合中。应当理解,见证节点基于辅助交易写数据构建辅助状态树的具体过程可以描述为:见证节点可以根据辅助交易写集合中的辅助交易写数据对应的生成时间,对辅助交易写数据中的对象值进行排序,得到排序后的对象值。进一步地,见证节点可以对排序后的对象值进行哈希计算,得到排序后的对象值的对象哈希值。进一步地,见证节点可以基于对象哈希值的排序顺序确定状态树路径,基于对象哈希值和状态树路径构建与目标交易相关联的辅助状态树。
应当理解,本申请实施例不对哈希计算所使用的哈希算法进行限定,例如,哈希算法可以为MD5信息摘要算法(MD5 Message-Digest Algorithm)。应当理解,辅助交易写集合中可以包括一个或多个辅助交易写数据,本申请实施例不对辅助交易写集合中的辅助交易写数据的数量进行限定。
应当理解,见证节点可以获取用于表征辅助根值的根值标识,将根值标识和辅助根值关联回填至辅助交易写集合中。可以理解的是,见证节点可以基于执行结果相关参数、交易读集合和辅助交易写集合,生成目标交易对应的辅助交易执行结果。
为便于理解,请参见图4,图4是本申请实施例提供的一种执行目标交易的场景示意图。如图4所示的见证节点40a可以接收共识节点返回的区块同步数据,区块同步数据可以包括如图4所示的目标交易的交易执行结果,交易执行结果可以包括执行结果相关参数、交易写集合和交易读集合。其中,交易读集合中可以包括一个或多个交易读数据,这里以交易读集合中包括两个交易读数据为例进行说明,两个交易读数据具体可以包括交易读数据{k5:v5}和交易读数据{k6:v6};交易写集合中可以包括一个或多个目标交易写数据,这里以一个或多个目标交易写数据为五个目标交易写数据为例进行说明,五个目标交易写数据具体可以包括目标交易写数据{root:v0}、目标交易写数据{k1:v1}、目标交易写数据{k2:v2}、目标交易写数据{k3:v3}和目标交易写数据{k4:v4}。
其中,k5和k6可以表示交易读数据的对象名,v5和v6可以表示交易读数据的对象值,k1、k2、k3和k4可以表示目标交易写数据的对象名,v1、v2、v3和v4可以表示目标交易写数据的对象值,root可以表示根值标识,v0可以表示目标根值。
如图4所示,见证节点40a可以从交易执行结果中读取交易读集合,根据交易读集合中的交易读数据执行目标交易,得到如图4所示的目标交易的辅助交易执行结果,辅助交易执行结果可以包括执行结果相关参数、辅助交易写集合和交易读集合。其中,辅助交易执行结果中的执行结果相关参数和交易读集合是从交易执行结果中获取到的;辅助交易写集合中可以包括五个辅助交易写数据,五个辅助交易写数据具体可以包括辅助交易写数据{root:v0’}、辅助交易写数据{k1:v1’}、辅助交易写数据{k2:v2’}、辅助交易写数据{k3:v3’}和辅助交易写数据{k4:v4’}。
其中,k1、k2、k3和k4可以表示辅助交易写数据的对象名,v1’、v2’、v3’和v4’可以表示辅助交易写数据的对象值,root可以表示根值标识,v0’可以表示辅助根值。应当理解,本申请实施例不对根值标识进行限定,比如,根值标识可以为root,又比如,根值标识可以为r。
为便于理解,请参见图5,图5是本申请实施例提供的一种构建辅助状态树的场景示意图。如图5所示的见证节点50a可以为图4所对应实施例中的见证节点40a,见证节点50a根据交易读集合执行目标交易,可以得到如图5所示的辅助交易写集合50b,辅助交易写集合50b中可以包括辅助交易写数据{k1:v1’}、辅助交易写数据{k2:v2’}、辅助交易写数据{k3:v3’}和辅助交易写数据{k4:v4’}。
如图5所示,见证节点50a可以根据辅助交易写数据{k1:v1’}、辅助交易写数据{k2:v2’}、辅助交易写数据{k3:v3’}和辅助交易写数据{k4:v4’}分别对应的生成时间,对辅助交易写数据的对象值v1’、对象值v2’、对象值v3’和对象值v4’进行排序,得到排序后的对象值,排序后的对象值即为图5所示的对象值v1’、对象值v2’、对象值v3’和对象值v4’。其中,对象值v1’的生成时间早于对象值v2’的生成时间,对象值v2’的生成时间早于对象值v3’的生成时间,对象值v3’的生成时间早于对象值v4’的生成时间。
如图5所示,见证节点50a可以对排序后的对象值进行哈希计算,得到排序后的对象值的对象哈希值,例如,对象值v1’的对象哈希值可以为H1,对象值v2’的对象哈希值可以为H2,对象值v3’的对象哈希值可以为H3,对象值v4’的对象哈希值可以为H4
进一步地,如图5所示,见证节点50a可以基于H1和H2生成H12,见证节点50a可以基于H3和H4生成H34,进而基于H12和H34生成H1234(即v0’)。比如,见证节点50a可以对H1和H2的拼接结果进行哈希计算后得到H12,见证节点50a可以对H3和H4的拼接结果进行哈希计算后得到H34,见证节点50a可以对H12和H34的拼接结果进行哈希计算后得到H1234。其中,哈希计算可以为一次或多次,本申请对此不进行限定。
其中,可以理解的是,根据H1、H2、H3和H4的排序顺序,可以确定状态树路径(即H1、H2、H3、H4、H12、H34和H1234所构成的路径),基于对象哈希值和状态树路径可以构成图5所示的与目标交易相关联的辅助状态树50c,辅助状态树50c的辅助根值即为v0’。
进一步地,如图5所示,见证节点50a可以获取用于表征辅助根值v0’的根值标识(例如,root),将根值标识root和辅助根值v0’关联回填至辅助交易写集合50b中,即将{root:v0’}回填至辅助交易写集合50b中,得到辅助交易写集合50d。
步骤S104,将辅助状态树的辅助根值与交易写集合中的目标根值进行比较,若辅助根值与目标根值不同,则向区块链网络中的业务节点发送提示交易。
具体的,见证节点可以根据根值标识从辅助交易写集合中获取辅助状态树的辅助根值,根据根值标识从交易写集合中获取目标根值。进一步地,见证节点可以将辅助根值与目标根值进行比较,若辅助根值与目标根值不同,则向区块链网络中的业务节点发送提示交易。其中,提示交易用于指示业务节点确定与目标交易相关联的异常提示内容。
应当理解,若辅助根值与目标根值不同,则见证节点可以获取目标区块的目标区块高度和目标交易的交易哈希值,将目标区块高度和交易哈希值作为与目标交易相关联的异常提示内容。进一步地,见证节点可以通过异常智能合约生成包含异常合约名称和异常提示内容的提示交易,向区块链网络中的业务节点发送提示交易,以使业务节点通过异常智能合约执行提示交易。其中,异常合约名称为异常智能合约的合约名称。其中,异常智能合约可以为存储在见证节点的区块链智能合约。
其中,目标交易的数量可以为至少两个。应当理解,见证节点可以将至少两个目标交易中的每个目标交易分别对应的辅助状态树的辅助根值与每个目标交易分别对应的交易写集合中的目标根值进行比较。进一步地,若至少两个目标交易中存在业务交易对应的辅助根值和业务交易对应的目标根值不同,则基于业务交易向区块链网络中的业务节点发送提示交易。其中,至少两个目标交易包括业务交易。
可选的,若至少两个目标交易中不存在业务交易对应的辅助根值和业务交易对应的目标根值不同,即每个目标交易对应的辅助根值与每个目标交易对应的目标根值均相同,则见证节点无需向共识节点发送提示交易。
可选的,目标交易的数量可以为一个,这样,业务节点可以在目标交易对应的辅助根值和目标交易对应的目标根值不同时,基于目标交易向业务节点发送指示交易。可选的,业务节点可以在目标交易对应的辅助根值和目标交易对应的目标根值相同时,继续向共识节点发送的数据同步请求(例如,第三数据同步请求),以同步目标区块的下一区块。
由此可见,本申请实施例可以引入交易写集合和交易读集合,见证节点可以根据交易读集合执行目标交易,这样可以保证共识节点和见证节点在分别执行目标交易时的读盘数据(即交易读集合)是相符的,从而保证见证节点可以成功执行目标交易。此外,见证节点可以生成目标交易的执行结果(即辅助交易写集合),将辅助交易写集合与共识节点所生成的目标交易的执行结果(即交易写集合)进行比较,进而基于辅助交易写集合与交易写集合的匹配结果(即确定基于辅助交易写数据所构建的辅助状态树中的辅助根值与基于目标交易写数据所构建的目标状态树中的目标根值是否相同),确定共识节点是否成功执行目标交易,从而可以准确验证所同步到的目标交易的正确性。
进一步地,请参见图6,图6是本申请实施例提供的一种数据处理方法的流程示意图。该方法可以由区块链网络中的业务节点执行,该业务节点可以为接入至业务网络中的服务器,也可以为接入至业务网络中的终端设备,这里不对业务节点的具体形式进行限定。该业务节点可以为上述图1所示的业务网络(例如,业务网络100a)中的任意一个业务节点,例如,节点110c。其中,该数据处理方法可以包括以下步骤:
步骤S201,向区块链网络中的共识节点发送的第二数据同步请求;
可以理解的是,业务节点可以基于其节点标识向共识节点发送第二数据同步请求,可选的,业务节点可以基于其节点标识向上级节点发送第二数据同步请求,以使上级节点向共识节点转发第二数据同步请求。其中,上级节点可以为业务网络中的业务节点或见证节点。
步骤S202,接收共识节点基于第二数据同步请求返回的区块同步数据;
其中,区块同步数据包括目标区块的目标区块头、目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合。其中,交易执行结果还包括目标交易对应的执行结果相关参数,执行结果相关参数可以表示目标交易是否被正确执行、目标交易执行的时间戳、区块高度和错误码等。
其中,交易读集合是由交易读数据构成的,交易读数据包括对象名(即第一对象名、K)和对象值(即第一对象值、V);第一对象名用于表征交易读数据的索引标识,第一对象值用于表征交易读数据对应于索引标识的索引结果。同理,交易写集合是由目标交易写数据构成的,目标交易写数据包括对象名(即第二对象名、K)和对象值(即第二对象值、V);第二对象名用于表征目标交易写数据的索引标识,第二对象值用于表征目标交易写数据对应于索引标识的索引结果。
可以理解的是,共识节点可以基于交易写集合中的目标交易写数据构建的目标状态树,获取用于表征目标状态树的目标根值的根值标识,将根值标识和目标根值关联回填至交易写集合中。
换言之,业务节点可以向共识节点或者业务节点的上级节点发起第二数据同步请求,共识节点或上级节点基于第一数据同步请求将业务节点可见的交易(即目标交易)清分给业务节点。
步骤S203,对目标区块头进行校验,得到校验结果,若校验结果指示校验成功,则对区块同步数据进行存储;
应当理解,业务节点可以从目标区块头中获取针对目标区块的节点签名,确定节点签名的签名数量。进一步地,业务节点可以获取区块链网络中的共识节点数量,若签名数量与共识节点数量之间的比例大于比例阈值,则生成用于表征校验成功的校验结果(即第一业务校验结果)。进一步地,若签名数量与共识节点数量之间的比例小于或等于比例阈值,则业务节点可以生成用于表征校验不成功的校验结果(即第一业务校验结果)。应当理解,本申请实施例不对比例阈值的具体取值进行限定。
其中,区块同步数据还包括目标交易对应的默克尔证明信息。可选的,应当理解,业务节点可以基于目标交易的交易哈希值和默克尔证明信息,确定目标区块对应的待比较树根。进一步地,业务节点可以获取目标区块头中针对目标区块的交易的默克尔树根,将待比较树根与默克尔树根进行比较,若待比较树根与默克尔树根相同,则生成用于表征校验成功的校验结果(即第二业务校验结果)。其中,目标区块中的交易包括目标交易。进一步地,若待比较树根与默克尔树根不同,则业务节点可以生成用于表征校验失败的校验结果(即第二业务校验结果)。其中,默尔克树根表示默克尔树的树根,默克尔树是由共识节点基于目标区块中的交易的哈希值所构建的。
其中,默尔克证明信息可以包括路径哈希值和默尔克路径,默尔克路径可以表示路径哈希值的排序方式。因此,业务节点可以基于交易哈希值、路径哈希值和默克尔路径,构建与目标交易相关联的待比较默尔克树,将待比较默克尔树的树根作为待比较树根。
为便于理解,这里以目标区块中的交易的数量为4个为例进行说明,4个交易可以为交易1、交易2、交易3和交易4。其中,对4个交易进行哈希计算可以得到交易的哈希值,例如,交易1的哈希值可以为哈希值1(例如,Hash1),交易2的哈希值可以为哈希值2(例如,Hash2),交易3的哈希值可以为哈希值3(例如,Hash3),交易4的哈希值可以为哈希值4(例如,Hash4)。例如,目标交易可以为目标区块中的交易3和交易4。可以理解的是,共识节点可以获取目标交易对应的默克尔证明信息,这里的默克尔证明信息可以由默克尔路径和路径哈希值构成,例如,这里可以由Hash12(即基于Hash1和Hash2所生成的哈希值,表示对Hash1和Hash2的拼接结果进行哈希计算后所得到的哈希值)作为路径哈希值。
可选的,应当理解,业务节点可以从节点磁盘中获取区块高度小于目标区块的目标区块高度的上一区块,获取上一区块的区块哈希值(即上一区块的区块头中的默克尔树根、区块哈希)和目标区块头中的父区块哈希值(即父区块哈希),将区块哈希值与父区块哈希值进行比较,若区块哈希值与父区块哈希值相同,则生成用于表征校验成功的校验结果(即第三业务校验结果)。可选的,若区块哈希值与父区块哈希值不同,则业务节点可以生成用于表征校验失败的校验结果(即第三业务校验结果)。
应当理解,本申请实施例可以在第一业务校验结果指示校验成功时,对区块同步数据进行存储;可选的,本申请实施例可以在第二业务校验结果指示校验成功时,对区块同步数据进行存储;可选的,本申请实施例可以在第三业务校验结果指示校验成功时,对区块同步数据进行存储;可选的,本申请实施例可以在第一业务校验结果、第二业务校验结果和第三业务校验结果均指示校验成功时,对区块同步数据进行存储。
步骤S204,若接收区块链网络中的见证节点发送的提示交易,则根据提示交易确定与目标交易相关联的异常提示内容;
其中,提示交易是由见证节点在辅助状态树的辅助根值与交易写集合中的目标根值不同时所生成的;辅助状态树是由见证节点基于辅助交易写集合中的辅助交易写数据所构建的;辅助交易写集合是由见证节点根据交易读集合执行目标交易所得到的。
可选的,若未接收到区块链网络中的见证节点发送的提示交易,则业务节点可以继续向共识节点发送的数据同步请求(例如,第四数据同步请求),以同步目标区块的下一区块。
步骤S205,根据异常提示内容对所存储的区块同步数据进行回滚处理。
其中,异常提示内容包括目标区块的目标区块高度;其中,异常提示内容还可以包括目标交易的交易哈希值。业务节点将异常提示内容存储至节点日志中,即业务节点可以将目标区块高度和交易哈希值存储至节点日志中,且报错并将所存储的区块回退至出错前。这样,区块链系统对应的管理员可以从节点日志中获取目标区块高度和交易哈希值,确定对目标区块进行打包处理的共识节点,确定打包处理的共识节点是否为作恶节点。
应当理解,业务节点对所存储的区块同步数据进行回滚处理的具体过程可以描述为:业务节点可以获取所存储的区块头中的最大区块高度,若最大区块高度等于目标区块高度,则删除所存储的区块同步数据。可选的,若最大区块高度大于目标区块高度,则业务节点可以删除处于区块高度范围内的已存储区块同步数据。其中,已存储区块同步数据包括所存储的区块同步数据;区块高度范围是基于最大区块高度和目标区块高度所确定的。
由此可见,业务节点可以从共识节点中获取区块同步数据,区块同步数据可以包括目标区块的目标区块头、目标区块中的目标交易、目标交易对应的交易读集合和目标交易对应的交易写集合,因此,业务节点可以对目标区块头、目标交易、目标交易读集合和目标交易写集合进行存储。可以理解的是,见证节点可以基于交易读集合和交易写集合对目标交易进行验证,进而在验证失败(即基于辅助交易写数据所构建的辅助状态树中的辅助根值与基于目标交易写数据所构建的目标状态树中的目标根值不同)时,向业务节点发送提示交易,这样,业务节点可以根据是否接收到见证节点发送的提示交易,确定共识节点是否成功执行目标交易。若业务节点确定共识节点未成功执行目标交易,则对所存储的目标区块头、目标交易、目标交易读集合和目标交易写集合进行回滚处理,因此,本申请实施例可以准确验证所同步到的目标交易的正确性。
进一步地,请参见图7,图7是本申请实施例提供的一种数据处理方法的流程示意图。该方法可以由业务网络中的业务节点和见证节点共同执行。该业务节点可以为上述图1所示的业务网络(例如,业务网络100a)中的任意一个业务节点,例如,节点110c;该见证节点可以为上述图1所示的业务网络(例如,业务网络100a)中的任意一个见证节点,例如,节点110a。其中,业务节点和见证节点处于同一个业务网络中。其中,该数据处理方法可以包括以下步骤:
步骤S301,见证节点向区块链网络中的共识节点发送第一数据同步请求;
其中,见证节点向共识节点发送第一数据同步请求的具体过程,可以参见上述图3所对应实施例中对步骤S101的描述,这里将不再进行赘述。
步骤S302,业务节点向区块链网络中的共识节点发送的第二数据同步请求;
其中,业务节点向共识节点发送第二数据同步请求的具体过程,可以参见上述图6所对应实施例中对步骤S201的描述,这里将不再进行赘述。
步骤S303,见证节点接收共识节点基于第一数据同步请求返回的区块同步数据;
其中,区块同步数据(即第一区块同步数据)包括目标区块的目标区块头、目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合。
应当理解,第一区块同步数据可以包括与一个或多个区块相关联的数据,为便于理解,本申请实施例以第一区块同步数据包括与目标区块相关联的数据为例进行说明。
步骤S304,业务节点接收共识节点基于第二数据同步请求返回的区块同步数据;
其中,区块同步数据(即第二区块同步数据)包括目标区块的目标区块头、目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合。
应当理解,第二区块同步数据可以包括与一个或多个区块相关联的数据,为便于理解,本申请实施例以第二区块同步数据包括与目标区块相关联的数据为例进行说明。
其中,为保证区块链网络中的交易的隐私,第一区块同步数据和第二区块同步数据中的目标交易可以为与见证节点相关联的交易,也可以为与业务节点相关联的交易,此外,目标交易可以为业务节点提交至共识网络中的共识节点的交易。其中,目标交易可以目标区块中的全量交易,也可以为目标区块中的部分交易,可以理解的是,在目标交易为目标区块中的部分交易时,见证节点和业务节点可以获取部分交易和部分交易对应的交易执行结果,从而可以保证目标区块中的交易隐私。
应当理解,第一区块同步数据和第二区块同步数据可以包括与相同区块相关联的数据,也可以包括与不同区块相关联的数据,比如,第一区块同步数据可以包括与目标区块和区块Q1相关联的数据,第二区块同步数据可以包括与目标区块和区块Q2相关联的数据。为便于理解,本申请实施例以第一区块同步数据和第二区块同步数据均包括与目标区块相关联的数据为例进行说明。
同理,应当理解,第一区块同步数据和第二区块同步数据可以包括与相同交易相关联的数据,也可以包括与不同交易相关联的数据,比如,第一区块同步数据可以包括与目标交易和交易Y1相关联的数据,第二区块同步数据可以包括与目标交易和交易Y2相关联的数据。其中,交易Y1和交易Y2均属于目标区块。为便于理解,本申请实施例以第一区块同步数据和第二区块同步数据均包括与目标交易相关联的数据为例进行说明。
为便于理解,请参见图8,图8是本申请实施例提供的一种发送数据同步请求的场景示意图。如图8所示,区块链网络中可以包括共识网络、业务网络O1、…、和业务网络O2,共识网络所维护的区块链上可以包括但不限于区块(N-1)、区块N和区块(N+1),业务网络O1中可以包括但不限于业务节点P1和见证节点G1,业务网络O2中可以包括但不限于业务节点P2和见证节点G2
如图8所示的业务网络中的业务节点和见证节点均可以向共识网络中的共识节点发送数据同步请求,共识网络中的共识节点可以向业务网络中的业务节点和见证节点返回区块同步数据。为便于理解,本申请实施例可以将业务网络O1确定为目标业务网络,将业务网络O1中的业务节点P1确定为目标业务节点,将业务网络O1中的见证节点G1确定为目标见证节点,将共识网络中的区块N确定为目标区块。
因此,目标见证节点可以向共识网络中的共识节点(即目标共识节点)发送针对区块N(即目标区块)的第一数据同步请求,目标业务节点可以向共识网络中的共识节点发送针对区块N的第二数据同步请求。
应当理解,每个业务网络中均可以包含业务节点和见证节点,业务节点和见证节点向共识网络请求区块的行为一致,因此,共识节点不感知发送数据同步请求的下级节点是业务节点还是见证节点。换言之,本申请实施例中的见证节点和业务节点拥有等同的权限,共识节点清分时会对见证节点和业务节点进行鉴权,因此,见证节点和业务节点不会拥有全量的交易数据,这满足了数据隐私性的要求。
步骤S305,业务节点对目标区块头进行校验,得到第二校验结果;
其中,业务节点对目标区块头进行校验(即验证目标区块头的合法性、有效性)的具体过程,可以参见上述图6所对应实施例中对步骤S203的描述,这里将不再进行赘述。
步骤S306,若校验结果指示校验成功,则业务节点对区块同步数据进行存储;
可选的,业务节点可以无需对区块同步数据中的交易读集合进行存储,而是对目标区块头、目标交易和交易写集合进行存储。
步骤S307,见证节点对目标区块头进行校验,得到第一校验结果;
其中,见证节点对目标区块头进行校验(即验证目标区块头的合法性、有效性)的具体过程,可以参见上述图6所对应实施例的步骤S203中业务节点对目标区块头进行校验的描述,这里将不再进行赘述。
步骤S308,见证节点根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合,基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树;
其中,见证节点根据交易读集合执行目标交易以及基于辅助交易写数据构建辅助状态树的具体过程,可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再进行赘述。
步骤S309,见证节点将辅助状态树的辅助根值与交易写集合中的目标根值进行比较;
应当理解,本申请实施例可以先执行步骤S305-步骤S309、再执行步骤S307-步骤S309,可选的,本申请实施例也可以先执行步骤S307-步骤S309、再执行步骤S305-步骤S309,可选的,本申请实施例还可以同时执行步骤S305-步骤S309和步骤S307-步骤S309。
其中,见证节点将辅助根值与目标根值进行比较的具体过程,可以参见上述图3所对应实施例中对步骤S104的描述,这里将不再进行赘述。其中,目标根值是由共识节点基于交易写集合中的目标交易写数据构建的目标状态树所确定的。
步骤S310,若辅助根值与目标根值不同,则见证节点向区块链网络中的业务节点发送提示交易;
可以理解的是,见证节点在发现共识节点执行交易出错后,可以向业务节点发送特定交易请求,该特定交易请求约定特殊合约名(即异常合约名称)(即交易信息中的合约名为事先定义好的字段),交易参数(即合约参数)包括出错区块高度(即目标区块高度)和错误交易哈希(即交易哈希值)。这样,业务节点接收到该特殊交易后,可以感知目标交易执行出错。
其中,见证节点生成提示交易以及向业务节点发送提示交易的具体过程,可以参见上述图3所对应实施例中对步骤S104的描述,这里将不再进行赘述。
步骤S311,业务节点接收区块链网络中的见证节点发送的提示交易,根据提示交易确定与目标交易相关联的异常提示内容,根据异常提示内容对所存储的区块同步数据进行回滚处理。
其中,业务节点根据异常提示内容对区块同步数据进行回滚处理的具体过程,可以参见上述图6所对应实施例中对步骤S205的描述,这里将不再进行赘述。
应当理解,见证节点在向业务节点发送提示交易时,为避免见证节点在同步区块同步数据时发生错误,可以重新向共识节点发送第一数据同步请求;同理,业务节点在接收见证节点发送的提示交易时,可以重新向共识节点发送第二数据同步请求。这样,见证节点和业务节点可以重新执行上述步骤S303-步骤S311,进而在见证节点又一次向业务节点发送提示交易时,即在业务节点又一次接收见证节点发送的提示交易时,业务节点可以根据异常提示内容对所存储的区块同步数据进行回滚处理。
可以理解的是,本申请实施例中的见证节点可以存储全量区块头,本申请实施例中的业务节点可以存储全量区块头、也可以存储部分区块头,本申请实施例以业务节点存储全量区块头为例进行说明。此外,业务节点需要执行业务逻辑、向共识网络提交业务操作等,为减轻业务节点的工作量,本申请实施例通过见证节点重放交易来验证交易的正确性。
可选的,本您申请实施例也可以通过业务节点重放交易来验证交易的正确性,具体的,业务节点可以在接收到共识节点返回的区块同步数据时,根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合,进而基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树。进一步地,业务节点可以将辅助状态树的辅助树根与交易写集合中的目标树根进行比较,进而在辅助树根与目标树根不同时,删除从共识节点获取的区块同步数据,重新向共识节点发送数据同步请求。可选的,在辅助树根与目标树根相同时,业务节点可以对区块同步数据进行存储。
由此可见,本申请实施例可以通过业务网络中的业务节点和见证节点分别从核心共识网络中的共识节点处获取区块同步数据。见证节点可以对目标交易进行重放,根据重放目标交易所得到的辅助交易写集合和共识节点所返回的交易写集合,确定共识节点是否成功执行目标交易;业务节点可以对区块同步数据进行存储。可以理解的是,在共识节点未成功执行目标交易时,见证节点可以向业务节点发送提示交易,这样,业务节点可以根据提示交易中的异常提示内容,感知共识节点对目标交易的执行错误,对所存储的区块同步数据进行回滚处理,因此,本申请实施例中的轻量级节点(即业务节点和见证节点)可以实现验证目标交易的准确性,即校验共识节点交易执行是否正确。此外,本申请实施例所提供的通过交易读集合和交易写集合对目标交易进行验证的方式,可以降低对目标交易进行验证的成本。
进一步地,请参见图9,图9是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该数据处理装置1为一个应用软件;该数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图9所示,该数据处理装置1可以应用于区块链网络中的见证节点,该见证节点可以为上述图2所对应实施例中的见证节点20a。该数据处理装置1可以包括:第一发送模块11,第一接收模块12,交易执行模块13,交易发送模块14;
第一发送模块11,用于向区块链网络中的共识节点发送第一数据同步请求;
第一接收模块12,用于接收共识节点基于第一数据同步请求返回的区块同步数据;区块同步数据包括目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合;
交易执行模块13,用于根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合,基于辅助交易写集合中的辅助交易写数据,构建与目标交易相关联的辅助状态树;
其中,辅助交易写数据包括对象名和对象值;对象名用于表征辅助交易写数据的索引标识,对象值用于表征辅助交易写数据对应于索引标识的索引结果;
交易执行模块包括:合约调用单元131,交易执行单元132,对象值排序单元133,哈希计算单元134,状态树构建单元135;
合约调用单元131,用于获取用于执行目标交易的目标智能合约,调用目标智能合约从交易读集合中获取针对目标交易的交易读数据;
交易执行单元132,用于根据交易读数据执行目标交易,得到目标交易对应的辅助交易写数据,将辅助交易写数据作为目标交易对应的辅助交易写集合。
对象值排序单元133,用于根据辅助交易写集合中的辅助交易写数据对应的生成时间,对辅助交易写数据中的对象值进行排序,得到排序后的对象值;
哈希计算单元134,用于对排序后的对象值进行哈希计算,得到排序后的对象值的对象哈希值;
状态树构建单元135,用于基于对象哈希值的排序顺序确定状态树路径,基于对象哈希值和状态树路径构建与目标交易相关联的辅助状态树。
其中,合约调用单元131,交易执行单元132,对象值排序单元133,哈希计算单元134和状态树构建单元135的具体实现方式,可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再进行赘述。
交易发送模块14,用于将辅助状态树的辅助根值与交易写集合中的目标根值进行比较,若辅助根值与目标根值不同,则向区块链网络中的业务节点发送提示交易;目标根值是由共识节点基于交易写集合中的目标交易写数据构建的目标状态树所确定的;提示交易用于指示业务节点确定与目标交易相关联的异常提示内容。
其中,交易发送模块14包括:根值比较单元141,交易生成单元142;
根值比较单元141,用于根据根值标识从辅助交易写集合中获取辅助状态树的辅助根值,根据根值标识从交易写集合中获取目标根值;
根值比较单元141,用于将辅助根值与目标根值进行比较。
交易生成单元142,用于若辅助根值与目标根值不同,则获取目标区块的目标区块高度和目标交易的交易哈希值,将目标区块高度和交易哈希值作为与目标交易相关联的异常提示内容;
交易生成单元142,用于通过异常智能合约生成包含异常合约名称和异常提示内容的提示交易,向区块链网络中的业务节点发送提示交易,以使业务节点通过异常智能合约执行提示交易;异常合约名称为异常智能合约的合约名称。
其中,根值比较单元141和交易生成单元142的具体实现方式,可以参见上述图3所对应实施例中对步骤S104的描述,这里将不再进行赘述。
其中,目标交易的数量为至少两个;
交易发送模块14,具体用于将至少两个目标交易中的每个目标交易分别对应的辅助状态树的辅助根值与每个目标交易分别对应的交易写集合中的目标根值进行比较;
交易发送模块14,具体用于若至少两个目标交易中存在业务交易对应的辅助根值和业务交易对应的目标根值不同,则基于业务交易向区块链网络中的业务节点发送提示交易;至少两个目标交易包括业务交易。
其中,数据处理装置1还具体用于获取用于表征辅助根值的根值标识,将根值标识和辅助根值关联回填至辅助交易写集合中。
其中,区块同步数据还包括目标区块的目标区块头;
数据处理装置1还具体用于对目标区块头进行校验,得到校验结果,若校验结果指示校验成功,则执行根据交易读集合执行目标交易,得到目标交易对应的辅助交易写集合的步骤。
其中,第一发送模块11,第一接收模块12,交易执行模块13和交易发送模块14的具体实现方式,可以参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图10,图10是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该数据处理装置2为一个应用软件;该数据处理装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图10所示,该数据处理装置2可以应用于区块链网络中的业务节点,该业务节点可以为上述图2所对应实施例中的业务节点20b。该数据处理装置2可以包括:第二发送模块21,第二接收模块22,数据存储模块23,交易接收模块24,数据回滚模块25;
第二发送模块21,用于向区块链网络中的共识节点发送的第二数据同步请求;
第二接收模块22,用于接收共识节点基于第二数据同步请求返回的区块同步数据;区块同步数据包括目标区块的目标区块头、目标区块中的目标交易和目标交易对应的交易执行结果;交易执行结果包括目标交易对应的交易读集合和交易写集合;
数据存储模块23,用于对目标区块头进行校验,得到校验结果,若校验结果指示校验成功,则对区块同步数据进行存储;
其中,数据存储模块23,具体用于从目标区块头中获取针对目标区块的节点签名,确定节点签名的签名数量;
数据存储模块23,具体用于获取区块链网络中的共识节点数量,若签名数量与共识节点数量之间的比例大于比例阈值,则生成用于表征校验成功的校验结果;
数据存储模块23,具体用于若签名数量与共识节点数量之间的比例小于或等于比例阈值,则生成用于表征校验不成功的校验结果。
其中,区块同步数据还包括目标交易对应的默克尔证明信息;
数据存储模块23,具体用于基于目标交易的交易哈希值和默克尔证明信息,确定目标区块对应的待比较树根;
数据存储模块23,具体用于获取目标区块头中针对目标区块的交易的默克尔树根,将待比较树根与默克尔树根进行比较,若待比较树根与默克尔树根相同,则生成用于表征校验成功的校验结果;目标区块中的交易包括目标交易;
数据存储模块23,具体用于若待比较树根与默克尔树根不同,则生成用于表征校验失败的校验结果。
交易接收模块24,用于若接收区块链网络中的见证节点发送的提示交易,则根据提示交易确定与目标交易相关联的异常提示内容;提示交易是由见证节点在辅助状态树的辅助根值与交易写集合中的目标根值不同时所生成的;辅助状态树是由见证节点基于辅助交易写集合中的辅助交易写数据所构建的;辅助交易写集合是由见证节点根据交易读集合执行目标交易所得到的;目标根值是由共识节点基于交易写集合中的目标交易写数据构建的目标状态树所确定的;
数据回滚模块25,用于根据异常提示内容对所存储的区块同步数据进行回滚处理。
其中,异常提示内容包括目标区块的目标区块高度;
数据回滚模块25包括:第一删除单元251,第二删除单元252;
第一删除单元251,用于获取所存储的区块头中的最大区块高度,若最大区块高度等于目标区块高度,则删除所存储的区块同步数据;
第二删除单元252,用于若最大区块高度大于目标区块高度,则删除处于区块高度范围内的已存储区块同步数据;已存储区块同步数据包括所存储的区块同步数据;区块高度范围是基于最大区块高度和目标区块高度所确定的;
则数据处理装置2还具体用于将异常提示内容存储至节点日志中。
其中,第一删除单元251和第二删除单元252的具体实现方式,可以参见上述图6所对应实施例中对步骤S205的描述,这里将不再进行赘述。
其中,第二发送模块21,第二接收模块22,数据存储模块23,交易接收模块24和数据回滚模块25的具体实现方式,可以参见上述图6所对应实施例中对步骤S201-步骤S205的描述,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备可以是业务网络中的业务节点或业务网络中的见证节点。如图11所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,在一些实施例中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。可选的,网络接口1004可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器1005还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3、图6和图7所对应实施例中对数据处理方法的描述,也可执行前文图9所对应实施例中对数据处理装置1和图10所对应实施例中对数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置1和数据处理装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3、图6和图7所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3、图6和图7所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (17)

1.一种数据处理方法,其特征在于,所述方法由区块链网络中的见证节点执行,包括:
所述见证节点向所述区块链网络中的共识节点发送第一数据同步请求;
接收所述共识节点基于所述第一数据同步请求返回的区块同步数据;所述区块同步数据包括目标区块中的目标交易和所述目标交易对应的交易执行结果;所述交易执行结果包括所述目标交易对应的交易读集合和交易写集合;
根据所述交易读集合执行所述目标交易,得到所述目标交易对应的辅助交易写集合,基于所述辅助交易写集合中的辅助交易写数据,构建与所述目标交易相关联的辅助状态树;
将所述辅助状态树的辅助根值与所述交易写集合中的目标根值进行比较,若所述辅助根值与所述目标根值不同,则向所述区块链网络中的业务节点发送提示交易;所述目标根值是由所述共识节点基于所述交易写集合中的目标交易写数据构建的目标状态树所确定的;所述提示交易用于指示所述业务节点确定与所述目标交易相关联的异常提示内容。
2.根据权利要求1所述的方法,其特征在于,所述根据所述交易读集合执行所述目标交易,得到所述目标交易对应的辅助交易写集合,包括:
获取用于执行所述目标交易的目标智能合约,调用所述目标智能合约从所述交易读集合中获取针对所述目标交易的交易读数据;
根据所述交易读数据执行所述目标交易,得到所述目标交易对应的辅助交易写数据,将所述辅助交易写数据作为所述目标交易对应的辅助交易写集合。
3.根据权利要求1所述的方法,其特征在于,所述辅助交易写数据包括对象名和对象值;所述对象名用于表征所述辅助交易写数据的索引标识,所述对象值用于表征所述辅助交易写数据对应于所述索引标识的索引结果;
所述基于所述辅助交易写集合中的辅助交易写数据,构建与所述目标交易相关联的辅助状态树,包括:
根据所述辅助交易写集合中的辅助交易写数据对应的生成时间,对所述辅助交易写数据中的对象值进行排序,得到排序后的对象值;
对所述排序后的对象值进行哈希计算,得到所述排序后的对象值的对象哈希值;
基于所述对象哈希值的排序顺序确定状态树路径,基于所述对象哈希值和所述状态树路径构建与所述目标交易相关联的辅助状态树。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取用于表征所述辅助根值的根值标识,将所述根值标识和所述辅助根值关联回填至所述辅助交易写集合中。
5.根据权利要求4所述的方法,其特征在于,所述将所述辅助状态树的辅助根值与所述交易写集合中的目标根值进行比较,包括:
根据所述根值标识从所述辅助交易写集合中获取所述辅助状态树的辅助根值,根据所述根值标识从所述交易写集合中获取目标根值;
将所述辅助根值与所述目标根值进行比较。
6.根据权利要求1所述的方法,其特征在于,所述若所述辅助根值与所述目标根值不同,则向所述区块链网络中的业务节点发送提示交易,包括:
若所述辅助根值与所述目标根值不同,则获取所述目标区块的目标区块高度和所述目标交易的交易哈希值,将所述目标区块高度和所述交易哈希值作为与所述目标交易相关联的异常提示内容;
通过异常智能合约生成包含异常合约名称和所述异常提示内容的提示交易,向所述区块链网络中的业务节点发送所述提示交易,以使所述业务节点通过所述异常智能合约执行所述提示交易;所述异常合约名称为所述异常智能合约的合约名称。
7.根据权利要求1所述的方法,其特征在于,所述目标交易的数量为至少两个;
所述将所述辅助状态树的辅助根值与所述交易写集合中的目标根值进行比较,若所述辅助根值与所述目标根值不同,则向所述区块链网络中的业务节点发送提示交易,包括:
将至少两个目标交易中的每个目标交易分别对应的辅助状态树的辅助根值与所述每个目标交易分别对应的交易写集合中的目标根值进行比较;
若所述至少两个目标交易中存在业务交易对应的辅助根值和所述业务交易对应的目标根值不同,则基于所述业务交易向所述区块链网络中的业务节点发送提示交易;所述至少两个目标交易包括所述业务交易。
8.根据权利要求1所述的方法,其特征在于,所述区块同步数据还包括所述目标区块的目标区块头;
所述方法还包括:
对所述目标区块头进行校验,得到校验结果,若所述校验结果指示校验成功,则执行所述根据所述交易读集合执行所述目标交易,得到所述目标交易对应的辅助交易写集合的步骤。
9.一种数据处理方法,其特征在于,所述方法由区块链网络中的业务节点执行,包括:
所述业务节点向所述区块链网络中的共识节点发送的第二数据同步请求;
接收所述共识节点基于所述第二数据同步请求返回的区块同步数据;所述区块同步数据包括目标区块的目标区块头、所述目标区块中的目标交易和所述目标交易对应的交易执行结果;所述交易执行结果包括所述目标交易对应的交易读集合和交易写集合;
对所述目标区块头进行校验,得到校验结果,若所述校验结果指示校验成功,则对所述区块同步数据进行存储;
若接收所述区块链网络中的见证节点发送的提示交易,则根据所述提示交易确定与所述目标交易相关联的异常提示内容;所述提示交易是由所述见证节点在辅助状态树的辅助根值与所述交易写集合中的目标根值不同时所生成的;所述辅助状态树是由所述见证节点基于辅助交易写集合中的辅助交易写数据所构建的;所述辅助交易写集合是由所述见证节点根据所述交易读集合执行所述目标交易所得到的;所述目标根值是由所述共识节点基于所述交易写集合中的目标交易写数据构建的目标状态树所确定的;
根据所述异常提示内容对所存储的所述区块同步数据进行回滚处理。
10.根据权利要求9所述的方法,其特征在于,所述对所述目标区块头进行校验,得到校验结果,包括:
从所述目标区块头中获取针对所述目标区块的节点签名,确定所述节点签名的签名数量;
获取所述区块链网络中的共识节点数量,若所述签名数量与所述共识节点数量之间的比例大于比例阈值,则生成用于表征校验成功的校验结果;
若所述签名数量与所述共识节点数量之间的比例小于或等于所述比例阈值,则生成用于表征校验不成功的校验结果。
11.根据权利要求9所述的方法,其特征在于,所述区块同步数据还包括所述目标交易对应的默克尔证明信息;
所述对所述目标区块头进行校验,得到校验结果,包括:
基于所述目标交易的交易哈希值和所述默克尔证明信息,确定所述目标区块对应的待比较树根;
获取所述目标区块头中针对所述目标区块的交易的默克尔树根,将所述待比较树根与所述默克尔树根进行比较,若所述待比较树根与所述默克尔树根相同,则生成用于表征校验成功的校验结果;所述目标区块中的交易包括所述目标交易;
若所述待比较树根与所述默克尔树根不同,则生成用于表征校验失败的校验结果。
12.根据权利要求9所述的方法,其特征在于,所述异常提示内容包括所述目标区块的目标区块高度;
所述根据所述异常提示内容对所存储的所述区块同步数据进行回滚处理,包括:
获取所存储的区块头中的最大区块高度,若所述最大区块高度等于所述目标区块高度,则删除所存储的所述区块同步数据;
若所述最大区块高度大于所述目标区块高度,则删除处于区块高度范围内的已存储区块同步数据;所述已存储区块同步数据包括所存储的所述区块同步数据;所述区块高度范围是基于所述最大区块高度和所述目标区块高度所确定的;
则所述方法还包括:
将所述异常提示内容存储至节点日志中。
13.一种数据处理装置,其特征在于,所述装置应用于区块链网络中的见证节点,包括:
第一发送模块,用于向所述区块链网络中的共识节点发送第一数据同步请求;
第一接收模块,用于接收所述共识节点基于所述第一数据同步请求返回的区块同步数据;所述区块同步数据包括目标区块中的目标交易和所述目标交易对应的交易执行结果;所述交易执行结果包括所述目标交易对应的交易读集合和交易写集合;
交易执行模块,用于根据所述交易读集合执行所述目标交易,得到所述目标交易对应的辅助交易写集合,基于所述辅助交易写集合中的辅助交易写数据,构建与所述目标交易相关联的辅助状态树;
交易发送模块,用于将所述辅助状态树的辅助根值与所述交易写集合中的目标根值进行比较,若所述辅助根值与所述目标根值不同,则向所述区块链网络中的业务节点发送提示交易;所述目标根值是由所述共识节点基于所述交易写集合中的目标交易写数据构建的目标状态树所确定的;所述提示交易用于指示所述业务节点确定与所述目标交易相关联的异常提示内容。
14.一种数据处理装置,其特征在于,所述装置应用于区块链网络中的业务节点,包括:
第二发送模块,用于向所述区块链网络中的共识节点发送的第二数据同步请求;
第二接收模块,用于接收所述共识节点基于所述第二数据同步请求返回的区块同步数据;所述区块同步数据包括目标区块的目标区块头、所述目标区块中的目标交易和所述目标交易对应的交易执行结果;所述交易执行结果包括所述目标交易对应的交易读集合和交易写集合;
数据存储模块,用于对所述目标区块头进行校验,得到校验结果,若所述校验结果指示校验成功,则对所述区块同步数据进行存储;
交易接收模块,用于若接收所述区块链网络中的见证节点发送的提示交易,则根据所述提示交易确定与所述目标交易相关联的异常提示内容;所述提示交易是由所述见证节点在辅助状态树的辅助根值与所述交易写集合中的目标根值不同时所生成的;所述辅助状态树是由所述见证节点基于辅助交易写集合中的辅助交易写数据所构建的;所述辅助交易写集合是由所述见证节点根据所述交易读集合执行所述目标交易所得到的;所述目标根值是由所述共识节点基于所述交易写集合中的目标交易写数据构建的目标状态树所确定的;
数据回滚模块,用于根据所述异常提示内容对所存储的所述区块同步数据进行回滚处理。
15.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-12任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-12任一项所述的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,且适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-12任一项所述的方法。
CN202210562916.0A 2022-05-23 2022-05-23 一种数据处理方法、装置、计算机设备以及可读存储介质 Pending CN117155953A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210562916.0A CN117155953A (zh) 2022-05-23 2022-05-23 一种数据处理方法、装置、计算机设备以及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210562916.0A CN117155953A (zh) 2022-05-23 2022-05-23 一种数据处理方法、装置、计算机设备以及可读存储介质

Publications (1)

Publication Number Publication Date
CN117155953A true CN117155953A (zh) 2023-12-01

Family

ID=88885409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210562916.0A Pending CN117155953A (zh) 2022-05-23 2022-05-23 一种数据处理方法、装置、计算机设备以及可读存储介质

Country Status (1)

Country Link
CN (1) CN117155953A (zh)

Similar Documents

Publication Publication Date Title
EP4035050B1 (en) Consensus protocol for blockchain dag structure
EP3893433B1 (en) Data isolation in blockchain networks
US20210209373A1 (en) Media authentication using distributed ledger
US20230316273A1 (en) Data processing method and apparatus, computer device, and storage medium
US11387979B2 (en) Partially-ordered blockchain
US11593316B2 (en) Database snapshot for managing state synchronization
WO2022134951A1 (zh) 一种数据同步方法、装置、设备以及计算机可读存储介质
US20230037932A1 (en) Data processing method and apparatus based on blockchain network, and computer device
US20210232568A1 (en) Index structure for blockchain ledger
US11379472B2 (en) Schema-based pruning of blockchain data
CN112988667B (zh) 一种基于区块链网络的数据存储方法及装置
CN112883117B (zh) 一种数据同步方法、设备以及计算机可读存储介质
CN111367923A (zh) 数据处理方法、装置、节点设备及存储介质
CN111339551B (zh) 数据的验证方法及相关装置、设备
US20240333702A1 (en) Data processing method and apparatus, computer device, and readable storage medium
US20240163118A1 (en) Blockchain-based data processing method, device, and readable storage medium
CN111444204A (zh) 一种同步处理方法、装置、设备及介质
CN116827957B (zh) 基于多区块链的信息处理方法、装置、设备以及介质
CN117407437A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN111444206B (zh) 一种同步处理方法、装置、设备及介质
CN117010889A (zh) 数据处理方法、装置及设备、介质、产品
CN117155953A (zh) 一种数据处理方法、装置、计算机设备以及可读存储介质
CN115375304A (zh) 一种基于区块链的数据处理方法、装置、设备以及介质
CN117459237A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN117811739A (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