CN113507528B - 数据处理方法及电子设备 - Google Patents

数据处理方法及电子设备 Download PDF

Info

Publication number
CN113507528B
CN113507528B CN202110836806.4A CN202110836806A CN113507528B CN 113507528 B CN113507528 B CN 113507528B CN 202110836806 A CN202110836806 A CN 202110836806A CN 113507528 B CN113507528 B CN 113507528B
Authority
CN
China
Prior art keywords
node
consensus
target
block
nodes
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.)
Active
Application number
CN202110836806.4A
Other languages
English (en)
Other versions
CN113507528A (zh
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202110836806.4A priority Critical patent/CN113507528B/zh
Publication of CN113507528A publication Critical patent/CN113507528A/zh
Application granted granted Critical
Publication of CN113507528B publication Critical patent/CN113507528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据处理方法及电子设备,所述方法包括:节点组中的目标节点获得共识选举结果,所述共识选举结果表征所述目标节点是否为共识节点;所述节点组中包含多个所述目标节点,且所述节点组为多个;所述节点组为区块链中的控制节点对节点集合中的节点进行划分所得到的组;在所述共识选举结果表征所述目标节点为共识节点的情况下,所述目标节点执行异步共识算法,以得到共识区块并将所述共识区块进行输出;在所述共识选举结果表征所述目标节点为非共识节点的情况下,所述目标节点接收所述共识节点输出的共识区块。

Description

数据处理方法及电子设备
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据处理方法及电子设备。
背景技术
由于区块链节点的位置分散,通常采用异步共识算法实现区块链节点之间的共识输出。
但是,随着区块链中节点数量的增加,会导致区块链节点之间实现共识输出的效率降低。
发明内容
有鉴于此,本申请提供一种数据处理方法及电子设备,如下:
一种数据处理方法,所述方法包括:
节点组中的目标节点获得共识选举结果,所述共识选举结果表征所述目标节点是否为共识节点;所述节点组中包含多个所述目标节点,且所述节点组为多个;所述节点组为区块链中的控制节点对节点集合中的节点进行划分所得到的组;
在所述共识选举结果表征所述目标节点为共识节点的情况下,所述目标节点执行异步共识算法,以得到共识区块并将所述共识区块进行输出;
在所述共识选举结果表征所述目标节点为非共识节点的情况下,所述目标节点接收所述共识节点输出的共识区块。
上述方法,优选的,节点组中的目标节点获得共识选举结果,包括:
节点组中的目标节点执行可验证随机函数,得到共识选举结果。
上述方法,优选的,在所述目标节点执行异步共识算法,以得到共识区块之后,所述方法还包括:
所述目标节点利用所述可验证随机函数为所述共识区块生成随机数和证明信息,并将所述随机数和所述证明信息存储到所述共识区块中。
上述方法,优选的,所述随机数和所述证明信息由所述目标节点使用私钥进行加密得到,所述私钥由所述目标节点执行所述可验证随机函数得到。
上述方法,优选的,在所述目标节点接收所述共识节点输出的共识区块之后,所述方法还包括:
所述目标节点使用公钥对所述共识区块中的随机数和证明信息进行验证,以得到验证结果;所述公钥与所述私钥相对应,且所述公钥由所述目标节点执行所述可验证随机函数得到;
在所述验证结果表征验证通过的情况下,所述目标节点存储所述共识区块。
上述方法,优选的,在所述目标节点存储所述共识区块之后,所述方法还包括:
所述目标节点执行存储的共识区域。
上述方法,优选的,在所述目标节点执行异步共识算法,以得到共识区块之后,所述方法还包括:
所述目标节点执行所述共识区块。
上述方法,优选的,处于同一所述节点组中的目标节点之间关于节点属性相一致,且,处于同一所述节点组中的目标节点之间互相独立;
所述节点属性包含:节点状态属性、节点功能属性、节点地位属性中的任意一项或任意多项。
上述方法,优选的,所述节点集合为所述控制节点在接收到共识请求的情况下,按照预设的分组参数在所述区块链中进行多个节点的选择所得到的集合,且所述节点组中的目标节点通过接收所述控制节点发送的分组消息以确定所述目标节点被划分到所述节点组中;
其中,所述分组参数包含节点组的数量和所述节点组中所包含的节点的数量。
一种电子设备,包括:
存储器,用于存储应用程序和所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现:在被区块链中的控制节点划分到节点组并作为目标节点的情况下,获得共识选举结果,所述共识选举结果表征所述目标节点是否为共识节点;所述节点组中包含多个所述目标节点,且所述节点组为多个,所述节点组为所述控制节点对节点集合中的节点进行划分所得到的组;在所述共识选举结果表征所述目标节点为共识节点的情况下,执行异步共识算法,以得到共识区块并将所述共识区块进行输出;在所述共识选举结果表征所述目标节点为非共识节点的情况下,接收所述共识节点输出的共识区块。
从上述技术方案可以看出,本申请公开的一种数据处理方法及电子设备,通过区块链上的控制节点划分出包含多个目标节点的节点组,进而由节点组中的目标节点参与共识选举得到共识选举结果,目标节点被选举为共识节点或非共识节点,基于此,由被选举出的共识节点执行异步共识算法,并将得到的共识区块进行输出,而剩下的非共识节点接收共识节点输出的共识区块即可。可见,本申请中通过对区块链中的节点进行分组,按照分组选举出部分节点作为共识节点进行异步共识,再同步到其他非共识节点,进而通过节点分组减少参与异步共识的节点数量来避免因为区块链节点较多而导致的共识区块输出效率较低的情况,达到提高共识区块的输出效率的目的。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种数据处理方法的实现流程图;
图2-图6分别为本申请实施例的示例图;
图7为本申请实施例一提供的一种数据处理方法的另一流程图;
图8为本申请实施例二提供的一种数据处理装置的结构示意图;
图9为本申请实施例三提供的一种电子设备的结构示意图;
图10为本申请实施例适用于交易区块链时进行异步共识的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1所示,为本申请实施例一提供的一种数据处理方法的实现流程图,该方法可以适用于被配置为区块链节点的电子设备上,如计算机或服务器等。本实施例中的技术方案主要用于避免因为区块链节点较多而导致的共识区块输出效率较低的情况,以提高共识区块的输出效率。
具体的,本实施例中的方法可以包含如下步骤:
步骤101:节点组中的目标节点获得共识选举结果。
其中,共识选举结果表征目标节点是否为共识节点。
在一种实现方式中,共识选举结果可以包含有结果标识,用以表征目标节点是否为共识节点,具体可以用数值或字符串表示,例如,数字“1”表示目标节点被选举为共识节点,数字“0”表示目标节点被选举为非共识节点。再如,字符串“abc”表示目标节点被选举为共识节点,字符串“xyz”表示目标节点被选举为非共识节点。
需要说明的是,目标节点所在的节点组中可以包含有多个目标节点,而且,节点组为区块链中的控制节点对节点集合中的节点进行划分所得到的组,节点组可以为多个。也就是说,区块链中的控制节点对节点集合中的节点进行划分,得到多个节点组,每个节点组中可以包含多个目标节点,如图2中所示,每个目标节点均执行本实施例中的方法,如首先获得共识选举结果,以确定是否被选举为共识节点。
具体实现中,处于同一节点组中的目标节点之间关于节点属性相一致,且,处于同一节点组中的目标节点之间互相独立。
其中的节点属性可以包含有:节点状态属性、节点功能属性以及节点地位属性中的任意一项或任意多项。节点状态属性可以理解为区块链节点的运行状态属性,如内存容量、CPU(central processing unit,中央处理器)占用率等状态属性;节点功能属性可以理解为:区块链节点所实现的功能类型或区块链节点的工作内容的属性,区块链节点针对不同的节点功能属性可以分为如下几种节点:背书节点Endorser、确认节点Committer、order节点和peers节点等等;节点地位属性可以理解为在区块链中所承担的地位或责任属性,区块链节点针对不同的节点地位属性可以分为控制节点或非控制节点等等。
而目标节点之间互相独立,可以理解为:目标节点之间没有依赖的运行逻辑关系,在运行逻辑关系上,目标节点之间互相距离。例如,区块链节点A的正常运行不依赖于区块链节点B的运行结果,且,区块链节点B的正常运行也不依赖于区块链节点A的运行结果,此时,区块链节点A和区块链节点B可以在节点属性相一致的情况下被划分到同一个节点组中,称为目标节点。
也就是说,区块链中的控制节点对节点集合中的节点按照节点属性以及节点之间的运行逻辑关系进行节点组的划分,进而使得节点属性一致且互相独立的节点被划分到同一个节点组中。
具体实现中,区块链中的控制节点可以在接收到共识请求的情况下,按照预设的分组参数在区块链中进行多个节点的选择,被选择的多个节点组成节点集合,如图3中所示。需要说明的是,共识请求可以在区块链中存在共识任务时生成,例如,在区块链上有转账结果的上链存证时,需要对转账结果进行共识处理的共识任务被生成,相应生成共识请求,控制节点在接收要需要对转账结果进行共识处理的共识请求时,按照分组参数选出节点集合,并进行后续的节点划分。而每当存在共识任务并生成有相应的共识请求的情况下,可以认为区块链进入该共识请求对应的共识周期。
而在控制节点对节点集合中的节点进行节点组划分之后,可以通过发送分组消息给各个节点组中的各个目标节点,由此,节点组中的目标节点可以通过接收控制节点发送的分组消息来确定目标节点被划分到节点组中,如图4中所示。分组消息中可以包含有能够表征被划分到节点组的划分标识,具体可以用数字或字符串等字段来标识,区块链中的节点如果接收到控制节点发送的分组消息,就可以确定本身节点被划分到节点组并成为节点组中的目标节点。
其中,分组参数可以包含节点组的数量和节点组中所包含的节点的数量,分组参数中的节点组的数量以及节点组中所包含的节点的数量可以根据共识效率的需求以及共识准确性的需求进行设置。例如,在要求共识效率较高时,可以在分组参数中设置较少数量的节点组,由此通过减少参与共识的节点数量提高共识效率;而在要求共识准确性较高时,可以在分组参数中设置较高数量的节点组,由此,通过在增加参与共识的节点数量来提高共识准确性。
步骤102:目标节点判断共识选举结果是否表征目标节点为共识节点,在共识选举结果表征目标节点为共识节点的情况下,执行步骤103,在共识选举结果表征目标节点为非共识节点的情况下,执行步骤104。
其中,目标节点可以判断共识选举结果中所包含的结果标识与共识节点对应的预设标识如“1”或“abc”等相一致,如果是,那么目标节点可以确定共识选举结果表征目标节点为共识节点,否则,目标节点可以确定共识选举结果表征目标节点为非共识节点。
具体实现中,一个节点组中可以有一个或多个目标节点被选举为共识节点,另外,还可以有一个或多个目标节点成为非共识节点。
步骤103:目标节点执行异步共识算法,以得到共识区块并将共识区块进行输出。
其中,异步共识算法为多个目标节点之间通过异步通信的方式实现共识的算法,如小飞象拜占庭容错(DumboBFT)算法或其他算法等。如图5中所示,控制节点在将节点集合中的节点划分到不同的节点组且节点组中选举出共识节点之后,各个不同的节点组中作为共识节点的目标节点之间通过异步通信的方式进行共识,从而各自得到共识区块,并将共识区块进行输出。
其中,共识区块可以为对被上链的数据进行共识所得到的区块数据,如转账等交易记录的区块数据等等。目标节点在与其他目标节点之间对被上链的数据通过异步通信的方式进行共识处理后,得到各自的区块数据,再将这些区块数据进行输出,即向所在节点组中的其他目标节点输出。
进一步的,在作为共识节点的目标节点得到共识区块之后,还可以执行共识区块。具体可以为:目标节点记录共识区块中被公式的上链数据。例如,目标节点记录共识区块中被共识的转账等交易记录。
步骤104:目标节点接收共识节点输出的共识区块。
其中,目标节点在称为节点组中的非共识节点之后,虽然不参与异步共识,但可以接收到所在节点组中作为共识节点的目标节点所输出的共识区块,进而通过共识区块的同步,实现全链的异步共识,如图6中所示,所有节点组中的所有目标节点均会得到共识区块。
从上述技术方案可以看出,本申请实施例一提供的一种数据处理方法,通过区块链上的控制节点划分出包含多个目标节点的节点组,进而由节点组中的目标节点参与共识选举得到共识选举结果,目标节点被选举为共识节点或非共识节点,基于此,由被选举出的共识节点执行异步共识算法,并将得到的共识区块进行输出,而剩下的非共识节点接收共识节点输出的共识区块即可。可见,本实施例中通过对区块链中的节点进行分组,按照分组选举出部分节点作为共识节点进行异步共识,再同步到其他非共识节点,进而通过节点分组减少参与异步共识的节点数量来避免因为区块链节点较多而导致的共识区块输出效率较低的情况,达到提高共识区块的输出效率的目的。
在一种实现方式中,步骤101中目标节点获得共识选举结果时,可以通过以下方式实现:
节点组中的目标节点执行可验证随机函数VRF(Verifiable Random Function),以得到共识选举结果。
例如,区块链上被划分出的节点组中的各个目标节点各自独立执行VRF函数,进而根据各自得到的共识选举结果确定自身节点是否为共识节点,由此在区块链上分别选举出各个节点组中的共识节点,而各个节点组中除共识节点之外的其他目标节点成为非共识节点。
基于以上实现方案,本实施例中在步骤103中作为共识节点的目标节点执行异步共识算法以得到共识区块之后,在将共识区块输出之前,还可以包含如下处理:
目标节点利用可验证随机函数VRF为共识区块生成随机数和证明信息,并将随机数和证明信息存储到共识区块中。
可见,在输出的共识区块中不仅包含有目标节点对被上链的数据进行共识的共识结果,还包含有随机数和证明信息,该随机数和证明信息用于验证共识区块是否准确或是否合法。
具体的,随机数和证明信息在被存储到共识区块之前或之后,目标节点对随机数和证明信息使用私钥进行加密,也就是说,共识区块中的随机数和证明信息是经过目标节点使用私钥进行加密所得到的数据,而私钥由目标节点执行可验证随机函数VRF时得到,相应的,目标节点也具有私钥对应的公钥。
基于此,在步骤104中作为非共识节点的目标节点接收到作为共识节点的目标节点输出的共识区块之后,本实施例中的方法还可以包含如下步骤,如图7所示:
步骤105:目标节点使用公钥对共识区块中的随机数和证明信息进行验证,以得到验证结果。
其中,目标节点使用的公钥即为与私钥相对应的公钥,是由目标节点在执行可验证随机函数VRF时得到的。具体的,目标节点可以使用公钥对所接收到的共识区块中的随机数和证明信息进行解密,根据所得到的解密结果获得验证结果。例如,在解密结果表征随机数和证明信息被成功解密出来的情况下,所获得的验证结果表征共识区块验证通过,而如果解密结果表征随机数和证明信息没有被成功解密出来,那么所获得的验证结果表征共识区块验证不通过。
具体的,验证结果可以使用解密结果中解密出来的信息作为验证结果,如果解密出来的信息为乱码,那么表征验证不通过,如果解密出来的信息为规则的随机数和证明信息,那么表征验证通过。
步骤106:目标节点在验证结果表征验证通过的情况下,存储共识区块。
进一步的,在目标节点存储共识区块之后,目标节点还会执行存储的共识区块。具体可以为:目标节点记录共识区块中被公式的上链数据。例如,目标节点记录共识区块中被共识的转账等交易记录。
基于此,在作为非共识节点的目标节点执行共识区块之后,在本次共识周期内或者说在当前的共识请求对应的共识任务被完成,此时,各个节点组中的各个目标节点不再担任共识节点或非共识节点的身份,而是等待区块链中的共识节点发送分组消息,也就是等待控制节点通知是否参与下一个共识周期的共识分组或者是否参与下一个共识任务的共识分组,进而在接收到控制节点发送的分组消息后被控制节点划分到相应的节点组并参与共识节点的选举以及异步共识或共识同步,而如果没有接收到控制节点发送的分组消息,则继续等待。
需要说明的是,节点组中作为共识节点的目标节点在输出共识区块之后,同一节点组内的其他所有目标节点都会接收到共识区块,因此,除了作为非共识节点的目标节点会使用公钥对接收到的共识区块进行验证,作为共识节点的目标节点也会对接收到的的共识区块进行验证,验证方式与作为非共识节点的目标节点的验证方式一致,此处不再赘述。
参考图8,为本申请实施例二提供的一种数据处理装置的结构示意图,该装置可以设置在被配置为区块链节点的电子设备上,如计算机或服务器等。本实施例中的技术方案主要用于避免因为区块链节点较多而导致的共识区块输出效率较低的情况,以提高共识区块的输出效率。
具体的,本实施例中的装置可以包含如下功能单元:
共识选举单元801,用于在电子设备作为节点组中的目标节点的情况下,获得共识选举结果,所述共识选举结果表征所述目标节点是否为共识节点;所述节点组中包含多个所述目标节点,且所述节点组为多个;所述节点组为区块链中的控制节点对节点集合中的节点进行划分所得到的组;
异步共识单元802,用于在所述共识选举结果表征所述目标节点为共识节点的情况下,执行异步共识算法,以得到共识区块并将所述共识区块进行输出;
共识同步单元803,用于在所述共识选举结果表征所述目标节点为非共识节点的情况下,接收所述共识节点输出的共识区块。
从上述技术方案可以看出,本申请实施例二提供的一种数据处理装置,通过区块链上的控制节点划分出包含多个目标节点的节点组,进而由节点组中的目标节点参与共识选举得到共识选举结果,目标节点被选举为共识节点或非共识节点,基于此,由被选举出的共识节点执行异步共识算法,并将得到的共识区块进行输出,而剩下的非共识节点接收共识节点输出的共识区块即可。可见,本实施例中通过对区块链中的节点进行分组,按照分组选举出部分节点作为共识节点进行异步共识,再同步到其他非共识节点,进而通过节点分组减少参与异步共识的节点数量来避免因为区块链节点较多而导致的共识区块输出效率较低的情况,达到提高共识区块的输出效率的目的。
在一种实现方式中,共识选举单元801具体用于:执行可验证随机函数,得到共识选举结果。
在一种实现方式中,异步共识单元802还用于:利用所述可验证随机函数为所述共识区块生成随机数和证明信息,并将所述随机数和所述证明信息存储到所述共识区块中。
可选的,所述随机数和所述证明信息由所述目标节点使用私钥进行加密得到,所述私钥由所述目标节点执行所述可验证随机函数得到。
在一种实现方式中,共识同步单元803还用于:使用公钥对所述共识区块中的随机数和证明信息进行验证,以得到验证结果;所述公钥与所述私钥相对应,且所述公钥由所述目标节点执行所述可验证随机函数得到;在所述验证结果表征验证通过的情况下,所述目标节点存储所述共识区块。
在一种实现方式中,共识同步单元803还用于:在存储所述共识区块之后,执行存储的共识区域。
在一种实现方式中,异步共识单元802还用于:在执行异步共识算法,以得到共识区块之后,执行所述共识区块。
在一种实现方式中,处于同一所述节点组中的目标节点之间关于节点属性相一致,且,处于同一所述节点组中的目标节点之间互相独立;所述节点属性包含:节点状态属性、节点功能属性、节点地位属性中的任意一项或任意多项。
在一种实现方式中,所述节点集合为所述控制节点在接收到共识请求的情况下,按照预设的分组参数在所述区块链中进行多个节点的选择所得到的集合,且所述节点组中的目标节点通过接收所述控制节点发送的分组消息以确定所述目标节点被划分到所述节点组中;其中,所述分组参数包含节点组的数量和所述节点组中所包含的节点的数量。
需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。
参考图9,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以为被配置为区块链节点的电子设备,如计算机或服务器等。本实施例中的技术方案主要用于避免因为区块链节点较多而导致的共识区块输出效率较低的情况,以提高共识区块的输出效率。
具体的,本实施例中的电子设备可以包含如下结构:
存储器901,用于存储应用程序和所述应用程序运行所产生的数据;
处理器902,用于执行所述应用程序,以实现:在被区块链中的控制节点划分到节点组并作为目标节点的情况下,获得共识选举结果,所述共识选举结果表征所述目标节点是否为共识节点;所述节点组中包含多个所述目标节点,且所述节点组为多个,所述节点组为所述控制节点对节点集合中的节点进行划分所得到的组;在所述共识选举结果表征所述目标节点为共识节点的情况下,执行异步共识算法,以得到共识区块并将所述共识区块进行输出;在所述共识选举结果表征所述目标节点为非共识节点的情况下,接收所述共识节点输出的共识区块。
从上述技术方案可以看出,本申请实施例三提供的一种电子设备,通过区块链上的控制节点划分出包含多个目标节点的节点组,进而由节点组中的目标节点参与共识选举得到共识选举结果,目标节点被选举为共识节点或非共识节点,基于此,由被选举出的共识节点执行异步共识算法,并将得到的共识区块进行输出,而剩下的非共识节点接收共识节点输出的共识区块即可。可见,本实施例中通过对区块链中的节点进行分组,按照分组选举出部分节点作为共识节点进行异步共识,再同步到其他非共识节点,进而通过节点分组减少参与异步共识的节点数量来避免因为区块链节点较多而导致的共识区块输出效率较低的情况,达到提高共识区块的输出效率的目的。
以金融行业使用的交易区块链为例,交易区块链中配置有多个节点,每个节点使用计算机或服务器等具有数据处理能力的电子设备实现,随着业务的扩展,交易区块链中的请求数量越来越多,且共识的信息量也越来越大,参与交易区块链的节点不仅数量众多,位置还分散,因此,为了实现区块链中的异步共识,还需要保证异步共识的效率,本申请的技术方案中提出一种异步共识的区块链实现方案,通过对交易区块链中划分异步共识组,即前文中提到的节点组,并在每个异步共识组中分别选举出共识节点使用异步共识算法,而没有被选举为共识节点的区块链节点则通过同步来得到共识区块,从而得到区块异步共识且高效出块(输出共识区块)的目的。进一步的,为了在共识节点数量和共识性能之间实现折衷,本申请的技术方案中进入VRF在异步共识组中随机选举共识节点的机制,如此就可以在保证较好的去中心化的程度以及安全性的同时,又能够达到较好的共识性能。
其中的异步共识算法适用于大规模的共识计算,但是当共识节点数量过多的时候,共识性能较低,不具有工业实用价值,而本申请的技术方案基于异步共识算法的特性,对异步共识的处理方式进行改进,以适用于大规模区块链节点的共识实现。结合图10中所示的流程图,如下对本申请的技术方案中实现异步共识进行详细说明:
1、在交易区块链中,引入异步共识组将大规模节点分类,分成不同的异步共识组。具体如下:
本申请的技术方案中先根据异步共识算法的性质,将交易区块链的节点划分成多个异步共识组,再在每个异步共识组内独立完成共识区块的打包出块操作。
其中,所划分出的异步共识组由多个同质(节点状态相同)的、功能上完全一致(工作内容一致)、地位上也完全平等,并逻辑上尽量隔离的独立区块链节点所构成,这些区块链节点并行工作,分摊全网的吞吐、计算、存储的压力,分摊全网状态的维护工作。
2、异步共识组内通过VRF随机选取共识节点。具体如下:
在共识节点打包完区块(即前文中的共识区块,简称区块)之后,为该区块生成一个随机数和证明,并且存储到区块中。当其它节点接收到该区块时,可以对证明和随机数校验是否正确。本申请的技术方案中在共识组内采用VRF随机选取共识节点,可以很好地平衡去中心化和可扩展性问题。
基于VRF,在异步共识组内的所有节点将会被分为共识节点和非共识节点。如下:
非共识节点:参与共识节点的选举,如果没有在本共识周期中被选为共识节点,则在接收到共识节点输出的区块后进行区块同步;
共识节点:在本共识周期内被选举为共识节点,参与异步共识的处理,并输出所共识出的区块。
需要说明的是,在下一共识周期中,所有类型为共识节点和非共识节点的节点都将摒弃本共识周期内的身份参与VRF共识节点的选举过程。
以下对共识节点和非共识节点的执行流程进行简单说明:
(1)共识节点执行流程:
共识节点在完成出块之后,调用VRF生成证明和随机数并且存储到该区块中;
在执行完区块之后,共识节点判断是否需要参与下一个共识周期内的共识节点的选举;
如果接收到其他共识节点输出的区块,共识节点校验该区块的VRF输出值是否正确。
(2)非共识节点的执行流程:
非共识节点同步到区块后,校验该区块的VRF输出值是否正确,例如,可以使用公钥对被使用私钥进行加密的区块中的证明和随机数进行解密,如果解密出证明和随机数,那么说明VRF输出值正确,即区块通过验证,如果无法解密出证明和随机数,那么说明VRF输出值不正确,即区块不通过验证。
另外,非共识节点同步到区块后,判断是否需要参与下一个共识周期内的共识节点的选举。
3、共识节点内采用异步共识算法实现区块链异步共识。
本申请的技术方案中,在各个异步共识组中选出的共识节点内采用异步共识算法,例如HoneyBadgerBFT\BEAT\Dumbo等,实现区块链的异步共识。而由于异步拜占庭协议由于其对极端网络环境的容忍度很高,通过本申请的技术方案所提出的异步区块链共识算法可以满足节点规模相对较大、网络环境不可预测场景共识需求,实现区块链的性能提升。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种数据处理方法,所述方法包括:
节点组中的目标节点获得共识选举结果,所述共识选举结果表征所述目标节点是否为共识节点;所述节点组中包含多个所述目标节点,且所述节点组为多个;所述节点组为区块链中的控制节点对节点集合中的节点进行划分所得到的组;
在所述共识选举结果表征所述目标节点为共识节点的情况下,所述目标节点执行异步共识算法,以得到共识区块,所述目标节点利用可验证随机函数为所述共识区块生成随机数和证明信息,并在将所述随机数和所述证明信息存储到所述共识区块后,将所述共识区块输出;
在所述共识选举结果表征所述目标节点为非共识节点的情况下,所述目标节点接收所述共识节点输出的共识区块。
2.根据权利要求1所述的方法,节点组中的目标节点获得共识选举结果,包括:
节点组中的目标节点执行可验证随机函数,得到共识选举结果。
3.根据权利要求1所述的方法,所述随机数和所述证明信息由所述目标节点使用私钥进行加密得到,所述私钥由所述目标节点执行所述可验证随机函数得到。
4.根据权利要求3所述的方法,在所述目标节点接收所述共识节点输出的共识区块之后,所述方法还包括:
所述目标节点使用公钥对所述共识区块中的随机数和证明信息进行验证,以得到验证结果;所述公钥与所述私钥相对应,且所述公钥由所述目标节点执行所述可验证随机函数得到;
在所述验证结果表征验证通过的情况下,所述目标节点存储所述共识区块。
5.根据权利要求4所述的方法,在所述目标节点存储所述共识区块之后,所述方法还包括:
所述目标节点执行存储的共识区域。
6.根据权利要求1所述的方法,在所述目标节点执行异步共识算法,以得到共识区块之后,所述方法还包括:
所述目标节点执行所述共识区块。
7.根据权利要求1所述的方法,处于同一所述节点组中的目标节点之间关于节点属性相一致,且,处于同一所述节点组中的目标节点之间互相独立;
所述节点属性包含:节点状态属性、节点功能属性、节点地位属性中的任意一项或任意多项。
8.根据权利要求1或7所述的方法,所述节点集合为所述控制节点在接收到共识请求的情况下,按照预设的分组参数在所述区块链中进行多个节点的选择所得到的集合,且所述节点组中的目标节点通过接收所述控制节点发送的分组消息以确定所述目标节点被划分到所述节点组中;
其中,所述分组参数包含节点组的数量和所述节点组中所包含的节点的数量。
9.一种电子设备,包括:
存储器,用于存储应用程序和所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现:在被区块链中的控制节点划分到节点组并作为目标节点的情况下,获得共识选举结果,所述共识选举结果表征所述目标节点是否为共识节点;所述节点组中包含多个所述目标节点,且所述节点组为多个,所述节点组为所述控制节点对节点集合中的节点进行划分所得到的组;在所述共识选举结果表征所述目标节点为共识节点的情况下,执行异步共识算法,以得到共识区块,所述目标节点利用可验证随机函数为所述共识区块生成随机数和证明信息,并在将所述随机数和所述证明信息存储到所述共识区块后,将所述共识区块输出;在所述共识选举结果表征所述目标节点为非共识节点的情况下,接收所述共识节点输出的共识区块。
CN202110836806.4A 2021-07-23 2021-07-23 数据处理方法及电子设备 Active CN113507528B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110836806.4A CN113507528B (zh) 2021-07-23 2021-07-23 数据处理方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110836806.4A CN113507528B (zh) 2021-07-23 2021-07-23 数据处理方法及电子设备

Publications (2)

Publication Number Publication Date
CN113507528A CN113507528A (zh) 2021-10-15
CN113507528B true CN113507528B (zh) 2022-09-23

Family

ID=78014459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110836806.4A Active CN113507528B (zh) 2021-07-23 2021-07-23 数据处理方法及电子设备

Country Status (1)

Country Link
CN (1) CN113507528B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116070285A (zh) * 2021-11-04 2023-05-05 京东科技信息技术有限公司 基于拜占庭容错的异步共识方法、装置、服务器和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257095A (zh) * 2020-11-23 2021-01-22 中电万维信息技术有限责任公司 一种联盟链共识节点的选择方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572031B2 (en) * 2010-12-23 2013-10-29 Mongodb, Inc. Method and apparatus for maintaining replica sets
WO2018209542A1 (zh) * 2017-05-16 2018-11-22 北京大学深圳研究生院 一种用于去中心化域名系统的共识方法
CN111491020B (zh) * 2020-04-08 2021-09-28 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备以及存储介质
CN112039964B (zh) * 2020-08-24 2022-01-04 大连理工大学 一种基于区块链的节点信誉共识方法
CN113141414B (zh) * 2021-05-07 2022-04-12 大连理工大学 一种cnfs协议中区块链节点的分组多链异步共识方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257095A (zh) * 2020-11-23 2021-01-22 中电万维信息技术有限责任公司 一种联盟链共识节点的选择方法

Also Published As

Publication number Publication date
CN113507528A (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
CN109936457B (zh) 区块链多方见证方法、装置、设备及计算机可读存储介质
Dong et al. When private set intersection meets big data: an efficient and scalable protocol
CN111625593B (zh) 基于区块链的数据处理方法、装置、计算机设备
CN111541724B (zh) 区块链一体机及其节点自动加入方法、装置
CN113301114B (zh) 区块链共识节点选择方法、装置、计算机设备和存储介质
CN110945831B (zh) 抗Sybil攻击身份的生成
EP3659060B1 (en) Consensus protocol for permissioned ledgers
CN111241593A (zh) 用于区块链节点的数据同步方法及装置
CN113259135B (zh) 用于检测数据防篡改的轻量级区块链通信认证装置及其方法
CN110224984A (zh) 一种基于区块链技术的多方授权方法及装置
CN113837758A (zh) 一种区块链系统的共识方法及装置
US20230237437A1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
CN110990790B (zh) 一种数据处理方法及设备
US11101989B2 (en) Trusted ring
CN113507528B (zh) 数据处理方法及电子设备
CN113657898A (zh) 联盟链中的共识方法和系统
Zhang et al. Efficient auditing scheme for secure data storage in fog-to-cloud computing
CN112926983A (zh) 一种基于区块链的存证交易加密系统及方法
CN112487091A (zh) 一种确定区块链共识节点的方法及装置
CN115589298B (zh) 区块链的信息验证方法、装置和系统、设备、介质
Görkey et al. Comparative study of Byzantine fault tolerant consensus algorithms on permissioned blockchains
US20150281256A1 (en) Batch verification method and apparatus thereof
Zou et al. Dynamic provable data possession based on ranked merkle hash tree
US11159611B2 (en) System and method for leader election for distributed systems
CN111858768A (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