CN111930845A - 一种区块链的共识方法、系统、终端、及存储介质 - Google Patents
一种区块链的共识方法、系统、终端、及存储介质 Download PDFInfo
- Publication number
- CN111930845A CN111930845A CN202010807759.6A CN202010807759A CN111930845A CN 111930845 A CN111930845 A CN 111930845A CN 202010807759 A CN202010807759 A CN 202010807759A CN 111930845 A CN111930845 A CN 111930845A
- Authority
- CN
- China
- Prior art keywords
- block
- node
- nodes
- block chain
- writing
- 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
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种区块链的共识方法、系统、终端及存储介质,所述方法包括:每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的M个节点,其中M小于节点总数,以及M小于等于N;根据各节点发送的投票信息,统计各节点的投票数,选择投票数最高的前M个节点作为出块节点;根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。本发明解决了现有采用POW工作量证明的共识机制的区块链共识达成周期长的问题的问题。
Description
技术领域
本发明涉及智能终端领域,尤其涉及一种区块链的共识方法、系统、终端及计算机可读存储介质。
背景技术
区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,而共识算法是区块链的核心机制之一。目前常用的共识机制POW工作量证明,就是人们熟悉的比特币挖矿,通过计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储,可实现完全去中心化,节点自由进出,但挖矿造成大量的资源浪费,共识达成的周期较长。
发明内容
本发明的主要目的在于提出一种区块链的共识方法、系统、终端及计算机可读存储介质,旨在解决现有采用POW工作量证明的共识机制的区块链共识达成周期长的问题。
为实现上述目的,本发明提供一种区块链的共识方法,包括步骤:
每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的M个节点,其中M小于节点总数,以及M小于等于N;
根据各节点发送的投票信息,统计各节点的投票数,选择投票数最高的前M个节点作为出块节点;
根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
可选地,所述每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息的步骤之前包括:
在区块链网络初始化时,随机选择M个节点作为出块节点;
根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
可选地,所述根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并将生成的区块写入至区块链上的步骤包括:
控制出块节点对该出块节点接收到的各交易数据进行验证;
控制出块节点根据验证合法的交易数据生成区块,并将区块写入至区块链上。
可选地,所述控制出块节点根据验证合法的交易数据生成区块,并将区块写入至区块链上的步骤还包括:
控制出块节点根据验证合法的交易数据生成区块;
控制出块节点将区块广播至其他节点,以使其他节点对区块进行验证,并反馈验证结果至出块节点;
当确定出块节点接收到反馈验证结果为合格的节点数量占区块链网络的节点总数的比例达到预设比例时,控制出块节点将区块写入至区块链上。
可选地,所述投票信息还包括节点本身拥有的代币数量;所述根据各节点发送的投票信息,统计各节点的投票数的步骤还包括:
根据各节点所拥有的代币数量和各节点发送的投票信息,统计各节点的投票数。
可选地,所述方法还包括:
区块链网络启动预设时间后,实时判断当前之前预设时间内各节点是否写入至少一个区块至节点的自身链中;
若否,则移除当前之前预设时间内未写入区块至节点自身的本地链中的节点。
可选地,所述方法还包括:
实时获取各节点的区块写入成功率,判断各节点的区块写入成功率是否小于预设阈值;
若是,则移除区块写入成功率小于预设阈值的节点。
为实现上述目的,本发明还提供一种区块链的共识系统,所述区块链的共识系统包括:
获取模块,用于每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的M个节点,其中M小于节点总数,以及M小于等于N;
选择模块,用于根据各节点发送的投票信息,统计各节点的投票数,选择投票数最高的前M个节点作为出块节点;
第一写入模块,用于根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
为实现上述目的,本发明还提供一种终端,所述终端包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的区块链的共识方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的区块链的共识方法的步骤。
本发明提出的一种区块链的共识方法、终端及计算机可读存储介质,通过每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的至少一个节点;根据各节点发送的投票信息,统计各节点的投票数,选择投票数前M个节点作为出块节点,其中M小于节点总数,以及M小于等于N;根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。从而利用投票选举可以快速的选择出出块节点,并由选择出的出块节点轮流生成区块,缩短共识所占用的时间。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明区块链的共识方法第一实施例的流程示意图;
图3为本发明区块链的共识方法第一实施例中步骤S30的细化流程示意图;
图4为本发明区块链的共识方法第二实施例中步骤S32的细化流程示意图;
图5为本发明区块链的共识系统的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1,图1为本发明各个实施例中所提供的终端的硬件结构示意图。所述终端包括通信模块01、存储器02及处理器03等部件。本领域技术人员可以理解,图1中所示出的终端还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,所述处理器03分别与所述存储器02和所述通信模块01连接,所述存储器02上存储有计算机程序,所述计算机程序同时被处理器03执行。
通信模块01,可通过网络与外部设备连接。通信模块01可以接收外部设备发出的数据,还可发送数据、指令及信息至所述外部设备,所述外部设备可以是手机、平板电脑、笔记本电脑和台式电脑等电子设备。
存储器02,可用于存储软件程序以及各种数据。存储器02可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(获取各节点发送的投票信息)等;存储数据区可存储根据终端的使用所创建的数据或信息等。此外,存储器02可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器03,是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器02内的软件程序和/或模块,以及调用存储在存储器02内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器03可包括一个或多个处理单元;优选的,处理器03可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器03中。
尽管图1未示出,但上述终端还可以包括电路控制模块,电路控制模块用于与市电连接,实现电源控制,保证其他部件的正常工作。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
根据上述硬件结构,提出本发明方法各个实施例。
参照图2,在本发明区块链的共识方法的第一实施例中,所述区块链的共识方法包括步骤:
步骤S10,每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的M个节点,其中M小于节点总数,以及 M小于等于N;
在本方案中,区块链网络是一种基于区块链技术的系统,也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络主要包括数据层、智能合约层、共识层等,其中,数据层封装了低层数据区块以及相关的数据加密和时间戳等基础数据和基本算法,而低层数据区块以链式结构呈现,即区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则、条款或算法。共识层封装有共识机制,共识机制的目标是使所有节点保存一致的、有效的区块链数据。区块链上采用不同的共识机制,在满足一致性和有效性的同时会对系统整体性能产生不同影响。本实施例中的区块链网络是基于混合记账节点选举机制和轮流出块机制的共识方法。
每当区块链网络中的区块链被连续写入N个区块后,会重新进行出块节点的选举,即每一个节点都会从区块链网络的其他节点中选择M个节点作为投票对象,然后将选择的M个投票对象节点广播出来。
进一步地,步骤S10之前包括:
步骤S40,在区块链网络初始化时,随机选择M个节点作为出块节点;
步骤S50,根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
在区块链网络初始化,即区块链网络首次组建并启动时,会从区块链网络中的所有节点中随机选择M个节点作为第一个生成区块周期的出块节点,并根据预设顺序依次控制M个出块节点中的出块节点轮流将接收到的交易数据封装为区块,将生成的区块写入至区块链上,同时也会将该区块写入至自身链中,还同时会将区块广播至其他节点,其他节点会将接收的区块同时写入节点自身链中。
需要说明的是,出块节点除了将交易数据封装至区块中,还会将时间戳和出块节点的标识封装至区块中,可以使得其他节点通过这些信息明确该区块的生成时间以及生成区块的节点。
步骤S20,根据各节点发送的投票信息,统计各节点的投票数,选择投票数最高的前M个节点作为出块节点;
各节点发送的投票信息中除了包括所选择的M个节点作为投票对象,还包括自身所拥有的代币数量,本步骤中将节点拥有的代币数量作为权重。在接收到各节点发送的投票信息后,会根据各节点所拥有的代币数量和各节点发送的投票信息,对各节点所获得的投票数进行统计,具体的统计计算方法为:
其中,i=1,2,....,K,K为投票时区块链网络的节点总数量, Yi为本轮投票中区块链网络的第i个节点获得的投票数。当i=j时,Xij=0;当 i≠j时,若第j个节点所选择的M个节点中有第i节点,则Xij=1,若第j个节点没有选择第i个节点,则Xij=0。
统计各节点获得的投票数后,会将票数最高的前M个节点自动定义为新的出块节点。共识算法中的M的取值可预设,可按比例设置,如10%,例如,当区块链网络中含有2000个节点时,筛选出200个代表节点。也可以按数量设置,如N=100,通过筛选出100个出块节点。筛选出M个节点即为出块节点,出块节点会按照预设的顺序获得轮流记账权利,记账过程即为生成区块,并写入区块至区块链中的过程。
具体地的,所述投票信息还包括节点本身拥有的代币数量;步骤S20中所述根据各节点发送的投票信息,统计各节点的投票数的步骤包括:
步骤S21,根据各节点所拥有的代币数量和各节点发送的投票信息,统计各节点的投票数。
各节点发送的投票信息中除了包括所选择的M个节点作为投票对象,还包括自身所拥有的代币数量,本步骤中将节点拥有的代币数量作为权重。在接收到各节点发送的投票信息后,会根据各节点所拥有的代币数量和各节点发送的投票信息,对各节点所获得的投票数进行统计,具体的统计计算方法为:
其中,i=1,2,....,K,K为投票时区块链网络的节点总数量, Yi为本轮投票中区块链网络的第i个节点获得的投票数。当i=j时,Xij=0;当 i≠j时,若第j个节点所选择的M个节点中有第i节点,则Xij=1,若第j个节点没有选择第i个节点,则Xij=0;Aj为第j个节点所拥有的代币数量。
步骤S30,根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
根据预设顺序依次控制M个出块节点中的出块节点轮流将接收到的交易数据封装为区块,将生成的区块写入至区块链上,同时也会将该区块写入至自身链中,还同时会将区块广播至其他节点,其他节点会将接收的区块同时写入节点自身链中。
需要说明的是,出块节点除了将交易数据封装至区块中,还会将时间戳和出块节点的标识封装至区块中,可以使得其他节点通过这些信息明确该区块的生成时间以及生成区块的节点。
本实例通过每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的至少一个节点;根据各节点发送的投票信息,统计各节点的投票数,选择投票数前M个节点作为出块节点,其中M 小于节点总数,以及M小于等于N;根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。从而利用投票选举可以快速的选择出出块节点,并由选择出的出块节点轮流生成区块,缩短共识所占用的时间。
进一步地,请参照图3,图3为根据本申请区块链的共识方法的第一实施例提出本申请区块链的共识方法的第二实施例,在本实施例中,步骤S30包括:
步骤S31,控制出块节点对该出块节点接收到的各交易数据进行验证;
步骤S32,控制出块节点根据验证合法的交易数据生成区块,并将区块写入至区块链上。
本实施例中,为了防止非法交易数据或错误交易数据写入区块链中,在出块节点将交易数据封装为区块过程中,会先控制出块节点对该出块节点接收到的各交易数据进行验证,只有验证合法的交易数据,才会被该出块节点封装为为区块。在将根据验证合法的交易数据生成区块后,将生成的区块写入至区块链上,同时也会将该区块写入至自身链中,还同时会将区块广播至其他节点,其他节点会将接收的区块同时写入节点自身链中。
本实施例通过在出块过程中,将获取的交易数据进行合法验证,从而避免将错误和非法数据写入区块链中。
进一步地,请参照图4,图4为根据本申请区块链的共识方法的第一实施例和第二实施例提出本申请区块链的共识方法的第三实施例,在本实施例中,步骤S32包括:
步骤S321,控制出块节点根据验证合法的交易数据生成区块;
步骤S322,控制出块节点将区块广播至其他节点,以使其他节点对区块进行验证,并反馈验证结果;
步骤S323,当确定出块节点接收到反馈验证结果为合格的节点数量占区块链网络的节点总数的比例达到预设比例时,控制出块节点将区块写入至区块链上。
控制当前的出块节点将验证合法的各交易数据封装为为区块。然后控制当前的出块节点将生成的区块广播至区块链网络的中的其他节点。其他节点对区块进行验证,并通过广播将验证结果广播至当前的出块节点,具体地,其他节点接收到当前出块节点广播的区块后,若对该区块验证合格后,会对该区块的区块头和当前时间戳加密签名,将签名和时间戳反馈至出块节点,出块节点接收到该签名时,就代表接收到一个节点反馈的验证合格结果。当确定出块节点接收到反馈验证结果为合格的节点数量占区块链网络的节点总数的比例达到预设比例时,会控制该出块节点将生成的区块写入至区块链。若出块节点接收到反馈验证结果为合格的节点数量占区块链网络的节点总数的比例未达到预设比例,则出块节点不会将该生成的区块写入至区块链中,之后会切换至出块顺序中的下一个出块节点进行出块和写入区块的过程。
需要说明的是,为了避免出块节点长时间等待其他节点反馈验证结果,设定了一个预设时间,若出块节点广播生成的区块至其他节点后的预设时间内接收到其他节点接收到接收到反馈验证结果为合格的节点数量占区块链网络的节点总数的比例达到预设比例时,才会控制出块节点将区块写入至区块链上;若出块节点广播生成的区块至其他节点后的预设时间内接收到其他节点接收到接收到反馈验证结果为合格的节点数量占区块链网络的节点总数的比例未达到预设比例,则说明已超时,出块节点不会将该生成的区块写入至区块链中。之后会切换至出块顺序中的下一个出块节点进行出块和写入区块的过程。
本实施例通过在将生成的区块写入区块链中之前,会将生成的区块广播至区块链网络中的其他节点进行验证,只有超过一定比例的节点验证合法后,才会将生成的区块写入区块链中,从而避免将非法的区块写入区块链中。
进一步地,根据本申请区块链的共识方法的前述实施例提出本申请区块链的共识方法的第四实施例,在本实施例中,所述方法还包括:
步骤S60,区块链网络启动预设时间后,实时判断当前之前预设时间内各节点是否写入至少一个区块至节点的自身链中;若否,则执行步骤S70;
步骤S70,移除当前之前预设时间内未写入区块至节点自身的本地链中的节点。
在区块链网络启动预设时间后,会实时判断当前之前预设时间内各节点是否写入至少一个区块至节点的自身链中;若某一节点在当前之前预设时间内都未曾写入一个区块至节点的自身链中,则说明该节点出现故障或已经离线,不能收到任何节点发送的区块,以至于该节点不能写入区块,若出现这样的节点,会将这些节点从区块链网络中移除。
本实施例通过判断各节点是否在预设时间内从未写入一个区块,来确定节点是否发生故障或长时间离线,在确定发生故障或长时间离线后会移除这些节点,从而确保区块链网络中不存在离线节点和发生故障的节点,进而提高区块链网络的运行可靠性。
进一步地,根据本申请区块链的共识方法的第一实施例至第三实施例提出本申请区块链的共识方法的第五实施例,在本实施例中,所述方法还包括:
步骤S80,实时获取各节点的区块写入成功率,判断各节点的出块成功率是否小于预设阈值;若是,则执行步骤S90;
步骤S90,移除出块成功率小于预设阈值的节点。
本实施例中,在区块链网络中的所有节点均预设有一份出块记录表,出块记录表中记录有写入成功的区块数量和写入失败的区块数量。在区块链网络启动后,会实时获取区块链网络中各节点的出块记录表,获取各节点的区块写入成功率,判断各节点的区块写入成功率是否小于预设阈值;若某一节点的区块写入成功率小于预设阈值,则说明该节点出现故障或已经离线,不能收到任何节点发送的区块,以至于该节点不能写入区块,导致区块写入成功率一直降低,直至降低至预设阈值,若出现这样的节点,会将这些节点从区块链网络中移除。
本实施例通过判断各节点的区块写入成功率是否小于预设阈值,来确定节点是否发生故障或长时间离线,在确定发生故障或长时间离线后会移除这些节点,从而确保区块链网络中不存在离线节点和发生故障的节点,进而提高区块链网络的运行可靠性。
参见图5,本发明还提供一种区块链的共识系统,包括:
获取模块10,用于用于每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的M个节点,其中M小于节点总数,以及M小于等于N;
选择模块20,用于根据各节点发送的投票信息,统计各节点的投票数,选择投票数最高的前M个节点作为出块节点;
第一写入模块30,用于根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
进一步,所述区块链的共识系统包括:
初始化模块40,在区块链网络初始化时,随机选择M个节点作为出块节点;
第二写入模块50,用于根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
进一步,所述第一写入模块30包括:
验证子模块31,用于控制出块节点对该出块节点接收到的各交易数据进行验证;
写入子模块32,用于控制出块节点根据验证合法的交易数据生成区块,并将区块写入至区块链上。
进一步,所述写入子模块32包括:
生成单元321,用于控制出块节点根据验证合法的交易数据生成区块;
广播单元322,用于控制出块节点将区块广播至其他节点,以使其他节点对区块进行验证,并反馈验证结果至出块节点;
写入单元323,用于当确定出块节点接收到反馈验证结果为合格的节点数量占区块链网络的节点总数的比例达到预设比例时,控制出块节点将区块写入至区块链上。
进一步,所述投票信息还包括节点本身拥有的代币数量;所述选择模块 20还包括:
统计子模块21,用于根据各节点所拥有的代币数量和各节点发送的投票信息,统计各节点的投票数。
进一步,所述区块链的共识系统还包括:
第一判断模块60,用于区块链网络启动预设时间后,实时判断当前之前预设时间内各节点是否写入至少一个区块至节点的自身链中;若否,则调用第一移除模块70执行相应的;
第一移除模块70,用于移除当前之前预设时间内未写入区块至节点自身的本地链中的节点。
进一步,所述区块链的共识系统还包括:
第二判断模块80,用于实时获取各节点的区块写入成功率,判断各节点的区块写入成功率是否小于预设阈值;若是,则调用第二移除模块90执行相应的;
第二移除模块90,用于移除区块写入成功率小于预设阈值的节点。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序。所述计算机可读存储介质可以是图1的终端中的存储器02,也可以是如ROM (Read-Only Memory,只读存储器)/RAM(RandomAccess Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干信息用以使得终端执行本发明各个实施例所述的方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区块链的共识方法,其特征在于,包括步骤:
每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的M个节点,其中M小于节点总数,以及M小于等于N;
根据各节点发送的投票信息,统计各节点的投票数,选择投票数最高的前M个节点作为出块节点;
根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
2.根据权利要求1所述的区块链的共识方法,其特征在于,所述每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息的步骤之前包括:
在区块链网络初始化时,随机选择M个节点作为出块节点;
根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
3.根据权利要求1或2所述的区块链的共识方法,其特征在于,所述根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并将生成的区块写入至区块链上的步骤包括:
控制出块节点对该出块节点接收到的各交易数据进行验证;
控制出块节点根据验证合法的交易数据生成区块,并将区块写入至区块链上。
4.根据权利要求3所述的区块链的共识方法,其特征在于,所述控制出块节点根据验证合法的交易数据生成区块,并将区块写入至区块链上的步骤还包括:
控制出块节点根据验证合法的交易数据生成区块;
控制出块节点将区块广播至其他节点,以使其他节点对区块进行验证,并反馈验证结果至出块节点;
当确定出块节点接收到反馈验证结果为合格的节点数量占区块链网络的节点总数的比例达到预设比例时,控制出块节点将区块写入至区块链上。
5.根据权利要求4所述的区块链的共识方法,其特征在于,所述投票信息还包括节点本身拥有的代币数量;所述根据各节点发送的投票信息,统计各节点的投票数的步骤还包括:
根据各节点所拥有的代币数量和各节点发送的投票信息,统计各节点的投票数。
6.根据权利要求5所述的区块链的共识方法,其特征在于,所述方法还包括:
区块链网络启动预设时间后,实时判断当前之前预设时间内各节点是否写入至少一个区块至节点的自身链中;
若否,则移除当前之前预设时间内未写入区块至节点自身的本地链中的节点。
7.根据权利要求5所述的区块链的共识方法,其特征在于,所述方法还包括:
实时获取各节点的区块写入成功率,判断各节点的区块写入成功率是否小于预设阈值;
若是,则移除区块写入成功率小于预设阈值的节点。
8.一种区块链的共识系统,其特征在于,所述区块链的共识系统包括:
获取模块,用于每确定连续N个区块被写入至区块链后,获取各节点发送的投票信息,所述投票信息包括选择的至少一个节点;
选择模块,用于根据各节点发送的投票信息,统计各节点的投票数,选择投票数最高的前M个节点作为出块节点,其中M小于节点总数,以及M小于等于N;
第一写入模块,用于根据预设顺序依次控制M个出块节点中一个出块节点生成区块,并写入至区块链上。
9.一种终端,其特征在于,所述终端包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的区块链的共识方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的区块链的共识方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807759.6A CN111930845A (zh) | 2020-08-12 | 2020-08-12 | 一种区块链的共识方法、系统、终端、及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807759.6A CN111930845A (zh) | 2020-08-12 | 2020-08-12 | 一种区块链的共识方法、系统、终端、及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111930845A true CN111930845A (zh) | 2020-11-13 |
Family
ID=73311608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010807759.6A Pending CN111930845A (zh) | 2020-08-12 | 2020-08-12 | 一种区块链的共识方法、系统、终端、及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930845A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112398692A (zh) * | 2020-11-16 | 2021-02-23 | 网易(杭州)网络有限公司 | 共识流程处理方法、装置和电子设备 |
CN112583908A (zh) * | 2020-12-07 | 2021-03-30 | 合肥达朴汇联科技有限公司 | 应用于出块节点的区块链共识方法、系统、设备及介质 |
CN112600698A (zh) * | 2020-12-07 | 2021-04-02 | 合肥达朴汇联科技有限公司 | 应用于非出块节点的区块链共识方法、系统、设备及介质 |
CN112702174A (zh) * | 2020-12-25 | 2021-04-23 | 深圳市星际大陆科技有限公司 | 基于区块链的交易出块方法、系统、设备及存储介质 |
CN112801791A (zh) * | 2021-01-29 | 2021-05-14 | 武汉大学 | 一种基于授权的区块链共识方法及系统 |
CN112990568A (zh) * | 2021-03-11 | 2021-06-18 | 华北电力大学 | 一种综合能源智能交易场景下的区块链共识机制构建方法 |
WO2022120521A1 (zh) * | 2020-12-07 | 2022-06-16 | 合肥达朴汇联科技有限公司 | 一种区块链共识方法、系统、电子设备及存储介质 |
CN114650145A (zh) * | 2022-03-31 | 2022-06-21 | 中国工商银行股份有限公司 | 生成区块链中区块的方法、装置及电子设备 |
CN114666327A (zh) * | 2020-12-23 | 2022-06-24 | 富泰华工业(深圳)有限公司 | 基于区块链交易的区块打包方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
CN109872152A (zh) * | 2019-01-11 | 2019-06-11 | 平安科技(深圳)有限公司 | 基于股份授权证明机制的区块链共识方法及相关设备 |
CN111414373A (zh) * | 2020-03-18 | 2020-07-14 | 深圳市网心科技有限公司 | 一种共识方法和共识系统 |
-
2020
- 2020-08-12 CN CN202010807759.6A patent/CN111930845A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
CN109872152A (zh) * | 2019-01-11 | 2019-06-11 | 平安科技(深圳)有限公司 | 基于股份授权证明机制的区块链共识方法及相关设备 |
CN111414373A (zh) * | 2020-03-18 | 2020-07-14 | 深圳市网心科技有限公司 | 一种共识方法和共识系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112398692A (zh) * | 2020-11-16 | 2021-02-23 | 网易(杭州)网络有限公司 | 共识流程处理方法、装置和电子设备 |
CN112398692B (zh) * | 2020-11-16 | 2022-07-19 | 网易(杭州)网络有限公司 | 共识流程处理方法、装置和电子设备 |
CN112583908A (zh) * | 2020-12-07 | 2021-03-30 | 合肥达朴汇联科技有限公司 | 应用于出块节点的区块链共识方法、系统、设备及介质 |
CN112600698A (zh) * | 2020-12-07 | 2021-04-02 | 合肥达朴汇联科技有限公司 | 应用于非出块节点的区块链共识方法、系统、设备及介质 |
CN112583908B (zh) * | 2020-12-07 | 2024-04-16 | 合肥达朴汇联科技有限公司 | 应用于出块节点的区块链共识方法、系统、设备及介质 |
CN112600698B (zh) * | 2020-12-07 | 2023-06-13 | 合肥达朴汇联科技有限公司 | 应用于非出块节点的区块链共识方法、系统、设备及介质 |
WO2022120521A1 (zh) * | 2020-12-07 | 2022-06-16 | 合肥达朴汇联科技有限公司 | 一种区块链共识方法、系统、电子设备及存储介质 |
CN114666327A (zh) * | 2020-12-23 | 2022-06-24 | 富泰华工业(深圳)有限公司 | 基于区块链交易的区块打包方法、装置及电子设备 |
CN114666327B (zh) * | 2020-12-23 | 2023-12-19 | 富泰华工业(深圳)有限公司 | 基于区块链交易的区块打包方法、装置及电子设备 |
CN112702174B (zh) * | 2020-12-25 | 2022-11-04 | 深圳市星际大陆科技有限公司 | 基于区块链的交易出块方法、系统、设备及存储介质 |
CN112702174A (zh) * | 2020-12-25 | 2021-04-23 | 深圳市星际大陆科技有限公司 | 基于区块链的交易出块方法、系统、设备及存储介质 |
CN112801791A (zh) * | 2021-01-29 | 2021-05-14 | 武汉大学 | 一种基于授权的区块链共识方法及系统 |
CN112990568A (zh) * | 2021-03-11 | 2021-06-18 | 华北电力大学 | 一种综合能源智能交易场景下的区块链共识机制构建方法 |
CN112990568B (zh) * | 2021-03-11 | 2022-09-20 | 华北电力大学 | 一种综合能源智能交易场景下的区块链共识机制构建方法 |
CN114650145A (zh) * | 2022-03-31 | 2022-06-21 | 中国工商银行股份有限公司 | 生成区块链中区块的方法、装置及电子设备 |
CN114650145B (zh) * | 2022-03-31 | 2023-12-05 | 中国工商银行股份有限公司 | 生成区块链中区块的方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930845A (zh) | 一种区块链的共识方法、系统、终端、及存储介质 | |
CN111416808B (zh) | 跨区块链的数据互存方法、装置、设备及存储介质 | |
CN100583792C (zh) | 带连接管理的预配置拓扑结构的系统和方法 | |
CN109598504A (zh) | 基于区块链的交易处理方法及装置、电子设备 | |
CN108509615B (zh) | 基于抽签机制的共识建立方法、装置及可读存储介质 | |
CN110570196A (zh) | 交易数据处理方法、装置、终端设备以及存储介质 | |
US11115804B2 (en) | Subscription to dependencies in smart contracts | |
CN110928951A (zh) | 一种基于区块链的数据共享及仲裁方法 | |
CN109117608A (zh) | 一种数据处理方法、装置及相关设备 | |
CN112560114B (zh) | 调用智能合约的方法及装置 | |
CN113489671A (zh) | 一种跨联盟链通讯方法、装置、计算机设备及存储介质 | |
CN110084604A (zh) | 基于区块链的交易处理方法及装置、电子设备 | |
CN111679893A (zh) | 运行系统构建方法、装置、电子设备及存储介质 | |
CN112468596A (zh) | 一种集群仲裁方法、装置、电子设备及可读存储介质 | |
CN111767144A (zh) | 交易数据的交易路由确定方法、装置、设备及系统 | |
CN111556115A (zh) | 一种基于区块链的数据处理方法、装置、设备及存储介质 | |
WO2020256831A1 (en) | Smart contract information redirect to updated version of smart contract | |
CN113542405A (zh) | 基于区块链的网络通信系统、方法、设备及存储介质 | |
US11120513B2 (en) | Capital chain information traceability method, system, server and readable storage medium | |
CN113569278A (zh) | 基于区块链的多招投标平台的数据共享方法及相关设备 | |
CN111310945B (zh) | 运维管理方法、装置和电子设备 | |
EP3980955A1 (en) | Subscription to edits of blockchain transaction | |
CN108256311A (zh) | 一种授权认证方法及装置 | |
CN110209347B (zh) | 一种可追溯的数据存储方法 | |
CN115037472B (zh) | 基于双层dag共识机制的交易处理方法及系统、服务设备 |
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 |