CN111382456A - 提案消息处理方法、装置、设备以及存储介质 - Google Patents
提案消息处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN111382456A CN111382456A CN202010482134.7A CN202010482134A CN111382456A CN 111382456 A CN111382456 A CN 111382456A CN 202010482134 A CN202010482134 A CN 202010482134A CN 111382456 A CN111382456 A CN 111382456A
- Authority
- CN
- China
- Prior art keywords
- block
- consensus
- voting information
- node
- information
- 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.)
- Granted
Links
Images
Classifications
-
- 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/602—Providing cryptographic facilities or services
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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
-
- 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)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种提案消息处理方法、装置、设备以及存储介质,该方法包括:获取区块提案消息,从区块提案消息中获取第一区块;若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息;锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态;根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。采用本申请,可以降低区块链分叉的风险。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及提案消息处理方法、装置、设备以及存储介质。
背景技术
区块链是一种去中心化的分布式账本系统,具有数据不可篡改、去中心化、开放性的特点。共识机制作为区块链技术的核心,可以保证最新区块被准确添加至区块链,以及节点存储的区块链信息一致不分叉,共识节点在共识机制中具有重要作用。
现有技术中,共识节点可以对区块链网络中生成的新区块进行验证,根据验证结果生成新区块对应的投票信息,并在区块链网络中对投票信息进行广播;区块链网络中的每个共识节点均可以获取各共识节点分别针对新区块的投票信息,当统计得到新区块的赞成投票数达到数量阈值时,共识节点可以将新区块进行落盘。然而,区块链网络中的部分共识节点可能会由于断网或时延等原因,使得这部分共识节点获取到的投票信息不完整,造成所统计的新区块的赞成投票数小于数量阈值,认为该新区块未通过共识,因此,区块链网络中的有些共识节点对该新区块进行了落盘,有些共识节点未对新区块进行落盘,容易造成区块链的分叉。
发明内容
本申请实施例提供一种提案消息处理方法、装置、设备以及存储介质,可以降低区块链分叉的风险。
本申请实施例一方面提供了一种提案消息处理方法,包括:
获取区块提案消息,从区块提案消息中获取第一区块;
若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息;锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态;
根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。
本申请实施例一方面提供了一种提案消息处理装置,其特征在于,包括:
区块获取模块,用于获取区块提案消息,从区块提案消息中获取第一区块;
投票信息获取模块,用于若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息;锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态;
第一共识结果确定模块,用于根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。
其中,投票信息模块包括:
列表获取单元,用于获取第二区块对应的区块生成节点,获取区块链网络中的节点委员会列表;节点委员会列表包括区块链网络中处于有效工作状态的共识节点;
交易执行单元,用于执行第二区块中所包含的交易数据,得到交易数据对应的交易结果;
第一信息获取单元,用于根据区块生成节点、节点委员会列表以及交易结果,确定当前共识节点在第一共识阶段中,对第二区块的第一投票信息;
第一信息广播单元,用于将第一投票信息在区块链网络中进行广播,以使区块链网络中除当前共识节点之外的剩余共识节点获取第一投票信息;
第二信息获取单元,用于剩余共识节点在第一共识阶段中,对第二区块的第二投票信息,将第一投票信息和第二投票信息确定为第二区块在第一共识阶段中的区块投票信息。
其中,第一信息获取单元包括:
验证通过子单元,用于当区块生成节点属于节点委员会列表,且交易结果为有效结果时,获取第二区块在第一共识阶段中的验证通过结果,根据验证通过结果生成当前共识节点对应的第一投票信息;
验证未通过子单元,用于当区块生成节点不属于节点委员会列表,或者交易结果为无效结果时,获取第二区块在第一共识阶段中的验证未通过结果,根据验证未通过结果生成当前共识节点对应的第一投票信息。
其中,该装置还包括:
提案验证模块,用于若当前共识节点中不具有锁定状态的第二区块,则对区块提案消息进行验证,得到区块提案消息在第一共识阶段中的提案投票信息;
第二共识结果确定模块,用于根据提案投票信息获取区块提案消息在第二共识阶段中的提案提交投票信息,根据提案提交投票信息确定区块提案消息对应的共识结果;
区块记账模块,用于当共识结果为共识通过结果时,将区块提案消息中所包含的第一区块进行记账处理。
其中,该装置还包括:
释放模块,用于若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度大于第二区块的区块高度,则将第二区块对应的锁定状态切换为释放状态,将具有释放状态的第二区块确定为合法区块;
信息同步模块,用于从区块链网络中获取与第二区块相关联的同步信息,将同步信息与合法区块进行记账处理。
其中,第一共识结果确定模块包括:
投票数确定单元,用于根据区块投票信息获取第二区块在第一共识阶段中的赞成投票数;赞成投票数是指区块链网络中每个共识节点的区块投票信息中,属于赞成投票信息的总数量;
第三信息获取单元,用于根据赞成投票数确定当前共识节点在第二共识阶段中,对第二区块的第三投票信息;
第三信息广播单元,用于将第三投票信息在区块链网络中进行广播,以使区块链网络中除当前共识节点之外的剩余共识节点获取第三投票信息;
第四信息获取单元,用于获取剩余共识节点在第二共识阶段中,对第二区块的第四投票信息,将第三投票信息和第四投票信息确定为第二区块在第二共识阶段中的区块提交投票信息。
其中,第三信息获取单元包括:
赞成投票获取子单元,用于当赞成投票数大于或等于数量阈值时,根据赞成投票数确定当前共识节点在第二共识阶段中,对第二区块的第三投票信息为提交成功投票信息;
反对投票获取子单元,用于当赞成投票数小于数量阈值时,根据赞成投票数确定当前共识节点在第二共识阶段中,对第二区块的第三投票信息为提交失败投票信息。
其中,第一共识结果确定模块具体用于:
统计区块提交投票信息中,属于提交成功投票信息的信息总数量,根据信息总数量确定第二区块对应的共识结果。
其中,第一共识结果确定模块包括:
共识通过单元,用于当信息总数量大于或等于数量阈值时,确定第二区块对应的共识结果为共识通过,对共识通过的第二区块进行记账处理;
共识未通过单元,用于当信息总数量小于数量阈值时,确定第二区块对应的共识结果为共识未通过。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中一方面中方法的步骤。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行如本申请实施例中一方面中方法的步骤。
本申请实施例可以通过获取区块提案消息中的第一区块,若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息,其中,锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态,根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。可见,区块链网络中区块的共识过程可以包括第一共识阶段和第二共识阶段,在当前共识节点接收到区块提案消息时,可以检测当前共识节点的本地中是否具有锁定状态的区块,若当前共识节点的本地中具有锁定状态的区块,则可以优先对具有锁定状态的区块重新进行共识,重新得到具有锁定状态的区块的共识结果,基于共识结果对锁定状态的区块进行上链处理,可以确保区块链中区块的上链质量,进而可以降低区块链分叉的风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种提案消息处理场景示意图;
图3是本申请实施例提供的一种提案消息处理方法的流程示意图;
图4是本申请实施例提供的一种同步共识节点本地数据的示意图;
图5是本申请实施例提供的一种区块提案消息的处理示意图;
图6是本申请实施例提供的一种提案消息处理流程图;
图7是本申请实施例提供的一种提案消息处理装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
区块链(Blockchain)是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
请参见图1,是本申请实施例提供的一种网络架构图。如图1所示,该网络架构可以包括多个节点设备,如图1所示,具体可以包括区块链网络中的节点设备10a、节点设备10b、节点设备10c、节点设备10d、节点设备10e以及节点设备10f。其中,节点设备10a、节点设备10b、节点设备10c、节点设备10d以及节点设备10e均可以表示为区块链网络中的区块链节点,区块链节点可以包括共识节点和同步节点,共识节点可以共享区块链网络中的区块链数据,并可以参与区块链网络中的区块共识过程,同步节点可以共享区块链网络中的区块链数据,不具备参与区块链网络共识过程的权限。节点设备10f是指区块链网络之外的节点设备,节点设备10f可以将交易数据以网络消息数据的形式上传至区块链网络。
节点设备10f在区块链网络中完成身份注册后,可以向区块链网络上传交易数据,区块链网络中的区块链节点在接收到节点设备10f上传的交易数据后,可以将交易数据打包成新区块,并将新区块以区块提案消息的形式广播至区块链网络中的共识节点,以使共识节点对新区块进行共识验证,在区块链网络中达成共识的新区块可以进行上链。当然,区块链网络中的共识节点在接收到区块提案后,可以检测当前共识节点的本地中是否存在锁定区块,若当前共识节点的本地中存在锁定区块,则可以在当前共识周期内对锁定区块进行共识处理;若当前共识节点的本地中不存在锁定区块,则在当前共识周期内对新区块进行共识处理。其中,区块链网络中的共识周期可以包括第一共识阶段和第二共识阶段,共识周期可以理解为单个区块的整个共识过程,如区块1在区块链网络中的共识过程可以称为一个共识周期,区块1的共识过程完成后可以进入下一个共识周期,如下一个区块2的共识过程;锁定区块可以是指通过第一共识阶段且未通过第二共识阶段的区块,即锁定区块为区块链网络中执行过共识过程的区块。换言之,在检测到当前共识节点的本地中存在锁定区块,可以在当前共识周期中重新对锁定区块进行共识处理,进而可以降低区块链分叉的风险。
其中,节点设备10a、节点设备10b、节点设备10c、节点设备10d、节点设备10e以及节点设备10f均可以是终端设备,或者是服务器,其中,终端设备可以包括智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
其中,云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing )、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
请参见图2,是本申请实施例提供的一种提案消息处理场景示意图。区块链网络中的区块链节点可以收集区块链网络中的交易数据,并将收集到的交易数据打包成新区块,生成该新区块的区块链节点也可以称为区块生成节点,区块生成节点可以将新区块以提案消息的形式在区块链网络中进行广播,区块链网络中的共识节点均可以获取该区块生成节点所广播的提案消息,并对提案消息进行处理。上述图1所对应实施例中的节点设备10a为共识节点时,以节点设备10a为例,对本申请提出的提案消息处理方案进行说明。如图2所示,区块链网络中的区块链节点可以将交易数据打包成新区块20b,并将新区块20b以提案消息20a的形式在区块链网络中进行广播,该提案消息20a可以包括但不限于:区块链节点所生成的新区块20b(此时的区块链节点为区块生成节点),区块生成节点的签名信息,区块生成节点的工作状态,新区块20b的区块高度a;新区块20b中可以包括客户端上传至区块链网络的多笔交易数据,每笔交易数据均可以是指客户端根据用户的交易操作所生成的数据,每笔交易数据均可以包括交易发起方、交易接收方以及交易内容;新区块20b中所包含的多笔交易数据可以由同一客户端在一段时间内上传至区块链网络的,或者是由不同客户端在一段时间内上传至区块链网络的。
节点设备10a(为区块链网络中的共识节点)在接收到提案消息20a后,可以对节点设备10a的本地数据库进行检测,若本地数据库中存在锁定区块20c,可以进一步获取锁定区块20c对应的区块高度b以及新区块20b对应的区块高度a。其中,锁定区块20c可以理解为具有锁住状态的区块,锁住状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态,通过第一共识阶段表明锁定区块20c在前一共识周期的第一共识阶段中获得的赞成投票数大于或等于数量阈值(如区块链网络中所有共识节点数量的2/3),未通过第二共识阶段表明锁定区块20c在前一共识周期的第二共识阶段中获得的提交成功投票数小于数量阈值;赞成投票数可以是指第一共识阶段中每个共识节点分别针对锁定区块20c的投票信息中,赞成投票信息的总数量;提交成功投票数可以是指第二共识阶段中每个共识节点分别针对锁定区块20c的提交投票信息中,提交成功投票信息的总数量。
节点设备10a在获取到新区块20b对应的区块高度a,以及锁定区块20c对应的区块高度b后,可以对区块高度a和区块高度b进行比较,当新区块20b对应的区块高度a与锁定区块20c对应的区块高度b相同时,可以表明区块链网络中的共识节点在前一共识周期均确定锁定区块20c未达成共识,均未将锁定区块20c写入区块链中,节点设备10a可以删除上述提案消息20b,在当前共识周期内对锁定区块20c重新进行共识验证,得到节点设备10a在第一共识阶段中针对锁定区块20c的区块投票信息;节点设备10a可以将自身针对锁定区块20c的区块投票信息进行广播,以使区块链网络中的其余共识节点获取节点设备10a针对锁定区块20c的区块投票信息;当然,区块链网络中的每个共识节点均可以将针对锁定区块20c的区块投票信息进行广播,因此,节点设备10a可以获取区块链网络中每个共识节点在第一共识阶段针对锁定区块20c的区块投票信息,如区块链网络中包括n个共识节点,分别表示为节点设备10a,共识节点1,共识节点2,……,共识节点n-1,节点设备10a在第一共识阶段中的区块投票信息为:区块投票信息1,共识节点1在第一共识阶段中的区块投票信息为:区块投票信息2,共识节点2在第一共识阶段中的区块投票信息为:区块投票信息3,……,共识节点n-1在第一共识阶段中的区块投票信息为:区块投票信息n。
节点设备10a可以对获取到的所有区块投票信息进行统计,得到在第一共识阶段中锁定区块20c对应的赞成投票数为m。节点设备10a可以根据赞成投票数m生成第二共识阶段中的区块提交投票信息1,赞成投票数m大于或等于所有共识节点数量的2/3时,节点设备10a生成的区块提交投票信息1为提交成功投票信息;赞成投票数m小于所有共识节点数量的2/3时,节点设备10a生成的区块提交投票信息1为提交失败投票信息。同样地,节点设备10a可以对区块提交投票信息1进行广播,也可以获取其余共识节点分别对应的区块提交投票信息。节点设备10a可以对所获取到的所有共识节点分别对应的区块提交投票信息进行统计,得到在第二共识阶段中锁定区块20c对应的提交成功投票数s,根据提交成功投票数s确定锁定区块20c在当前共识周期中的共识结果,在共识结果为共识通过结果时,节点设备10a可以将锁定区块20c正式写入区块链中,在锁定区块20c正式写入区块链中后,此时节点设备10a的本地数据库中不存在锁定状态的区块。
其中,当新区块20b对应的区块高度a与锁定区块20c对应的区块高度b不相同(如区块高度a大于区块高度b)时,可以表明区块链网络中除节点设备10a之外的其余共识节点已经在前一共识周期确定锁定区块20c达成共识,已将锁定区块20c写入区块链中,节点设备10a可能由于时延或断网的原因未接收到所有共识节点对应的投票信息,将锁定区块20c确定为未达成共识,未将锁定区块20c正式写入区块链中。因此,节点设备10a可以将本地数据库中锁定区块20c确定为合法区块,并从区块链网络的其余共识节点处获取同步信息,对合法区块和同步信息进行正式上链处理,进而实现节点设备10a和其余共识节点之间数据同步过程。
请参见图3,是本申请实施例提供的一种提案消息处理方法的流程示意图,可以理解的是,该方法可以由区块链网络中的共识节点执行,共识节点可以是区块链网络中的节点服务器,或者是共识网络中的其他节点设备。如图3所示,该提案消息处理方法可以包括以下步骤:
步骤S101,获取区块提案消息,从区块提案消息中获取第一区块。
具体的,区块链网络中的共识节点均可以用于执行区块链网络中的共识过程,当区块链网络接收到客户端上传的交易数据时,区块链节点可以将客户端上传至区块链网络的交易数据打包成新区块(如上述图2所对应实施例中的新区块20b),并将包含新区块的区块提案消息(如上述图2所对应实施例中的提案消息20a)进行广播。区块链网络中的共识节点(此时的共识节点可以称为当前共识节点,如上述图2所对应实施例中的节点设备10a)可以获取上述区块链节点所广播的区块提案消息,并将区块提案消息中所包含的新区块确定为第一区块。其中,区块提案消息中可以包括但不限于:第一区块对应的区块生成节点(即生成第一区块的区块链节点),第一区块,区块生成节点的签名信息,区块生成节点的工作状态,第一区块对应的区块高度;第一区块可以包括区块头和区块体,区块头中存储有第一区块的输入信息特征值(也可以称为当前区块哈希值)、前一区块的区块头特征值(也可以称为前一区块哈希值)、版本号、时间戳和难度值,区块体中存储有多笔交易数据,每笔交易数据均可以是指客户端根据用户的交易操作所生成的数据。
可以理解的是,客户端在向区块链网络上传交易数据之前,可以本地生成密钥对(该密钥对可以包括公钥和私钥),该密钥对中的私钥可以由客户端自己管理,该私钥可以用于生成客户端的数字签名;该密钥对中的公钥可以上传至区块链网络,该公钥可以用于区块链网络中的区块链节点对该客户端所上传的交易数据进行验签。在客户端将公钥上传至区块链网络之后,客户端可以得到一个区块链账户地址,表明该客户端在区块链网络中完成了身份注册,完成身份注册后的客户端可以向区块链网络发送交易数据。需要说明的是,区块链网络中的公钥是唯一的,一个公钥对应一个客户端。
步骤S102,若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息;锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态。
具体的,当前共识节点在获取到第一区块后,可以优先检测当前共识节点的本地数据库中是否具有锁定状态的区块,若当前共识节点的本地数据库中具有锁定状态的第二区块,可以进一步获取第一区块和第二区块分别对应的区块高度,若第一区块对应的区块高度和第二区块对应的区块高度相同,则当前共识节点可以删除区块提案消息,确定当前共识周期中需要进行共识验证的区块为第二区块,当前共识节点可以获取区块链网络中各共识节点在第一共识阶段中对第二区块的区块投票信息。其中,区块链网络中所包含的所有共识节点对某区块的共识过程可以称为一个共识周期,每个共识周期均可以包括多个共识阶段,如第一共识阶段和第二共识阶段,在共识周期内达成共识的区块可以进行正式上链;锁定状态是指在前一共识周期的第一共识阶段中达成共识,但在第二共识阶段中未达成共识的区块所处的状态,因此,第二区块是指当前共识节点所确定的在前一共识周期的第一共识阶段中达成共识且在第二共识阶段中未达成共识的区块。在前一共识周期完成后,当前共识节点可以在接收到区块提案消息之后进入下一个共识周期(即当前共识周期),当前共识节点可以根据第一区块和第二区块分别对应的区块高度,确定当前共识周期内进行共识验证的区块。例如,第一区块对应的区块高度与第二区块对应的区块高度相同时,表明第二区块在前一共识周期中未达成区块链网络中的共识过程,可以切换区块链节点生成与该第二区块具有相同区块高度的第一区块,即第一区块和第二区块可以由不同的区块链节点所生成,当前共识节点可以删除新接收到的第一区块,在当前共识周期中重新对具有锁定状态的第二区块进行共识验证处理,得到当前共识周期的第一共识阶段中针对第二区块的区块投票信息。区块链网络中的每个共识节点均可以在当前共识周期内对第二区块进行共识验证,得到针对第二区块在第一共识阶段内的验证结果,并基于验证结果生成每个共识节点分别对应的区块投票信息,区块投票信息可以包括第一共识阶段内当前共识节点针对第二区块的投票信息和其余共识节点针对第二区块的投票信息。
其中,区块投票信息的获取过程可以包括:当前共识节点可以获取第二区块对应的区块生成节点,并获取区块链网络中的节点委员会列表,其中,该节点委员会列表可以包括区块链网络中处于有效工作状态的共识节点,该节点委员会列表中所包含的每个共识节点均可以用于收集区块链网络中的交易数据并打包成区块,随后对区块进行广播,共识节点在节点委员会列表中的排列顺序可以用于表示该共识节点在区块链网络中生成区块的顺序,区块链网络中的区块均可以由节点委员会列表中的共识节点来打包生成。例如,节点委员会列表中所包含的共识节点的排列顺序为:共识节点1-共识节点2-共识节点3-共识节点4,区块链网络中共识节点1将交易数据打包成区块1,在区块1进行共识过程后,可以根据节点委员会列表中共识节点的排列顺序确定生成下一个区块(如区块2)的共识节点为共识节点2。
当前共识节点可以执行第二区块中所包含的交易数据,得到交易数据对应的交易结果,根据第二区块对应的区块生成节点、节点委员会列表以及交易结果,确定当前共识节点在第一共识阶段中对第二区块的第一投票信息;其中,该交易结果是指当前共识节点根据每笔交易数据所包含的交易发起方、交易接收方以及交易内容执行之后所得到的结果,如交易数据中的交易发起方为账户a,交易接收方为账户b,交易内容为:从账户a中转移10个游戏币至账户b,当前共识节点可以根据交易内容执行该交易数据,得到该交易数据执行之后的交易结果;若交易结果为:账户a减少10个游戏币,账户b增加10个游戏币,则可以确定该交易结果为有效结果;若该交易结果为账户a余额不足,账户a和账户b中的游戏币未发生变化,则可以确定该交易结果为无效结果。
进一步地,当前共识节点在获取到第二区块的区块生成节点、节点委员会节点以及每笔交易数据分别对应的交易结果后,在当前共识节点检测到区块生成节点属于节点委员会列表,且交易结果为有效结果时,获取第二区块在第一共识阶段中的验证通过结果,根据验证通过结果生成当前共识节点对应的第一投票信息;在当前共识节点检测到区块生成节点不属于节点委员会列表,或者交易结果为无效结果时,获取第二区块在第一共识阶段中的验证未通过结果,根据验证未通过结果生成当前共识节点对应的第一投票信息。其中,第一投票信息可以是为赞成投票信息,也可以为反对投票信息,赞成投票信息可以表示当前共识节点对第二区块的验证结果为验证通过结果,反对投票信息可以表示当前共识节点对第二区块的验证结果为验证未通过结果。可选的,当前共识节点对第二区块的验证过程除了检测区块生成节点和交易数据执行后的交易结果之外,还可以检测第二区块的区块头中所包含的前继哈希值是否为第二区块的前一区块(该前一区块的区块高度比第二区块的区块高度低于1)所对应的哈希值,区块头中的难度值是否正确等,当区块头中所包含的前继哈希值与前一区块所对应的哈希值不相同,或者区块头中的难度值错误时,当前共识节点可以确定第二区块在第一共识阶段中的验证结果为验证未通过结果;当区块生成节点属于节点委员会列表,且交易结果为有效结果,且区块头中所包含的前继哈希值与前一区块所对应的哈希值相同,且区块头中的难度值正确时,当前共识节点可以确定第二区块在第一共识阶段中的验证结果为验证通过结果。
当前共识节点可以将第一投票信息在区块链网络中进行广播,以使区块链网络中除当前共识节点之外的剩余共识节点获取第一投票信息,当然,区块链网络中的剩余共识节点同样可以对第二区块进行共识验证,得到剩余共识节点针对第二区块的第二投票信息,并将第二投票信息在区块链网络中进行广播;因此,当前共识节点可以获取剩余共识节点在第一共识阶段中对第二区块的第二投票信息,当前共识节点可以将第一投票信息和第二投票信息均确定为第二区块在第一共识阶段中的区块投票信息。可选的,当前共识节点在接收剩余共识节点所广播的第二投票信息的过程中,区块链网络中可以预先设置信息接收时间范围,当前共识节点在信息接收时间范围内所接收的第二投票信息可以确定为区块投票信息,在信息接收时间范围之外所接收到的第二投票信息不能作为第二区块的区块投票信息。例如,信息接收时间范围为1个小时,当前共识节点在获取到区块提案消息之后的一个小时内所接收到的第二投票信息可以确定为区块投票信息,超过一个小时后所接收到的第二投票信息未能确定为区块投票信息。
可选的,若当前共识节点的本地数据库中具有锁定状态的第二区块,且第一区块的区块高度大于第二区块的区块高度,则将第二区块对应的锁定状态切换为释放状态,将具有释放状态的第二区块确定为合法区块,当前共识节点可以从区块链网络中获取与第二区块相关联的同步信息,将同步信息与合法区块进行记账处理。换言之,当第一区块的区块高度大于第二区块的区块高度时,表明区块链网络中的剩余共识节点已将第二区块记录在账本中,即剩余共识节点已将第二区块进行了正式上链,可以确定当前共识节点的本地账本(即本地区块链)比剩余共识节点的账本少记录了第二区块,因此,当前共识节点可以将第二区块对应的锁定状态切换为释放状态,将具有释放状态的第二区块确定为合法区块,并向剩余共识节点发送消息以请求与第二区块相关联的同步信息,将合法区块和同步信息进行记账,即从剩余共识节点处获取同步信息实现当前共识节点与剩余共识节点之间的数据同步。
请一并参见图4,是本申请实施例提供的一种同步共识节点本地数据的示意图。如图4所示,区块链网络中的共识节点30a(此时的共识节点30a可以理解为当前共识节点)在接收到区块提案消息30b后,可以从该区块提案消息30b中获取新区块30c(即上述第一区块),其中,该区块提案消息30b可以是区块链网络中的其余共识节点(除共识节点30a之外的剩余共识节点)所生成的,该区块提案消息30b中可以包括新区块30c,生成该新区块30c的区块生成节点的签名,该新区块30c对应的区块高度a等,新区块30c可以包括区块头和区块体,区块头中存储有该新区块30b对应的哈希值、前一区块的哈希值、难度值、时间戳、版本号等信息,区块体中存储有客户端上传至区块链网络的多笔交易数据。共识节点30a可以对本地数据库30i中所存储的数据进行检测,当本地数据库30i中存储有具有锁定状态的锁定区块30d(即上述第二区块)时,可以获取该锁定区块30d对应的区块高度,如该锁定区块的30d区块高度为a-1,可以确定新区块30c的区块高度a比锁定区块30d的区块高度a-1要大1,可以确定生成新区块30c的区块生成节点已经将区块高度为a-1的锁定区块30i进行了正式上链,可以表明共识节点30a可能因为网络故障(如时延、断网等)导致前一共识周期内对锁定区块30d投票信息的统计出现错误,将锁定区块30d确定为共识未通过,未将锁定区块30d进行正式上链。因此,区块链网络无需对锁定区块30d重新执行共识过程,可以将锁定区块30d确定为合法区块,即锁定区块30d中所包含的数据均为有效数据且锁定区块30d在区块链网络中已经达成共识,共识节点30d可以向区块链网络中的其余共识节点发送数据同步请求,该数据同步请求可以在共识节点30a所包含的区块链数据与其余共识节点所包含的区块链数据不相同的情形下,向其余共识节点请求同步信息,以实现共识节点30a与其余共识节点之间的区块链数据保持同步。
区块链网络中的其余共识节点在接收到该共识节点30a发送的数据同步请求后,可以将与锁定区块30d相关联的同步信息30h返回至共识节点30a,该同步信息30h可以是指锁定区块30d的消息事件,如锁定区块30d的投票信息、交易执行结果等信息。共识节点30a接收其余共识节点返回的同步信息30h之后,可以将同步信息30h存储在本地数据库30i中,并将锁定区块30d进行正式上链,即将锁定区块30d写入共识节点30a本地数据库30i所存储的区块链30g中,该区块链30g为共识节点30a在本地存储的与其余共识节点进行共享的区块链,在共识节点30a获取到同步信息并将锁定区块30d进行正式上链后,可以实现共识节点30a与其余共识节点之间保持数据同步。
步骤S103,根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。
具体的,当前共识节点在获取到第二区块在第一共识阶段中的区块投票信息后,可以统计第二区块在第一共识阶段中的区块投票信息为赞成投票信息的数量,根据赞成投票信息的数量来确定第二区块在第二共识阶段中的区块提交投票信息;当然,区块链网络中除当前共识节点之外的其余共识节点同样可以根据自身所收到的区块投票信息生成区块提交投票信息,每个共识节点均可以对自身所生成的区块提交投票信息进行广播;因此,当前共识节点可以获取区块链网络中的共识节点分别针对第二区块的区块提交投票信息。需要说明的是,区块投票信息是指区块链网络中的共识节点对第二区块进行验证之后所生成的投票信息,区块提交投票信息是指区块链网络中的共识节点对区块投票信息进行验证并统计后,所生成的针对第二区块能否正式写入区块链中的投票情况。
举例来说,某企业有员工提出了一份项目计划书,在该企业的股东会议上,各股东可以对该项目计划书中的具体内容进行阅读查看,检测该项目计划书中的内容是否符合行业规范、计划书内容中是否存在逻辑错误、计划书内容是否存在抄袭以及计划书内容是否满足企业需求等信息,进而根据对项目计划书本身内容的检测结果进行第一次投票,企业的每个股东均可以对该向目标计划书进行投票,该投票可以是赞成票也可以是反对票,如股东在检测到计划书内容符合行业规范,且不存在逻辑错误,且不存在抄袭,且满足企业需求时,可以对该项目计划书投赞成票;在检测到计划书内容不符合行业规范,或者存在逻辑错误,或者存在抄袭,或者不满足企业需求时,可以对该项目计划书投反对票。随后,每个股东可以根据自己所得知的第一次投票结果进行第二次投票,如某股东所得知的第一投票中超过一半的股东投了赞成票,则该股东可以在第二次投票投赞成票,即同意实施该项目计划书;某股东所得知的第一投票中未超过一半的股东投赞成票,则该股东可以在第二次投票投反对票,即不同意实施该项目计划书,可以得知,第一次投票是各股东针对项目表计划书本身内容的投票,第二投票是针对各股东第一次投票中的赞成票数量所投的票,此处举例中的项目计划书可以看成是第二区块,各股东可以看成是区块链网络中的共识节点,第一次投票可以看成是区块投票信息,第二次投票可以看成是区块提交投票信息。
可选的,获取区块提交投票信息的具体过程可以包括:当前共识节点可以根据区块投票信息获取第二区块在第一共识阶段中的赞成投票数,其中,区块投票信息可以为赞成投票信息,或者为反对投票信息,当前共识节点可以对区块链网络中每个共识节点分别对应的区块投票信息进行统计,得到赞成投票信息的总数量,赞成投票信息的总数量即为第二区块在第一共识阶段中的赞成投票数。当前共识节点可以根据赞成投票数确定当前共识节点在第二共识阶段中对第二区块的第三投票信息;进一步地,当赞成投票数大于或等于数量阈值(该数量阈值与区块链网络中所采用的共识算法相关联,如有些共识算法中该数量阈值可以是指区块链网络中共识节点数量的2/3,有些共识算法中该数量阈值可以是指区块链网络中共识节点数量的51%)时,根据赞成投票数确定当前共识节点在第二共识阶段中,对第二区块的第三投票信息为提交成功投票信息,表明该第二区块对应的赞成投票数已经达到将第二区块进行正式上链的条件;当赞成投票数小于数量阈值时,根据赞成投票数确定当前共识节点在第二共识阶段中,对第二区块的第三投票信息为提交失败投票信息,表明该第二区块对应的赞成投票数未达到将第二区块进行正式上链的条件。
当前共识节点在得到第三投票信息后,可以将第三投票信息在区块链网络中进行广播,以使区块链网络中除当前共识节点之外的剩余共识节点获取第三投票信息,当然,区块链网络中除当前节点之外的剩余共识节点同样可以根据自身所获取到的区块投票信息,得到第二共识阶段中针对第二区块的第四投票信息,每个剩余共识节点均可以将自身得到的第四投票信息在区块链网络中进行广播,因此,当前共识节点可以获取剩余共识节点在第二共识阶段中对第二区块的第四投票信息,当前共识节点可以将第三投票信息和第四投票信息确定为第二区块在第二共识阶段中的区块提交投票信息。
当前共识节点在获取到每个共识节点分别对应的区块提交投票信息后,可以统计所获取到的区块提交投票信息中,属于提交成功投票信息的信息总数量,根据信息总数量确定第二区块对应的共识结果;当信息总数量大于或等于数量阈值时,当前共识节点可以确定第二区块对应的共识结果为共识通过,对共识通过的第二区块进行记账处理,即将第二区块进行正式上链;当信息总数量小于数量阈值时,当前共识节点可以确定第二区块对应的共识结果为共识未通过,即第二区块无法写入区块链中。可选的,若第二共识区块在当前共识周期的第一共识阶段中的赞成投票数大于或等于数量阈值,在第二共识阶段中提交成功投票信息的信息总数量小于数量阈值,则仍然可以将第二区块设置为锁定状态存储在本地数据库中;若第二共识区块在当前共识周期的第一共识阶段中的赞成投票数小于数量阈值,且在第二共识阶段中提交成功投票信息的信息总数量小于数量阈值,则可以确定该第二区块未能达成共识,可以删除该第二区块。可选的,区块链网络中可以预先设置同一个区块可以进行共识过程的次数,如次数为2次时,若第二区块在第3次共识周期中的共识结果仍然是:第一共识阶段中的赞成投票数大于或等于数量阈值,在第二共识阶段中提交成功投票信息的信息总数量小于数量阈值,则可以删除第二区块。
可选的,若当前共识节点中不具有锁定状态的第二区块,则对区块提案消息进行验证,得到区块提案消息在第一共识阶段中的提案投票信息;根据提案投票信息获取区块提案消息在第二共识阶段中的提案提交投票信息,根据提案提交投票信息确定区块提案消息对应的共识结果;当共识结果为共识通过结果时,将区块提案消息中所包含的第一区块进行记账处理。换言之,当前共识节点的本地数据库中不存在具有锁定状态的第二区块时,可以在当前共识周期内对区块提案消息进行共识处理,对区块提案消息的共识处理过程包括第一区块的共识处理,区块提案消息的共识处理过程与上述第二区块的共识处理过程相似,当前共识节点通过对区块提案消息进行共识验证,得到该区块提案消息的验证结果,根据验证结果生成第一共识阶段中当前共识节点针对区块提案消息的提案投票信息,当然,当前共识节点还可以接收剩余共识节点所广播的提案投票信息,即当前共识节点可以获取区块链网络中每个共识节点分别对应的提案投票信息;进而当前共识节点可以根据所接收到的提案投票信息生成第二区块在第二共识阶段中的提案提交投票信息,当前共识节点可以将自身所生成的提案提交投票信息进行广播,并接收剩余共识节点所广播的提案提交投票信息,即当前共识节点可以获取每个共识节点分别对应的提案提交投票信息,通过对所获取到的提案提交投票信息进行统计,得到提交成功投票信息的总数量,当成功投票信息的总数量大于或等于数量阈值时,可以确定区块提案消息通过共识,将通过共识的区块提案消息中的第一区块进行正式上链;当第一共识阶段的提案投票信息中赞成投票信息的总数量大于或等于数量阈值,第二共识阶段的提案提交投票信息中成功投票信息的总数量小于数量阈值,可以将区块提案消息中的第一区块设置为锁定状态;当第一共识阶段的提案投票信息中赞成投票信息的总数量小于数量阈值,且第二共识阶段的提案提交投票信息中成功投票信息的总数量小于数量阈值,可以删除区块提案消息。需要说明的是,当前共识节点的本地数据库中可以存储一个具有锁定状态的区块,因此在将某区块设置为锁定状态之前,需要将本地数据库中具有锁定状态的区块进行释放,即优先处理本地数据库中具有锁定状态的区块。
请一并参见图5,是本申请实施例提供的一种区块提案消息的处理示意图。如图5所示,区块链网络中的共识节点40a(此时的共识节点40a可以理解为当前共识节点)可以接收到区块提案40b,该区块提案40b可以是区块链网络中的其余共识节点(除共识节点40a之外的剩余共识节点)所生成的,该区块提案40b中可以包括新区块40c,生成该新区块40c的区块生成节点的签名,该新区块40c对应的区块高度a等,新区块40c可以包括区块头和区块体,区块头中存储有该新区块40b对应的哈希值、前一区块的哈希值、难度值、时间戳、版本号等信息,区块体中存储有客户端上传至区块链网络的多笔交易数据。共识节点40a可以对本地数据库40d中所存储的数据进行检测,当本地数据库40d中不存在锁定区块(即具有锁定状态的区块)时,共识节点40a可以在当前共识周期内对区块提案40b进行共识处理。
共识节点40a可以对区块提案40b进行共识验证,如验证区块提案40b中所包含的新区块40c中的默克尔树根的正确性、验证新区块容量与区块链网络中区块容量上限之间的关系以及验证新区块40c中每笔交易数据的执行结果等,当新区块40c中的默克尔树根的正确,且新区块容量小于区块链网络中的区块容量上限,且每笔交易数据的执行结果均为有效结果时,可以确定该区块提案40b通过第一共识阶段的验证过程,可以根据验证结果生成第一共识阶段中共识节点40a针对区块提案40b的提案投票信息,如提案投票信息1;共识节点40a可以将提案投票信息1进行广播,当前共识节点也可以获取剩余共识节点所广播的针对区块提案40b的提案投票信息,如提案投票信息2,提案投票信息3,提案投票信息4等。
共识节点40a可以对获取到的所有提案投票信息进行统计,得到在第一共识阶段中区块提案40b对应的赞成投票数为x。共识节点40a可以根据赞成投票数x生成第二共识阶段中的提案提交投票信息,如提案提交投票信息1,赞成投票数x大于或等于所有共识节点数量的2/3时,共识节点40a生成的提案提交投票信息1为提交成功投票信息;赞成投票数x小于所有共识节点数量的2/3时,共识节点40a生成的提案提交投票信息1为提交失败投票信息。同样地,共识节点40a可以对提案提交投票信息1进行广播,也可以获取剩余共识节点所广播的针对区块提案40b的提案提交投票信息。共识节点40a可以对所获取到的所有共识节点分别对应的提案提交投票信息进行统计,得到在第二共识阶段中区块提案40b对应的提交成功投票数y,根据提交成功投票数y确定区块提案40b在当前共识周期中的共识结果,在共识结果为共识通过结果时,共识节点40a可以将区块提案40b正式写入区块链中,在区块提案40b正式写入区块链中后。
请参见图6,是本申请实施例提供的一种提案消息处理流程图。如图6所示,提案消息的处理过程可以参见下述步骤S1-步骤S5:
步骤S1,区块链网络中的当前共识节点可以获取新的区块提案,进入新一轮的共识过程,即进入新的共识周期(此时新的共识周期可以称为当前共识周期)。其中,新的区块提案中可以包括出块节点所生成的区块B2、出块节点的节点标识、出块节点的签名、出块节点的工作状态以及区块B2的区块高度等信息;新的区块提案可以是其余共识节点所广播的,即当前共识节点为参与该区块提案共识过程的节点,或者新的区块提案也可以是当前共识节点所生成的。
步骤S2,当前共识节点在获取到新的区块提案后,可以读取当前共识节点的本地数据库状态,主要是检测当前共识节点的本地数据库中是否具有锁定状态的区块,若当前共识节点不存在锁定状态的区块,则可以继续执行步骤S5;若当前共识节点存在锁定状态的区块B1,则需要进一步检测区块B1与区块B2的区块高度是否相同。若区块B1与区块B2的区块高度相同,则可以表明区块B1在上一轮共识过程(即前一共识周期)中未达成最终共识,当前共识节点可以对区块B1重新进行一次共识处理,即继续执行步骤S4;若区块B1与区块B2的区块高度不相同(由于区块B1为锁定状态,表示该区块B1在之前已经进行过共识处理过程,此处的区块高度不同可以特指区块B1的区块高度小于区块B2的区块高度),则表明区块B1在其余共识节点中已经完成了落盘操作,即完成了记账处理过程,因此当前共识节点可以继续执行步骤S3。
步骤S3,在区块B1的区块高度小于区块B2的区块高度时,当前共识节点可以将区块B2暂时缓存在本地数据库中,进而从剩余共识节点处获取与区块B1的相关数据进行数据同步,即保持当前共识节点的区块链数据与其余共识节点的区块链数据的一致性。
步骤S4,在区块B1的区块高度与区块B2的区块高度相同时,当前共识节点可以忽略区块B2,在当前共识周期中对区块B1进行验证,得到区块B1的第一投票信息,即当前共识节点在第一共识阶段中对区块B1的区块投票信息。当然,当前共识节点可以对第一投票信息进行广播,也就是通知区块链网络中的所有共识节点,当前共识节点是否认可了区块B1。当前共识节点可以获取到各共识节点在第一共识阶段中针对区块B1的区块投票信息,根据区块投票信息中赞成投票数生成区块B1在第二共识阶段中的第三投票信息,即当前共识节点在第二共识阶段中对区块B1的区块提交投票信息,在当前共识节点获取到各共识节点在第二共识阶段中针对区块B1的区块提交投票信息后,可以统计所获取到的区块提交投票信息中提交成功投票信息的数量,根据提交成功投票信息的数量来确定区块B1是否达成最终共识,如提交成功投票信息的数量达到区块链网络中共识节点数量的2/3,则区块B1达成最终共识;提交成功投票信息的数量未达到区块链网络中共识节点数量的2/3,则区块B1未达成共识。
步骤S5,若当前共识节点中不存在锁定状态的区块时,可以在当前共识周期中对区块提案进行验证,得到针对区块提案在第一共识阶段中的提案投票信息。此处区块提案的验证过程与上述区块B1的验证过程相同,这里不再赘述。同样地,当前共识节点可以根据区块提案在第二共识阶段中的提案提交投票信息,得到区块提案的最终共识结果。
本申请实施例可以通过获取区块提案消息中的第一区块,若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息,其中,锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态,根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。可见,区块链网络中区块的共识过程可以包括第一共识阶段和第二共识阶段,在当前共识节点接收到区块提案消息时,可以检测当前共识节点的本地中是否具有锁定状态的区块,若当前共识节点的本地中具有锁定状态的区块,则可以优先对具有锁定状态的区块重新进行共识,重新得到具有锁定状态的区块的共识结果,基于共识结果对锁定状态的区块进行上链处理,可以确保区块链中区块的上链质量,通过引入区块锁定状态,可以降低区块链分叉的风险。
请参见图7,是本申请实施例提供的一种提案消息处理装置的结构示意图。该提案消息处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该提案消息处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图7所示,该提案消息处理装置1可以包括:区块获取模块11,投票信息获取模块12,第一共识结果确定模块13;
区块获取模块11,用于获取区块提案消息,从区块提案消息中获取第一区块;
投票信息获取模块12,用于若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息;锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态;
第一共识结果确定模块13,用于根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。
其中,区块获取模块11,投票信息获取模块12,第一共识结果确定模块13的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101-步骤S103,这里不再进行赘述。
请一并参见图7,投票信息模块12可以包括:列表获取单元121,交易执行单元122,第一信息获取单元123,第一信息广播单元124,第二信息获取单元125;
列表获取单元121,用于获取第二区块对应的区块生成节点,获取区块链网络中的节点委员会列表;节点委员会列表包括区块链网络中处于有效工作状态的共识节点;
交易执行单元122,用于执行第二区块中所包含的交易数据,得到交易数据对应的交易结果;
第一信息获取单元123,用于根据区块生成节点、节点委员会列表以及交易结果,确定当前共识节点在第一共识阶段中,对第二区块的第一投票信息;
第一信息广播单元124,用于将第一投票信息在区块链网络中进行广播,以使区块链网络中除当前共识节点之外的剩余共识节点获取第一投票信息;
第二信息获取单元125,用于剩余共识节点在第一共识阶段中,对第二区块的第二投票信息,将第一投票信息和第二投票信息确定为第二区块在第一共识阶段中的区块投票信息。
其中,列表获取单元121,交易执行单元122,第一信息获取单元123,第一信息广播单元124,第二信息获取单元125的具体功能实现方式可以参见上述图3所对应实施例中的步骤S102,这里不再进行赘述。
请一并参见图7,第一信息获取单元123可以包括:验证通过子单元1231,验证未通过子单元1232;
验证通过子单元1231,用于当区块生成节点属于节点委员会列表,且交易结果为有效结果时,获取第二区块在第一共识阶段中的验证通过结果,根据验证通过结果生成当前共识节点对应的第一投票信息;
验证未通过子单元1232,用于当区块生成节点不属于节点委员会列表,或者交易结果为无效结果时,获取第二区块在第一共识阶段中的验证未通过结果,根据验证未通过结果生成当前共识节点对应的第一投票信息。
其中,验证通过子单元1231,验证未通过子单元1232的具体功能实现方式可以参见上述图3所对应实施例中的步骤S102,这里不再进行赘述。
请一并参见图7,该提案消息处理装置1还可以包括:提案验证模块14,第二共识结果确定模块15,区块记账模块16,释放模块17,信息同步模块18;
提案验证模块14,用于若当前共识节点中不具有锁定状态的第二区块,则对区块提案消息进行验证,得到区块提案消息在第一共识阶段中的提案投票信息;
第二共识结果确定模块15,用于根据提案投票信息获取区块提案消息在第二共识阶段中的提案提交投票信息,根据提案提交投票信息确定区块提案消息对应的共识结果;
区块记账模块16,用于当共识结果为共识通过结果时,将区块提案消息中所包含的第一区块进行记账处理;
释放模块17,用于若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度大于第二区块的区块高度,则将第二区块对应的锁定状态切换为释放状态,将具有释放状态的第二区块确定为合法区块;
信息同步模块18,用于从区块链网络中获取与第二区块相关联的同步信息,将同步信息与合法区块进行记账处理。
其中,提案验证模块14,第二共识结果确定模块15,区块记账模块16的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,释放模块17,信息同步模块18的具体功能实现方式可以参见上述图3所对应实施例中的步骤S102,这里不再进行赘述。
请一并参见图7,第一共识结果确定模块13可以包括:投票数确定单元131,第三信息获取单元132,第三信息广播单元133,第四信息获取单元134;
投票数确定单元131,用于根据区块投票信息获取第二区块在第一共识阶段中的赞成投票数;赞成投票数是指区块链网络中每个共识节点的区块投票信息中,属于赞成投票信息的总数量;
第三信息获取单元132,用于根据赞成投票数确定当前共识节点在第二共识阶段中,对第二区块的第三投票信息;
第三信息广播单元133,用于将第三投票信息在区块链网络中进行广播,以使区块链网络中除当前节点之外的剩余共识节点获取第三投票信息;
第四信息获取单元134,用于获取剩余共识节点在第二共识阶段中,对第二区块的第四投票信息,将第三投票信息和第四投票信息确定为第二区块在第二共识阶段中的区块提交投票信息。
其中,投票数确定单元131,第三信息获取单元132,第三信息广播单元133,第四信息获取单元134的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
请一并参见图7,第三信息获取单元132可以包括:赞成投票获取子单元1321,反对投票获取子单元1322;
赞成投票获取子单元1321,用于当赞成投票数大于或等于数量阈值时,根据赞成投票数确定当前共识节点在第二共识阶段中,对第二区块的第三投票信息为提交成功投票信息;
反对投票获取子单元1322,用于当赞成投票数小于数量阈值时,根据赞成投票数确定当前共识节点在第二共识阶段中,对第二区块的第三投票信息为提交失败投票信息。
其中,赞成投票获取子单元1321,反对投票获取子单元1322的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
请一并参见图7,第一共识结果确定模块13还可以具体用于:
统计区块提交投票信息中,属于提交成功投票信息的信息总数量,根据信息总数量确定第二区块对应的共识结果。
第一共识结果确定模块13可以包括:共识通过单元135,共识未通过单元136;
共识通过单元135,用于当信息总数量大于或等于数量阈值时,确定第二区块对应的共识结果为共识通过,对共识通过的第二区块进行记账处理;
共识未通过单元136,用于当信息总数量小于数量阈值时,确定第二区块对应的共识结果为共识未通过。
其中,共识通过单元135,共识未通过单元136的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
本申请实施例可以通过获取区块提案消息中的第一区块,若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息,其中,锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态,根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。可见,区块链网络中区块的共识过程可以包括第一共识阶段和第二共识阶段,在当前共识节点接收到区块提案消息时,可以检测当前共识节点的本地中是否具有锁定状态的区块,若当前共识节点的本地中具有锁定状态的区块,则可以优先对具有锁定状态的区块重新进行共识,重新得到具有锁定状态的区块的共识结果,基于共识结果对锁定状态的区块进行上链处理,可以确保区块链中区块的上链质量,通过引入区块锁定状态,可以降低区块链分叉的风险。
请参见图8,是本申请实施例提供的一种计算机设备的结构示意图。如图8所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图8所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取区块提案消息,从区块提案消息中获取第一区块;
若当前共识节点具有锁定状态的第二区块,且第一区块的区块高度和第二区块的区块高度相同,则删除区块提案消息,获取第二区块在第一共识阶段中的区块投票信息;锁定状态是指通过第一共识阶段且未通过第二共识阶段的区块所处的状态;
根据区块投票信息获取第二区块在第二共识阶段中的区块提交投票信息,根据区块提交投票信息确定第二区块对应的共识结果。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3所对应实施例中对提案消息处理方法的描述,也可执行前文图7所对应实施例中对提案消息处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的提案消息处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对提案消息处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链网络。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储存储器(Read-Only Memory,ROM)或随机存储存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (12)
1.一种提案消息处理方法,其特征在于,包括:
获取区块提案消息,从所述区块提案消息中获取第一区块;
若当前共识节点具有锁定状态的第二区块,且所述第一区块的区块高度和所述第二区块的区块高度相同,则删除所述区块提案消息,获取所述第二区块在第一共识阶段中的区块投票信息;所述锁定状态是指通过所述第一共识阶段且未通过第二共识阶段的区块所处的状态;
根据所述区块投票信息获取所述第二区块在所述第二共识阶段中的区块提交投票信息,根据所述区块提交投票信息确定所述第二区块对应的共识结果。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第二区块在第一共识阶段中的区块投票信息,包括:
获取所述第二区块对应的区块生成节点,获取区块链网络中的节点委员会列表;所述节点委员会列表包括所述区块链网络中处于有效工作状态的共识节点;
执行所述第二区块中所包含的交易数据,得到所述交易数据对应的交易结果;
根据所述区块生成节点、所述节点委员会列表以及所述交易结果,确定所述当前共识节点在所述第一共识阶段中,对所述第二区块的第一投票信息;
将所述第一投票信息在所述区块链网络中进行广播,以使所述区块链网络中除所述当前共识节点之外的剩余共识节点获取所述第一投票信息;
获取所述剩余共识节点在所述第一共识阶段中,对所述第二区块的第二投票信息,将所述第一投票信息和所述第二投票信息确定为所述第二区块在第一共识阶段中的区块投票信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述区块生成节点、所述节点委员会列表以及所述交易结果,确定所述当前共识节点在所述第一共识阶段中,对所述第二区块的第一投票信息,包括:
当所述区块生成节点属于所述节点委员会列表,且所述交易结果为有效结果时,获取所述第二区块在所述第一共识阶段中的验证通过结果,根据所述验证通过结果生成所述当前共识节点对应的第一投票信息;
当所述区块生成节点不属于所述节点委员会列表,或者所述交易结果为无效结果时,获取所述第二区块在所述第一共识阶段中的验证未通过结果,根据所述验证未通过结果生成所述当前共识节点对应的第一投票信息。
4.根据权利要求1所述的方法,其特征在于,还包括:
若所述当前共识节点中不具有锁定状态的第二区块,则对所述区块提案消息进行验证,得到所述区块提案消息在所述第一共识阶段中的提案投票信息;
根据所述提案投票信息获取所述区块提案消息在所述第二共识阶段中的提案提交投票信息,根据所述提案提交投票信息确定所述区块提案消息对应的共识结果;
当所述共识结果为共识通过结果时,将所述区块提案消息中所包含的所述第一区块进行记账处理。
5.根据权利要求1所述的方法,其特征在于,还包括:
若所述当前共识节点具有锁定状态的第二区块,且所述第一区块的区块高度大于所述第二区块的区块高度,则将所述第二区块对应的所述锁定状态切换为释放状态,将具有所述释放状态的第二区块确定为合法区块;
从所述区块链网络中获取与所述第二区块相关联的同步信息,将所述同步信息与所述合法区块进行记账处理。
6.根据权利要求1所述的方法,其特征在于,所述根据所述区块投票信息获取所述第二区块在所述第二共识阶段中的区块提交投票信息,包括:
根据所述区块投票信息获取所述第二区块在所述第一共识阶段中的赞成投票数;所述赞成投票数是指所述区块链网络中每个共识节点的区块投票信息中,属于赞成投票信息的总数量;
根据所述赞成投票数确定所述当前共识节点在所述第二共识阶段中,对所述第二区块的第三投票信息;
将所述第三投票信息在所述区块链网络中进行广播,以使所述区块链网络中除所述当前共识节点之外的剩余共识节点获取所述第三投票信息;
获取所述剩余共识节点在所述第二共识阶段中,对所述第二区块的第四投票信息,将所述第三投票信息和所述第四投票信息确定为所述第二区块在所述第二共识阶段中的区块提交投票信息。
7.根据权利要求6所述的方法,其特征在于,所述根据所述赞成投票数确定所述当前共识节点在所述第二共识阶段中,对所述第二区块的第三投票信息,包括:
当所述赞成投票数大于或等于数量阈值时,根据所述赞成投票数确定所述当前共识节点在所述第二共识阶段中,对所述第二区块的第三投票信息为提交成功投票信息;
当所述赞成投票数小于所述数量阈值时,根据所述赞成投票数确定所述当前共识节点在所述第二共识阶段中,对所述第二区块的第三投票信息为提交失败投票信息。
8.根据权利要求1所述的方法,其特征在于,所述根据所述区块提交投票信息确定所述第二区块对应的共识结果,包括:
统计所述区块提交投票信息中,属于提交成功投票信息的信息总数量,根据所述信息总数量确定所述第二区块对应的共识结果。
9.根据权利要求8所述的方法,其特征在于,所述根据所述信息总数量确定所述第二区块对应的共识结果,包括:
当所述信息总数量大于或等于所述数量阈值时,确定所述第二区块对应的共识结果为共识通过,对共识通过的第二区块进行记账处理;
当所述信息总数量小于所述数量阈值时,确定所述第二区块对应的共识结果为共识未通过。
10.一种提案消息处理装置,其特征在于,包括:
区块获取模块,用于获取区块提案消息,从所述区块提案消息中获取第一区块;
投票信息获取模块,用于若当前共识节点具有锁定状态的第二区块,且所述第一区块的区块高度和所述第二区块的区块高度相同,则删除所述区块提案消息,获取所述第二区块在第一共识阶段中的区块投票信息;所述锁定状态是指通过所述第一共识阶段且未通过第二共识阶段的区块所处的状态;
第一共识结果确定模块,用于根据所述区块投票信息获取所述第二区块在所述第二共识阶段中的区块提交投票信息,根据所述区块提交投票信息确定所述第二区块对应的共识结果。
11.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1至9中任一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010482134.7A CN111382456B (zh) | 2020-06-01 | 2020-06-01 | 提案消息处理方法、装置、设备以及存储介质 |
PCT/CN2021/091985 WO2021244208A1 (zh) | 2020-06-01 | 2021-05-07 | 区块链的提案消息处理方法、装置、设备以及存储介质 |
US17/724,336 US11971877B2 (en) | 2020-06-01 | 2022-04-19 | Method, apparatus, device, and storage medium for proposal message processing for blockchain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010482134.7A CN111382456B (zh) | 2020-06-01 | 2020-06-01 | 提案消息处理方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382456A true CN111382456A (zh) | 2020-07-07 |
CN111382456B CN111382456B (zh) | 2020-10-23 |
Family
ID=71222209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010482134.7A Active CN111382456B (zh) | 2020-06-01 | 2020-06-01 | 提案消息处理方法、装置、设备以及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11971877B2 (zh) |
CN (1) | CN111382456B (zh) |
WO (1) | WO2021244208A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111931220A (zh) * | 2020-09-24 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 区块链网络的共识处理方法、装置、介质及电子设备 |
CN112202933A (zh) * | 2020-12-08 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 区块链网络的信息处理方法、装置及节点设备 |
CN112492016A (zh) * | 2020-11-23 | 2021-03-12 | 北京微芯区块链与边缘计算研究院 | 一种跨进程可扩展的共识方法及系统 |
WO2021244208A1 (zh) * | 2020-06-01 | 2021-12-09 | 腾讯科技(深圳)有限公司 | 区块链的提案消息处理方法、装置、设备以及存储介质 |
WO2022033488A1 (zh) * | 2020-08-10 | 2022-02-17 | 杭州复杂美科技有限公司 | 区块处理方法、设备和存储介质 |
WO2022127424A1 (zh) * | 2020-12-16 | 2022-06-23 | 中兴通讯股份有限公司 | 区块组头的获取方法及装置,存储介质及电子装置 |
CN115186035A (zh) * | 2022-09-13 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 一种区块处理方法、相关系统及存储介质和服务器 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338677B (zh) * | 2021-12-30 | 2022-10-21 | 中山大学 | 一种区块链系统中的区块生成方法和相关装置 |
CN114254050B (zh) * | 2022-03-02 | 2022-06-07 | 恒生电子股份有限公司 | 区块链网络共识预加载方法、装置、设备及存储介质 |
CN114422155B (zh) * | 2022-03-30 | 2022-08-02 | 杭州趣链科技有限公司 | 提案共识执行方法、区块链系统、设备和存储介质 |
CN114785799B (zh) * | 2022-04-08 | 2023-06-02 | 清华大学 | 区块链共识方法、区块链副本装置、计算机设备及存储介质 |
CN115001809A (zh) * | 2022-05-31 | 2022-09-02 | 深圳壹账通智能科技有限公司 | 区块链网络共识方法、装置、设备及介质 |
WO2023250103A1 (en) * | 2022-06-22 | 2023-12-28 | Unity Chain, Inc. | Byzantine fault tolerant blockchain-based state machine replication with optimistic proposals |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110943838A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 区块链网络中确定区块的共识的方法、设备和存储介质 |
CN110995790A (zh) * | 2019-11-14 | 2020-04-10 | 北京联合天成价值网络科技有限公司 | 一种解决区块链网络共识不确定性的方法 |
CN111061769A (zh) * | 2019-12-24 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识方法及相关设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11249947B2 (en) * | 2019-06-15 | 2022-02-15 | Facebook, Inc. | Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure |
CN114401150B (zh) * | 2019-09-05 | 2023-10-20 | 创新先进技术有限公司 | 区块链网络中加入节点的方法和区块链系统 |
CN110995701B (zh) * | 2019-12-02 | 2022-11-29 | 远光软件股份有限公司 | 一种区块链共识方法、系统、电子设备、存储介质 |
CN110708171B (zh) * | 2019-12-13 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
WO2021189219A1 (en) * | 2020-03-23 | 2021-09-30 | Dora Network Limited | Blockchain consensus method and system, and computer-readable storage medium |
CN111382456B (zh) * | 2020-06-01 | 2020-10-23 | 腾讯科技(深圳)有限公司 | 提案消息处理方法、装置、设备以及存储介质 |
-
2020
- 2020-06-01 CN CN202010482134.7A patent/CN111382456B/zh active Active
-
2021
- 2021-05-07 WO PCT/CN2021/091985 patent/WO2021244208A1/zh active Application Filing
-
2022
- 2022-04-19 US US17/724,336 patent/US11971877B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110943838A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 区块链网络中确定区块的共识的方法、设备和存储介质 |
CN110995790A (zh) * | 2019-11-14 | 2020-04-10 | 北京联合天成价值网络科技有限公司 | 一种解决区块链网络共识不确定性的方法 |
CN111061769A (zh) * | 2019-12-24 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识方法及相关设备 |
Non-Patent Citations (1)
Title |
---|
周鹏: "基于联盟区块链的数据安全存储方案设计与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021244208A1 (zh) * | 2020-06-01 | 2021-12-09 | 腾讯科技(深圳)有限公司 | 区块链的提案消息处理方法、装置、设备以及存储介质 |
US11971877B2 (en) | 2020-06-01 | 2024-04-30 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, device, and storage medium for proposal message processing for blockchain |
WO2022033488A1 (zh) * | 2020-08-10 | 2022-02-17 | 杭州复杂美科技有限公司 | 区块处理方法、设备和存储介质 |
CN111931220A (zh) * | 2020-09-24 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 区块链网络的共识处理方法、装置、介质及电子设备 |
CN112492016A (zh) * | 2020-11-23 | 2021-03-12 | 北京微芯区块链与边缘计算研究院 | 一种跨进程可扩展的共识方法及系统 |
CN112492016B (zh) * | 2020-11-23 | 2023-05-30 | 北京微芯区块链与边缘计算研究院 | 一种跨进程可扩展的共识方法及系统 |
CN112202933A (zh) * | 2020-12-08 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 区块链网络的信息处理方法、装置及节点设备 |
CN112202933B (zh) * | 2020-12-08 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 区块链网络的信息处理方法、装置及节点设备 |
WO2022127424A1 (zh) * | 2020-12-16 | 2022-06-23 | 中兴通讯股份有限公司 | 区块组头的获取方法及装置,存储介质及电子装置 |
CN115186035A (zh) * | 2022-09-13 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 一种区块处理方法、相关系统及存储介质和服务器 |
CN115186035B (zh) * | 2022-09-13 | 2022-11-22 | 腾讯科技(深圳)有限公司 | 一种区块处理方法、相关系统及存储介质和服务器 |
Also Published As
Publication number | Publication date |
---|---|
WO2021244208A1 (zh) | 2021-12-09 |
CN111382456B (zh) | 2020-10-23 |
US20220237181A1 (en) | 2022-07-28 |
US11971877B2 (en) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382456B (zh) | 提案消息处理方法、装置、设备以及存储介质 | |
Decker et al. | Bitcoin meets strong consistency | |
CN111427957B (zh) | 区块链投票信息校验方法、装置、设备以及存储介质 | |
CN111445333B (zh) | 区块生成方法、装置、计算机设备以及存储介质 | |
US20190354518A1 (en) | Chain mesh network for decentralized transaction systems | |
WO2021233049A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111654395B (zh) | 投票信息处理方法、装置、设备以及存储介质 | |
CN112868210B (zh) | 区块链时间戳协议 | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
CN110602217B (zh) | 基于区块链的联盟管理方法、装置、设备及存储介质 | |
US20230315891A1 (en) | Transaction data processing method and apparatus, computer device and storage medium | |
CN113395363B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN112104482B (zh) | 一种基于并行投票的共识方法 | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
CN112632629B (zh) | 基于区块链的投票管理方法、装置、介质及电子设备 | |
Yadav et al. | A comparative study on consensus mechanism with security threats and future scopes: Blockchain | |
CN111241589A (zh) | 一种数据库系统、节点和方法 | |
CN110930254A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
US20220239668A1 (en) | Blockchain-based message processing method and apparatus, device, and storage medium | |
CN115730935A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112995167A (zh) | 基于Kafka机制的用电信息采集方法、区块链网络及用户端 | |
Singh et al. | Understanding the public, private and consortium consensus algorithms in blockchain technology | |
CN117061538A (zh) | 一种基于区块链网络的共识处理方法及相关装置 | |
CN116233139A (zh) | 区块链系统的数据处理方法、装置、介质及电子设备 | |
CN110910091A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40025798 Country of ref document: HK |