CN111506656B - 区块链***的共识处理方法、装置及智能设备、存储介质 - Google Patents
区块链***的共识处理方法、装置及智能设备、存储介质 Download PDFInfo
- Publication number
- CN111506656B CN111506656B CN202010310493.4A CN202010310493A CN111506656B CN 111506656 B CN111506656 B CN 111506656B CN 202010310493 A CN202010310493 A CN 202010310493A CN 111506656 B CN111506656 B CN 111506656B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- data
- identified
- consensus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种区块链***的共识处理方法、装置及智能设备,所述方法包括:接收待共识区块数据;获取所述待共识区块数据的出块节点标识和区块高度标识,所述出块节点标识用于在区块链***中唯一标识所述待共识区块数据的发起节点;根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证;当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,对所述待共识区块数据进行共识处理。采用本申请,可提高区块链***共识处理的效率及区块链***的稳定性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链***的共识处理方法、装置及智能设备、存储介质。
背景技术
区块链***是一个去中心化的***,区块链使用了分布式数据存储、点对点传输、共识机制、加密算法等计算机技术。对于区块链(Blockchain)而言,其本质上是一个去中心化的数据库,区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
共识机制是区块链***中的一个重要特征,所谓“共识机制”,是通过区块***中一些特殊节点对区块数据进行投票,完成对区块数据中交易数据的验证和确认,以便于在验证通过后将相应交易数据的区块数据存储到区块链中。
在目前一些区块链***中,如何对共识节点进行优化以提高共识效率成为研究的热点问题。
发明内容
本申请实施例提供一种区块链***的共识处理方法、装置及智能设备、存储介质,可提高区块链***的共识效率。
一方面,本发明实施例提供了一种在区块链***中的共识处理方法,包括:
接收待共识区块数据;
获取所述待共识区块数据的出块节点标识和区块高度标识,所述出块节点标识用于在区块链***中唯一标识所述待共识区块数据的发起节点;
根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证;
当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,对所述待共识区块数据进行共识处理。
另一方面,本发明实施例提供了另一种在区块链***中的共识处理方法,包括:
将本节点的节点标识与当前共识周期所对应的出块节点标识集合进行比较;
若比较结果为本节点的节点标识被记录在所述出块节点标识集合中,则从交易池中获取交易数据,并根据该交易数据生成待识别区块数据;
在区块链***广播所述待识别区块数据;
根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果,对所述待识别区块数据进行上链处理。
相应地,本发明实施例还供了一种在区块链***中的共识处理装置,包括:
接收模块,用于接收待共识区块数据;
获取模块,用于获取所述待共识区块数据的出块节点标识和区块高度标识,出块节点标识用于在区块链***中唯一标识所述待共识区块数据的发起节点;
检测模块,用于根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证;
处理模块,用于当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,对所述待共识区块数据进行共识处理。
相应地,本发明实施例还提供了另一种在区块链***中的共识处理装置,其特征在于,包括:
比较模块,用于将本节点的节点标识与当前共识周期所对应的出块节点标识集合进行比较;
生成模块,用于若比较结果为本节点的节点标识被记录在所述出块节点标识集合中,则从交易池中获取交易数据,根据该交易数据生成待识别区块数据;
广播模块,用于在区块链***广播所述待识别区块数据;
处理模块,用于根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果,对所述待识别区块数据进行上链处理。
相应地,本发明实施例提供了一种智能设备,所述智能设备包括存储装置和处理器,所述存储装置中存储有程序指令,所述处理器,用于调用所述程序指令,实现上述任一个在区块链***中的共识处理方法。
相应地,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时,上述任一个共识处理方法将被实现。
本发明实施例为待共识的区块数据定义了处理流程,基于出块节点标识集合来判断待共识的区块数据的出块节点合法性、基于区块高度范围信息来判断待共识的区块数据的区块高度是否为正常高度,以此来确定待共识区块数据的共识资格,相比于在一些区块链***中所有区块节点都可以广播待共识区块数据,所有的区块节点都可以进行区块数据共识而言,本申请可以在一定程度上提高共识处理的效率以及区块链***的稳定性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明实施例的一种区块***的结构示意图;
图1B是本发明实施例的一种区块链的示意图;
图1C是本发明实施例的区块节点执行区块数据处理的流程示意图;
图2是本发明实施例的一种区块链***中的共识处理方法的流程示意图;
图3是本发明实施例的另一种区块链***中的共识处理方法的流程示意图;
图4是本发明实施例的对待共识区块数据进行共识处理的一种流程示意图;
图5是本发明实施例的再一种区块链***中的共识处理方法的流程示意图;
图6是本发明实施例的一种在区块链***中的共识处理装置的结构示意图;
图7是本发明实施例的另一种在区块链***中的共识处理装置的结构示意图;
图8是本发明实施例的一种智能设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在区块链***中包括较多的区块节点,这些区块节点中任一节点可以根据需要从各自的交易池中提取需要处理的交易数据,作为该交易数据的出块节点生成区块数据后广播到区块链***中,由区块链***中的作为共识节点的区块节点对区块数据进行共识,如果一定比例(比如90%)的共识节点对该区块数据的共识验证通过,则该出块节点可以执行后续的对该区块数据的上链处理。
一个区块链***如图1A所示,数据共享***100是指用于进行节点与节点之间数据共享的***,该数据共享***中可以包括多个区块节点101,多个区块节点101可以是指数据共享***中各个客户端,这些区块节点101例如可以是智能手机、平板电脑、个人电脑、服务器等等智能设备。每个区块节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享***内的共享数据。为了保证数据共享***内的信息互通,数据共享***中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享***中的任意节点接收到输入信息时,数据共享***中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享***中全部节点上存储的数据均一致。
对于数据共享***中的每个节点,均具有与其对应的节点标识,而且数据共享***中的每个节点均可以存储有数据共享***中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享***中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
数据共享***中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1B,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图1C,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享***中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享***中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
在诸如图1A所示的区块链***中,进行共识的区块节点可以为区块链***中的部分节点,在不同共识周期内,参与共识处理的共识节点集合不相同。可以通过随机或者按照预设选取规则的方式从区块链***中选取出部分区块节点作为共识节点构成共识节点集合,在不同的共识周期内,对区块数据的共识是由共识周期对应的共识节点集合中的共识节点来处理,而对于不同共识节点集合中的共识节点,则只需在对应的共识周期内才进行共识处理。这样一来,一方面可以在一定程度上提高共识的可靠性,比如一些共识节点因为某些原因成为作恶节点,会对每次共识处理都共识通过或共识失败,引入随机或按照预先设计的规则选取共识节点,则可以在避免作恶节点参与到所有区块数据的共识。另一方面,对于区块节点而言,不用一直都处于共识处理阶段,也可以在一定程度上节省区块链***中区块节点的软硬件资源。
对于区分共识周期、区分共识节点集合时的具体共识处理方式,可以参考图2所示,图2示出了一种在区块链***中的共识处理方法的流程示意图,本发明实施例的所述方法可以由在区块链***中的任一节点来执行。所述方法包括如下步骤。
S201:接收待共识区块数据;所述待共识区块数据是区块链***中其他区块节点基于交易池中的交易数据生成并在区块链***中广播的,区块链***中的区块节点都可接收到该待共识区块数据,本发明实施例中,在接收到待共识区块数据之后,需要判断是否执行对该待共识区块数据的共识处理,该判断一方面是指对待处理区块数据的来源合法性进行判断,另一方面是判断本节点是否有资格对该待处理区块数据进行共识处理,再一方面为判断该待处理区块数据是否是属于本节点当前共识周期内需要共识的数据。
在一个实施例中,在区块节点中可以记录如下表格:
表2
共识委员会 | 出块节点索引列表 | 区块高度索引范围 |
共识节点集合1 | 列表1 | (1-X) |
共识节点集合2 | 列表2 | (X+1~Y) |
....... | ...... | ...... |
如上表2,每一行表示了一轮共识周期内,应该对区块链***中广播的待共识区块数据执行共识处理的共识节点构成的共识节点集合、被允许广播待共识区块数据的出块节点构成的出块节点标识集合(即表中出块节点索引列表中的列表1等)、可以被共识处理的待共识区块数据的区块高度范围(即表2中的区块高度索引范围中的(1-X))。基于表2,对于每一个共识节点而言,都可以根据当前的共识周期,判断自身是否可以进行待共识区块数据的共识、判断待共识区块数据是否是本轮共识周期下定义的合法出块节点发送的、判断待共识区块数据所要存储的区块高度是否在合规的区块高度内。在一个实施例中,所述方法还可以包括:判断本节点的节点标识是否被记录在当前共识周期下共识节点集合中,若是,则执行所述S201,或者执行下述S202。
S202:获取所述待共识区块数据的出块节点标识和区块高度标识,所述出块节点标识用于在区块链***中唯一标识所述待共识区块数据的发起节点。在本发明实施例中,出块节点在广播待共识区块数据时,会在携带所述待共识区块数据的消息中设置出块节点标识、区块高度标识,或者,在区块链***中定义区块数据格式,直接在待共识区块数据中记录出块节点标识和区块高度标识。对于区块链***中除所述出块节点的其他区块节点而言,都可以根据需要获取到出块节点标识和区块高度标识。
S203:根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证。在所述S203中的验证主要是指:判断所述出块节点标识是否记录在所述第一出块节点标识集合内,并判断所述区块高度标识是否在所述第一区块高度范围信息所指示的高度范围内,若判断结果均为是,则验证通过,执行下述的S204。只要有一个不满足,在一个实施例中,可以直接删除该待共识区块数据,不会对该待共识区块数据进行共识处理,或者在其他一些实施例中,当有一个不满足条件或者两个都不满足条件时,可以根据具体情况执行其他处理,详见后续实施例。
S204:当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,对所述待共识区块数据进行共识处理。在本发明实施例中,只有验证结果为S204中提到的情况下,才会对待共识区块数据进行处理。其他情况下,可以直接删除待共识区块数据,比如当验证结果为所述出块节点标识没有记录在所述第一出块节点标识集合内,但所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,确定所述待共识区块数据为非法数据,删除所述待共识区块数据。在一些实施例中,也可以根据实际情况部署其他处理方式。
对所述待共识区块数据进行共识处理包括多个方式,在本发明实施例中,所述对所述待共识区块数据进行共识处理包括以下步骤中的任意一个或者多个:
采用公钥对待共识区块数据进行解密,该公钥与发起待共识区块数据的节点模块的私钥对应,通过私钥加密后的待共识区块数据的传输更安全,同时,共识节点也可以根据公钥对待共识区块数据解密来分析该待共识区块数据是否真的是由该公钥对应的区块节点发出的;
对待共识区块数据的区块头中包括的验证信息进行验证,对区块头中的验证信息进行验证主要是对待共识区块数据中包括的交易数据所对应的梅克尔树根哈希进行验证,和/或对所述区块头数据中包括父区块特征值进行验证;
对所述待共识区块数据的区块高度标识进行匹配验证,该匹配验证主要是验证所述待共识区块数据的区块高度标识与本节点的区块链上最后一个区块的区块高度标识是否匹配,该匹配是指:根据本节点的区块链上最后一个区块的区块高度标识,验证所述待共识区块数据的区块高度标识是否为最后一个区块的区块高度标识的下一标识;
对所述待共识区块数据中交易数据的执行结果进行验证,比如,待共识区块数据中的交易数据涉及到某一个用户的多笔交易,在处理后,执行该多笔交易后可以得到该某一个用户的余额,共识节点可以对各条交易数据进行交易计算,得到一个余额,如果得到的余额与区块链***中广播的关于该待共识区块数据的执行结果一致,则关于执行结果的验证通过,具体可参考如下实施例的描述。当然,在其他实施例中,对待共识区块数据的共识处理还包括其他处理方式。
本发明实施例定义了待共识区块数据进行共识资格处理方案,基于出块节点标识集合来判断待共识的区块数据的出块节点合法性、基于区块高度范围信息来判断待共识的区块数据的区块高度是否为正常高度,以此来确定待共识区块数据的共识资格,相比于目前的区块链***中所有区块节点都可以广播待共识区块数据,所有的区块节点都可以进行区块数据共识而言,本申请按照出块节点标识集合和区块高度范围信息进行待识别区块的共识验证的方式,可以提高共识处理的效率以及区块链***的稳定性。
再请参见图3,是本发明实施例的另一种在区块链***中的共识处理方法的流程示意图,本发明实施例的可以由在区块链***中的任一节点来执行。所述方法包括如下步骤。
S301:接收待共识区块数据。
S302:获取所述待共识区块数据的出块节点标识和区块高度标识,所述出块节点标识用于在区块链***中唯一标识所述待共识区块数据的发起节点。
S303:根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证;其中,所述第一出块节点标识集合、第一区块高度范围信息与一个共识周期对应,不同的共识周期对应有不同的节点标识集合、区块高度范围信息。
S304:验证结果满足第一条件时(即:当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时),检测当前是否存在共识处理未结束的区块数据;若不存在,则触发执行下述的S305,若存在,则执行下述的S306。
S305:对所述待共识区块数据进行共识处理。
本发明实施例中,关于上述的S301至S304的具体实现可参考图2所对应实施例中相关步骤的描述,在此不赘述。
S306:删除所述待共识区块数据。也就是说,如果验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内,确定符合条件,但是本节点中当前存在正在共识处理的其他区块数据,那么直接删除该符合条件的待识别区块数据,至少在本节点不对其进行共识,但由其他共识节点对该待共识区块数据进行共识,以此来保障本节点不会延后处理该共识周期内的待识别区块数据,待共识区块数据可以在规定的时间完成共识。
S307:若验证结果满足第二条件(即:验证结果为所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值),则缓存所述待共识区块数据。所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值时,表明本共识周期的待共识区块数据已经共识完成,或者表明已经进入了下一轮共识周期,本节点需要基于下一轮共识周期对应的共识节点集合、第二出块节点标识集合(新的出块节点标识集合)、第二区块高度范围信息来进行判断。
上述第一出块节点标识集合、第二出块节点标识集合、第一区块高度范围信息、第二区块高度范围信息、共识节点集合例如可以设置在如表2所示的表格基础上的信息表中,在表2所示的表格的基础上可以记录更多个共识周期所对应的出块标识集合、区块高度范围信息以及共识节点集合。该表格可以根据一定的更新周期例如一天、一周、一个月的更新周期通过区块链***的智能合约进行更新,更新后区块链***中各个节点存储相同的表格。
S308:检测本节点的节点标识是否被记录在下一轮共识周期所对应共识节点集合;如果记录在下一轮共识周期所对应共识节点集合中,则表明本节点有资格作为共识节点对区块链***中广播的待共识区块数据进行共识处理。在S308中判断结果为是时,执行下述的S309,而如果没有被记录在下一轮共识周期所对应共识节点集合,则执行S311:删除所述待共识区块数据。
S309:获取第二出块节点标识集合和第二区块高度范围信息,以便于基于第二出块节点标识集合和第二区块高度范围信息对所述缓存的待共识区块数据进行验证,所述第二出块节点标识集合和第二区块高度范围信息与下一轮共识周期关联。也就是说,继续判断待共识区块数据的出块节点标识是否在所述第二出块节点标识集合内,所述待共识区块数据的区块高度标识是否在第二区块高度范围信息所指示的区块高度范围内,若均满足,则执行下述S310。
S310:若满足第三条件(即:待共识区块数据的出块节点标识在所述第二出块节点标识集合内),所述待共识区块数据的区块高度标识在第二区块高度范围信息所指示的区块高度范围内,对所述待共识区块数据进行共识处理。
在一个实施例中,针对所述S307,在验证结果为所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值之后,所述缓存所述待共识区块数据之前,所述方法还可以包括:检测当前是否存在共识处理未结束的区块数据;若存在,则触发执行所述缓存所述待共识区块数据的步骤;并且,当存在共识处理未结束的区块数据时,是在对所述共识处理未结束的区块数据的共识处理结束后,才触发执行所述S308。也就是说,在确定已经进入下一轮共识周期后,可以先判断本节点是否还存在正在共识处理的区块数据,若存在,则缓存当前接收到的所述待共识区块数据,若不存在,则可以直接执行所述S308。
S312:当满足第四条件时(即:验证结果为所述出块节点标识没有记录在所述第一出块节点标识集合内,但所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时),确定所述待共识区块数据为非法数据,删除所述待共识区块数据。所述出块节点标识没有记录在所述第一出块节点标识集合内则表明当前广播的所述待共识区块数据为非法用户发起的共识处理,可以直接删除该待共识区块数据,还可以进一步在终端产生报警信息。
本申请所提及的对所述待共识区块数据进行共识处理可以同时包括多个处理方式,在一个实施例中,如图4所示,所述对所述待共识区块数据进行共识处理包括如下步骤。
S401:根据发送所述待共识区块数据的区块节点的公钥,对所述待共识区块数据进行解密处理。该公钥与发起待共识区块数据的节点模块的私钥对应,发起待共识区块数据的区块节点可以通过私钥给待共识区块数据进行加密,以此来提高区块数据的传输安全性,同时,共识节点也可以根据公钥是否能正常解密待共识区块数据来分析该待共识区块数据是否真的是由该公钥对应的区块节点发出的。如果解密成功,则执行下述的S402,如果解密失败,则丢弃该待共识区块数据,不作关于该待共识区块数据的进一步处理。或者发起投空块处理表明该待共识区块数据在本节点的共识失败。
S402:如果解密得到区块头数据,则从区块头数据中获取所述待共识区块数据的验证信息。在本发明实施例中,该验证信息主要包括待共识区块数据的区块头中记录的信息,该验证信息具体可以包括:梅克尔树根哈希值、父区块特征值,梅克尔数是根据该待共识区块数据中包括的各个交易数据的哈希值计算得到的,父区块特征值是指图1B中的父区块的区块头特征值,该父区块特征值是根据该待共识区块数据的上一高度的区块数据的区块头的哈希值得到的。
S403:对所述验证信息进行验证,以便于根据验证结果确定是否对所述待共识区块数据的共识通过。
在一个实施例中,所述对所述验证信息进行验证可以包括:获取所述待共识区块数据中各交易数据,并根据各交易数据计算得到这些交易数据所对应的梅克尔树,获取所述梅克尔树的根节点的哈希值;并根据所述梅克尔树的根节点的哈希值对所述验证信息包括的梅克尔树根哈希值进行验证;在共识节点中计算多个交易数据的梅克尔树的方式与发起该待共识区块数据的区块节点计算这些交易数据的梅克尔树的规则是相同的,该规则要求了交易数据的先后顺序等,如果待共识区块数据中的交易数据没有被篡改,那么在共识节点计算得到的梅克尔树的根节点与发起该待共识区块数据的区块节点计算得到的记录在区块头中的梅克尔树根哈希值是相同的,如果相同,则表明交易数据未被篡改,反之,则表明交易数据可能被篡改,丢弃该待共识区块数据,或者发起投空块处理表明该待共识区块数据在本节点的共识失败。
在一个实施例中,所述对所述验证信息进行验证还可以包括:根据所述待共识区块数据的区块高度标识,在本节点的区块链中确定所述待共识区块数据的上一高度区块数据,并根据上一高度区块数据的区块头哈希值对所述验证信息包括的父区块特征值进行验证。根据在区块头中记录的区块高度标识可以在本节点的区块链中找到该待共识区块数据的上一高度的区块数据,将上一高度的区块数据的区块头进行哈希计算,如计算得到的哈希值与该待共识区块数据中记录的父区块特征值相同,则表明该待共识区块数据父区块正常,如果不相同,则,丢弃该待共识区块数据,或者发起投空块处理表明该待共识区块数据在本节点的共识失败。
在一个实施例中,所述对所述验证信息进行验证还可以包括:检测所述待共识区块数据的区块高度标识与本节点的区块链上最后一个区块的区块高度标识是否匹配。该是否匹配是指所述待共识区块数据的区块高度标识为本节点的区块链上最后一个区块的区块高度标识的下一标识。也就是说,不仅要检测该待共识区块数据与根据区块高度标识找到的区块链上的上一区块数据是否正常,还要检测,该上一区块数据是否为最后一个区块数据,如果是最后一个区块数据,则表明在共识节点中的区块链的状态和发起所述待共识区块数据的区块节点中区块链的状态是匹配的。而如果区块链状态不匹配,则可以丢弃该待共识区块数据,或者发起投空块处理表明该待共识区块数据在本节点的共识失败。
S404:执行所述待共识区块数据中的交易数据得到执行结果;
S405:检测所述执行得到的执行结果与区块链***中广播的关于该待共识区块数据的执行结果是否一致。如果共识节点对交易数据的执行结果,与区块链***中广播的关于该待共识区块数据的执行结果一致,则认为交易数据没有问题,而如果不一致,则可以丢弃该待共识区块数据,或者发起投空块处理表明该待共识区块数据在本节点的共识失败。
可以理解的是,共识是否通过包括多个条件,比如当前已知的可以用来进行共识检测的其他条件,而在本发明实施例中,只要上述的提及部分或者全部条件通过,则可以认为本节点对所述待共识区块数据的共识通过,具体的是指在以下一种或者多种情况下,共识通过:
根据发送所述待共识区块数据的区块节点的公钥,对所述待共识区块数据进行解密处理,并成功解密得到区块数据,进而得到区块头数据;
本节点计算得到的所述梅克尔树的根节点的哈希值与验证信息包括的梅克尔树根哈希值相同;
本节点根据上一高度区块数据的区块头哈希值对所述验证信息包括的父区块特征值进行验证时,确定上一高度区块数据的区块头哈希值与所述验证信息包括的父区块特征值相同;
本节点检测所述待共识区块数据的区块高度标识与本节点的区块链上最后一个区块的区块高度标识是否匹配时,确定所述待共识区块数据的区块高度标识是本节点的区块链上最后一个区块的区块高度标识的下一标识;
本节点检测所述执行得到的执行结果与区块链***中广播的关于该待共识区块数据的执行结果是否一致时,确定执行得到的执行结果与广播的关于该待共识区块数据的执行结果一致。
本发明实施例为待共识的区块数据定义了处理流程,基于出块节点标识集合来判断待共识的区块数据的出块节点合法性、基于区块高度范围信息来判断待共识的区块数据的区块高度是否为正常高度,以此来确定待共识区块数据的共识资格,相比于目前的区块链***中所有区块节点都可以广播待共识区块数据,所有的区块节点都可以进行区块数据共识而言,本申请按照出块节点标识集合和区块高度范围信息进行待识别区块的共识验证的方式,可以提高共识处理的效率以及区块链***的稳定性。
再请参见图5,是本发明实施例的再一种在区块链***中的共识处理方法的流程示意图,本发明实施例的所述方法由区块链***中的一个区块节点执行,该区块节点为当前需要发起共识的出块节点。所述方法包括如下步骤。
S501:将本节点的节点标识与当前共识周期所对应的出块节点标识集合进行比较;当本区块节点需要作为出块节点广播区块数据以便于进行上链处理时,可以先判断在当前时刻所对应的共识周期内,本节点是否是一个合法的出块节点,可以通过当前区块链***的***时刻确定当前所处的共识周期,然后找到对应的出块节点标识集合,以便于执行所述S501。
S502:若比较结果为本节点的节点标识被记录在所述出块节点标识集合中,则从交易池中获取交易数据,并根据该交易数据生成待识别区块数据。本节点的节点标识被记录在所述出块节点标识集合则表明在当前共识周期内,本节点为合法的出块节点,可以从交易池中获取交易数据并生成待识别区块数据,以广播给所在区块链***中的其他区块节点。
S503:在区块链***广播所述待识别区块数据。
S504:根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果,对所述待识别区块数据进行上链处理。在S504中,根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果进行数量统计,若表明共识通过的共识结果的数量达到一定阈值,则对所述待识别区块数据进行上链处理,若没有达到一定阈值,则删除所述待共识区块数据,不会存储到区块链中。
对于出块节点而言,在接收到其他共识节点返回的共识结果时,还可以根据共识结果中携带的共识节点标识,结合本节点存储的共识节点集合,判断返回共识结果的共识节点是否为合法的可以对待共识区块数据进行共识处理的共识节点,若是,才执行根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果进行数量统计。
本发明实施例为待共识的区块数据定义了广播处理流程,只有被记录为出块节点的区块节点才具有生成并广播待共识区块数据的资格,相比于目前的区块链***中所有区块节点都可以广播待共识区块数据,所有的区块节点都可以进行区块数据共识而言,本申请可以提高出块效率以及共识处理的效率。
再请参见图6,是本发明实施例的一种在区块链***中的共识处理装置的结构示意图,本发明实施例的所述装置可以设置在智能设备中,这些智能设备可以包括在区块链***中,执行区块数据的生成、共识、上链等处理。所述装置包括如下模块。
接收模块601,用于接收待共识区块数据;
获取模块602,用于获取所述待共识区块数据的出块节点标识和区块高度标识,所述出块节点标识用于在区块链***中唯一标识所述待共识区块数据的发起节点;
检测模块603,用于根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证;
处理模块604,用于当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,对所述待共识区块数据进行共识处理。
在一个实施例中,所述处理模块604,在对所述待共识区块数据进行共识处理之前,还用于检测当前是否存在共识处理未结束的区块数据;若不存在,则执行所述对所述待共识区块数据进行共识处理;若存在,则删除所述待共识区块数据。
在一个实施例中,所述处理模块604,还用于若验证结果为所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值,则缓存所述待共识区块数据;检测本节点的节点标识是否被记录在下一轮共识周期所对应共识节点集合;若是,则获取第二出块节点标识集合和第二区块高度范围信息,以便于基于第二出块节点标识集合和第二区块高度范围信息对所述缓存的待共识区块数据进行验证,所述第二出块节点标识集合和第二区块高度范围信息与下一轮共识周期关联。
在一个实施例中,所述处理模块604,在验证结果为所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值之后,所述缓存所述待共识区块数据之前,还用于检测当前是否存在共识处理未结束的区块数据;若存在,则执行所述缓存所述待共识区块数据;并且,当存在共识处理未结束的区块数据时,是在对所述共识处理未结束的区块数据的共识处理结束后,执行所述检测本节点的节点标识是否被记录在下一轮共识周期所对应共识节点集合的。
在一个实施例中,所述处理模块604,还用于当验证结果为所述出块节点标识没有记录在所述第一出块节点标识集合内,但所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,确定所述待共识区块数据为非法数据,删除所述待共识区块数据。
在一个实施例中,所述处理模块604,在对待共识区块数据进行共识处理时,用于根据发送所述待共识区块数据的区块节点的公钥,对所述待共识区块数据进行解密处理;如果解密得到区块头数据,则从区块头数据中获取所述待共识区块数据的验证信息;对所述验证信息进行验证,以便于根据验证结果确定是否对所述待共识区块数据的共识通过。
在一个实施例中,所述处理模块604,在用于对所述验证信息进行验证时,用于获取所述待共识区块数据中各交易数据,并根据各交易数据计算得到这些交易数据所对应的梅克尔树,获取所述梅克尔树的根节点的哈希值;并根据所述梅克尔树的根节点的哈希值对所述验证信息包括的梅克尔树根哈希值进行验证;或者,根据所述待共识区块数据的区块高度标识,在本节点的区块链中确定所述待共识区块数据的上一高度区块数据,并根据上一高度区块数据的区块头哈希值对所述验证信息包括的父区块特征值进行验证;或者,检测所述待共识区块数据的区块高度标识与本节点的区块链上最后一个区块的区块高度标识是否匹配。
在一个实施例中,所述处理模块604,在用于对所述待共识区块数据进行共识处理时,用于执行所述待共识区块数据中的交易数据得到执行结果,并检测所述执行得到的执行结果与区块链***中广播的关于该待共识区块数据的执行结果是否一致。
可以理解的是,本发明实施例的所述装置所包括的各个模块的具体实现可参考前述实施例中相关内容的描述,在此不赘述。
本发明实施例为待共识的区块数据定义了处理流程,基于出块节点标识集合来判断待共识的区块数据的出块节点合法性、基于区块高度范围信息来判断待共识的区块数据的区块高度是否为正常高度,以此来确定待共识区块数据的共识资格,相比于目前的区块链***中所有区块节点都可以广播待共识区块数据,所有的区块节点都可以进行区块数据共识而言,本申请按照出块节点标识集合和区块高度范围信息进行待识别区块的共识验证的方式,可以提高共识处理的效率以及区块链***的稳定性。
再请参见图7,是本发明实施例的另一种在区块链***中的共识处理装置的结构示意图,同样,本发明实施例的所述装置可以设置在智能设备中,这些智能设备可以包括在区块链***中,执行区块数据的生成、共识、上链等处理。所述装置包括如下模块。
比较模块701,用于将本节点的节点标识与当前共识周期所对应的出块节点标识集合进行比较;
生成模块702,用于若比较结果为本节点的节点标识被记录在所述出块节点标识集合中,则从交易池中获取交易数据,并根据该交易数据生成待识别区块数据;
广播模块703,用于在区块链***广播所述待识别区块数据;
处理模块704,用于根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果,对所述待识别区块数据进行上链处理。
可以理解的是,本发明实施例的所述装置所包括的各个模块的具体实现可参考前述实施例中相关内容的描述,在此不赘述。
本发明实施例为待共识的区块数据定义了广播处理流程,只有被记录为出块节点的区块节点才具有生成并广播待共识区块数据的资格,相比于目前的区块链***中所有区块节点都可以广播待共识区块数据,所有的区块节点都可以进行区块数据共识而言,本申请可以提高出块效率以及共识处理的效率。
请参见图8、是本发明实施例的一种智能设备的结构示意图,本发明实施例的智能设备例如可以是智能手机、平板电脑、个人电脑、服务器等设备,该智能设备可以部署在区块链***中作为区块节点,实现数据共享、分布式存储等功能。所述智能设备包括各种所需的壳体结构,并包括供电电源、通信接口等。所述智能设备还可以包括处理器801以及存储装置802、输入接口803、输出接口804。
所述输入接口803可以是一些用户接口,或者数据接口,或者通信接口,能够获取到一些数据,例如获取到区块链***广播的交易数据以便于对存储装置802中存储的交易池进行更新。所述输出接口804可以是一些网络接口等,能够向外发出数据,比如向区块链***广播待共识区块数据。在一个实施例中,所述输入接口803和输出接口804可以为同一个接口,实现数据的收发。
所述存储装置802可包括易失性存储器(volatile memory),如随机存取存储器(random-access memory,RAM);存储装置802也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储装置802还可以包括上述种类的存储器的组合。
所述处理器801可以是中央处理器(central processing unit,CPU)。所述处理器801还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)等。上述PLD可以是现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)等。
在本发明实施例中,所述存储装置802存储有程序指令,所述处理器801调用所述存储装置802中存储的程序指令,用于执行上述各个实施例中提及的相关方法和步骤。
在一个实施例中,所述智能设备作为可用于对广播的待共识区块数据进行共识处理的区块节点时,所述处理器801,用于接收待共识区块数据;获取所述待共识区块数据的出块节点标识和区块高度标识,所述出块节点标识用于在区块链***中唯一标识所述待共识从区块数据的发起节点;根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证;当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,对所述待共识区块数据进行共识处理。
在一个实施例中,所述处理器801,在用于对所述待共识区块数据进行共识处理之前,还用于检测当前是否存在共识处理未结束的区块数据;若不存在,则执行所述对所述待共识区块数据进行共识处理;若存在,则删除所述待共识区块数据。
在一个实施例中,所述处理器801,还用于若验证结果为所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值,则缓存所述待共识区块数据;检测本节点的节点标识是否被记录在下一轮共识周期所对应共识节点集合;若是,则获取第二出块节点标识集合和第二区块高度范围信息,以便于基于第二出块节点标识集合和第二区块高度范围信息对所述缓存的待共识区块数据进行验证,所述第二出块节点标识集合和第二区块高度范围信息与下一轮共识周期关联。
在一个实施例中,在验证结果为所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值之后,所述缓存所述待共识区块数据之前,所述处理器801,还用于检测当前是否存在共识处理未结束的区块数据;若存在,则触发执行所述缓存所述待共识区块数据;并且,当存在共识处理未结束的区块数据时,是在对所述共识处理未结束的区块数据的共识处理结束后,触发执行所述检测本节点的节点标识是否被记录在下一轮共识周期所对应共识节点集合的。
在一个实施例中,所述处理器801,还用于当验证结果为所述出块节点标识没有记录在所述第一出块节点标识集合内,但所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,确定所述待共识区块数据为非法数据,删除所述待共识区块数据。
在一个实施例中,所述处理器801,在用于对所述待共识区块数据进行共识处理时,用于根据发送所述待共识区块数据的区块节点的公钥,对所述待共识区块数据进行解密处理;如果解密得到区块头数据,则从区块头数据中获取所述待共识区块数据的验证信息;对所述验证信息进行验证,以便于根据验证结果确定是否对所述待共识区块数据的共识通过。
在一个实施例中,所述处理器801,在用于对所述验证信息进行验证时,用于获取所述待共识区块数据中各交易数据,并根据各交易数据计算得到这些交易数据所对应的梅克尔树,获取所述梅克尔树的根节点的哈希值;并根据所述梅克尔树的根节点的哈希值对所述验证信息包括的梅克尔树根哈希值进行验证;或者,根据所述待共识区块数据的区块高度标识,在本节点的区块链中确定所述待共识区块数据的上一高度区块数据,并根据上一高度区块数据的区块头哈希值对所述验证信息包括的父区块特征值进行验证;或者,检测所述待共识区块数据的区块高度标识与本节点的区块链上最后一个区块的区块高度标识是否匹配。
在一个实施例中,所述处理器801,在用于对所述待共识区块数据进行共识处理时,用于执行所述待共识区块数据中的交易数据得到执行结果,并检测所述执行得到的执行结果与区块链***中广播的关于该待共识区块数据的执行结果是否一致。
在一个实施例中,所述智能设备作为可用于广播待共识区块数据时,所述处理器801,用于将本节点的节点标识与当前共识周期所对应的出块节点标识集合进行比较;若比较结果为本节点的节点标识被记录在所述出块节点标识集合中,则从交易池中获取交易数据,并根据该交易数据生成待识别区块数据;在区块链***广播所述待识别区块数据;根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果,对所述待识别区块数据进行上链处理。
可以理解的是,本发明实施例的所述智能设备的处理器的具体实现可参考前述实施例中相关内容的描述,在此不赘述。
本发明实施例为待共识的区块数据定义了处理流程,基于出块节点标识集合来判断待共识的区块数据的出块节点合法性、基于区块高度范围信息来判断待共识的区块数据的区块高度是否为正常高度,以此来确定待共识区块数据的共识资格,相比于目前的区块链***中所有区块节点都可以广播待共识区块数据,所有的区块节点都可以进行区块数据共识而言,本申请按照出块节点标识集合和区块高度范围信息进行待识别区块的共识验证的方式,可以提高共识处理的效率以及区块链***的稳定性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (13)
1.一种在区块链***中的共识处理方法,其特征在于,包括:
接收待共识区块数据;
获取所述待共识区块数据的出块节点标识和区块高度标识,所述出块节点标识用于在区块链***中唯一标识所述待共识区块数据的发起节点;
根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证;
当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,对所述待共识区块数据进行共识处理。
2.如权利要求1所述的方法,其特征在于,所述对所述待共识区块数据进行共识处理之前,还包括:
检测当前是否存在共识处理未结束的区块数据;
若不存在,则触发执行所述对所述待共识区块数据进行共识处理;
若存在,则删除所述待共识区块数据。
3.如权利要求1所述的方法,其特征在于,还包括:
若验证结果为所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值,则缓存所述待共识区块数据;
检测本节点的节点标识是否被记录在下一轮共识周期所对应共识节点集合;
若是,则获取第二出块节点标识集合和第二区块高度范围信息,以便于基于第二出块节点标识集合和第二区块高度范围信息对所述缓存的待共识区块数据进行验证,所述第二出块节点标识集合和第二区块高度范围信息与下一轮共识周期关联。
4.如权利要求3所述的方法,其特征在于,在验证结果为所述区块高度标识所指示的值大于所述第一区块高度范围信息所对应的区块高度范围的最大值之后,所述缓存所述待共识区块数据之前,还包括:
检测当前是否存在共识处理未结束的区块数据;
若存在,则触发执行所述缓存所述待共识区块数据;
并且,当存在共识处理未结束的区块数据时,是在对所述共识处理未结束的区块数据的共识处理结束后,触发执行所述检测本节点的节点标识是否被记录在下一轮共识周期所对应共识节点集合的。
5.如权利要求1所述的方法,其特征在于,还包括:
当验证结果为所述出块节点标识没有记录在所述第一出块节点标识集合内,但所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,确定所述待共识区块数据为非法数据,删除所述待共识区块数据。
6.如权利要求1-5任一项所述的方法,其特征在于,所述对所述待共识区块数据进行共识处理,包括:
根据发送所述待共识区块数据的区块节点的公钥,对所述待共识区块数据进行解密处理;
如果解密得到区块头数据,则从区块头数据中获取所述待共识区块数据的验证信息;
对所述验证信息进行验证,以便于根据验证结果确定是否对所述待共识区块数据的共识通过。
7.如权利要求6所述的方法,其特征在于,所述对所述验证信息进行验证,包括:
获取所述待共识区块数据中各交易数据,并根据各交易数据计算得到这些交易数据所对应的梅克尔树,获取所述梅克尔树的根节点的哈希值;并根据所述梅克尔树的根节点的哈希值对所述验证信息包括的梅克尔树根哈希值进行验证;或者,
根据所述待共识区块数据的区块高度标识,在本节点的区块链中确定所述待共识区块数据的上一高度区块数据,并根据上一高度区块数据的区块头哈希值对所述验证信息包括的父区块特征值进行验证;或者
检测所述待共识区块数据的区块高度标识与本节点的区块链上最后一个区块的区块高度标识是否匹配。
8.如权利要求1-5任一项所述的方法,其特征在于,所述对所述待共识区块数据进行共识处理,包括:
执行所述待共识区块数据中的交易数据得到执行结果,并检测所述执行得到的执行结果与区块链***中广播的关于该待共识区块数据的执行结果是否一致。
9.一种在区块链***中的共识处理方法,其特征在于,包括:
将本节点的节点标识与当前共识周期所对应的出块节点标识集合进行比较;
若比较结果为本节点的节点标识被记录在所述出块节点标识集合中,则从交易池中获取交易数据,并根据该交易数据生成待识别区块数据;
在区块链***广播所述待识别区块数据;
根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果,对所述待识别区块数据进行上链处理。
10.一种在区块链***中的共识处理装置,其特征在于,包括:
接收模块,用于接收待共识区块数据;
获取模块,用于获取所述待共识区块数据的出块节点标识和区块高度标识,所述出块节点标识用于在区块链***中唯一标识所述待共识区块数据的发起节点;
检测模块,用于根据本节点中记录的第一出块节点标识集合和第一区块高度范围信息,对所述出块节点标识和区块高度标识进行验证;
处理模块,用于当验证结果为所述出块节点标识记录在所述第一出块节点标识集合内,且所述区块高度标识在所述第一区块高度范围信息所指示的高度范围内时,对所述待共识区块数据进行共识处理。
11.一种在区块链***中的共识处理装置,其特征在于,包括:
比较模块,用于将本节点的节点标识与当前共识周期所对应的出块节点标识集合进行比较;
生成模块,用于若比较结果为本节点的节点标识被记录在所述出块节点标识集合中,则从交易池中获取交易数据,并根据该交易数据生成待识别区块数据;
广播模块,用于在区块链***广播所述待识别区块数据;
处理模块,用于根据区块链***中共识节点反馈的对所述待识别区块数据的共识结果,对所述待识别区块数据进行上链处理。
12.一种智能设备,其特征在于,所述智能设备包括存储装置和处理器,所述存储装置中存储有程序指令,所述处理器,用于调用所述程序指令,实现如权利要求1-8任一项所述的在区块链***中的共识处理方法,或者实现如权利要求9所述的在区块链***中的共识处理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时,如权利要求1-8任一项所述的在区块链***中的共识处理方法将被实现,或者如权利要求9所述的在区块链***中的共识处理方法将被实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010310493.4A CN111506656B (zh) | 2020-04-20 | 2020-04-20 | 区块链***的共识处理方法、装置及智能设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010310493.4A CN111506656B (zh) | 2020-04-20 | 2020-04-20 | 区块链***的共识处理方法、装置及智能设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506656A CN111506656A (zh) | 2020-08-07 |
CN111506656B true CN111506656B (zh) | 2022-06-14 |
Family
ID=71876199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010310493.4A Active CN111506656B (zh) | 2020-04-20 | 2020-04-20 | 区块链***的共识处理方法、装置及智能设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506656B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022120521A1 (zh) * | 2020-12-07 | 2022-06-16 | 合肥达朴汇联科技有限公司 | 一种区块链共识方法、***、电子设备及存储介质 |
CN112583908B (zh) * | 2020-12-07 | 2024-04-16 | 合肥达朴汇联科技有限公司 | 应用于出块节点的区块链共识方法、***、设备及介质 |
CN112202933B (zh) | 2020-12-08 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 区块链网络的信息处理方法、装置及节点设备 |
CN112258326B (zh) * | 2020-12-24 | 2021-03-16 | 布比(北京)网络技术有限公司 | 一种随机出块方法及*** |
CN112788106B (zh) * | 2020-12-28 | 2022-12-27 | 深圳前海益链网络科技有限公司 | 一种应用于区块链的区块生成控制方法及相关装置 |
CN112907369B (zh) * | 2021-02-08 | 2022-04-12 | 网易(杭州)网络有限公司 | 基于区块链的数据共识方法及装置、电子设备、存储介质 |
CN113286004B (zh) * | 2021-03-29 | 2022-06-24 | 腾讯科技(深圳)有限公司 | 基于区块链网络的节点管理方法、装置、设备及存储介质 |
CN113160972B (zh) * | 2021-04-15 | 2023-03-24 | 阜外华中心血管病医院 | 基于“互联网+”技术的症状群管理个性化推荐平台 |
CN115225639B (zh) * | 2022-09-15 | 2022-12-27 | 杭州趣链科技有限公司 | 共识可信集群的变更方法、装置、计算机设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108960837A (zh) * | 2018-06-05 | 2018-12-07 | 上海和数软件有限公司 | 区块链共识验证方法、装置及计算机可读存储介质 |
CN109194669A (zh) * | 2018-09-18 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 一种轻量级节点的数据传输方法、装置、设备和介质 |
CN109949157A (zh) * | 2019-03-08 | 2019-06-28 | 矩阵元技术(深圳)有限公司 | 一种区块链共识的处理方法、装置及*** |
CN111010284A (zh) * | 2019-12-20 | 2020-04-14 | 深圳市网心科技有限公司 | 一种待共识区块的处理方法、相关装置及区块链*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107040585B (zh) * | 2017-02-22 | 2020-06-19 | 创新先进技术有限公司 | 一种业务校验的方法及装置 |
-
2020
- 2020-04-20 CN CN202010310493.4A patent/CN111506656B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108960837A (zh) * | 2018-06-05 | 2018-12-07 | 上海和数软件有限公司 | 区块链共识验证方法、装置及计算机可读存储介质 |
CN109194669A (zh) * | 2018-09-18 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 一种轻量级节点的数据传输方法、装置、设备和介质 |
CN109949157A (zh) * | 2019-03-08 | 2019-06-28 | 矩阵元技术(深圳)有限公司 | 一种区块链共识的处理方法、装置及*** |
CN111010284A (zh) * | 2019-12-20 | 2020-04-14 | 深圳市网心科技有限公司 | 一种待共识区块的处理方法、相关装置及区块链*** |
Also Published As
Publication number | Publication date |
---|---|
CN111506656A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506656B (zh) | 区块链***的共识处理方法、装置及智能设备、存储介质 | |
WO2021233048A1 (zh) | 基于区块链的数据检测方法、装置及计算机可读存储介质 | |
CN108710681B (zh) | 文件获取方法、装置、设备及存储介质 | |
CN110597918B (zh) | 一种账户管理方法、装置及计算机可读存储介质 | |
CN111191294B (zh) | 基于区块链的单节点记账方法、***、设备和存储介质 | |
CN113301114B (zh) | 区块链共识节点选择方法、装置、计算机设备和存储介质 | |
CN110928880B (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN111211911B (zh) | 一种协同签名方法、装置、设备及*** | |
CN109936620B (zh) | 基于区块链的存储方法及装置、***与存储介质 | |
US11057392B2 (en) | Data security method utilizing mesh network dynamic scoring | |
CN112069169A (zh) | 区块数据存储方法、装置、电子设备及可读存储介质 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN110597820B (zh) | 基于区块链的信息处理方法、装置、存储介质和设备 | |
CN111199486A (zh) | 一种基于区块链网络的数据处理方法、装置及存储介质 | |
EP3210158B1 (en) | Secure transmission | |
CN111506655B (zh) | 区块链***的同步处理方法、装置及智能设备、存储介质 | |
CN113259326B (zh) | 基于联盟链网络的共识优化方法、装置和计算机设备 | |
CN112436939B (zh) | 一种秘钥协商方法、装置、***及电子设备 | |
CN111680282B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
CN108882230B (zh) | 通话记录管理方法、装置及*** | |
CN112465516B (zh) | 基于区块链网络的设备管理方法,相关设备及存储介质 | |
EP3949327B1 (en) | Secure transmission | |
CN114418769A (zh) | 一种区块链交易计费方法、装置及可读存储介质 | |
CN110599386B (zh) | 身份认证方法、装置、存储介质和计算机设备 | |
CN110782347B (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: 40027383 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |