CN113821569B - 一种区块链的共识方法及区块链 - Google Patents
一种区块链的共识方法及区块链 Download PDFInfo
- Publication number
- CN113821569B CN113821569B CN202111164831.9A CN202111164831A CN113821569B CN 113821569 B CN113821569 B CN 113821569B CN 202111164831 A CN202111164831 A CN 202111164831A CN 113821569 B CN113821569 B CN 113821569B
- Authority
- CN
- China
- Prior art keywords
- consensus
- block chain
- blockchain
- proposal
- time control
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000007246 mechanism Effects 0.000 claims abstract description 31
- 230000008844 regulatory mechanism Effects 0.000 claims abstract description 26
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 3
- 239000000758 substrate Substances 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 2
- 238000002360 preparation method Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002035 prolonged effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/2365—Ensuring data consistency and integrity
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Computing Systems (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种区块链的共识方法及区块链。方法包括:区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值。所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点。接收到所述时控阈值的共识备份节点,基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。本发明的方案能够根据区块链实际的网络状态,动态对共识提议进行时控,具有能够高效利用区块链资源完成共识提议的技术效果,能够保证区块链能够应对业务高增的发展趋势。
Description
技术领域
本文件涉及信息处理技术领域,尤其涉及一种区块链的共识方法及区块链。
背景技术
区块链由于具有去中心化、不可篡改、公开透明和可追溯等优点,已成为人们关注的重点技术。在未来,区块链业务会呈爆发性增长,这对于区块链系统的处理能力提出了极大的考验。
在区块链中,客户端发起的交易数据需要达成区块链中各共识节点的共识后才能进行上链,因此区块链针对共识提议的处理效率将直接影响到区块链的服务体验。为此,如何高效利用区块链资源完成共识提议,保证区块链能够应对不断增长的业务请求,是当前亟需解决的技术问题。
发明内容
本发明实施例目的是提供一种区块链的共识方法及区块链,能够根据区块链实际的网络状态,动态调整共识提议的时控阈值,从而高效利用区块链资源完成共识提议,保证区块链能够应对业务高增的发展趋势。
为了实现上述目的,本发明实施例是这样实现的:
第一方面,提供一种区块链的共识方法,包括:
区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值;
所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点;
接收到所述时控阈值的共识备份节点,基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
第二方面,提供一种区块链,包括共识主节点和共识备份节点,其中:
所述共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值;
所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点;
接收到所述时控阈值的共识备份节点,基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
基于本发明实施例的方案,区块链的共识主节点可以根据区块链实际的网络状态指标,灵活对接下来指定轮次的共识提议进行时控,从而高效利用区块链资源完成共识提议,保证区块链能够适用于高并发的场景需求。比如,在区块链的网络状态较差时,适当延长共识提议的时控阈值,以尽可能确保通过较少轮次的共识提议来完成区块链交易,避免区块链交易反复占用去共识提议资源。再比如,在区块链的网络状态较好时,适当缩减共识提议的时控阈值,从而避免长时间等待共识提议,改善区块链交易堆积的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的区块链的共识方法的流程示意图。
图2为本发明实施例提供的区块链的结构意图。
图3为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如前所述,未来区块链业务会呈爆发性增长,这对于区块链系统的处理能力带来了极大的考验。区块链客户端发起的交易需要达成区块链中各共识节点的共识后才能进行上链,因此区块链针对共识提议的处理效率将直接影响到区块链的服务体验。而目前区块链对每轮共识提议的限时是固定的,这导致区块链并不能够根据实际情况,灵活利用资源处理客户端的业务请求。比如:在网络状况较差的情况下,共识提议因传输延时而导致共识超时,则共识节点会将本轮带共识交易全部打回,进而这些交易需要在后续轮次中重新被提议,这就造成交易执行和写快上链的拖延。在业务高并发的场景中,待共识交易的堆积会容易引起区块链的雪崩效应,导致恶性循环。
针对上述问题,本申请旨在提供一种能够根据区块链实际的网络状态,动态对共识提议进行时控的共识方案,能够高效利用区块链资源完成共识提议,保证区块链能够应对业务高增的发展趋势。
图1是本发明实施例区块链的共识方法的流程图,图1所示方法可以由下文所对应的共识节点执行,具体包括如下步骤:
S102,区块链的共识主节点在区块链触发预先设置的共识调控机制时,基于区块链的网络状态指标,设置由共识主节点待连续发起的指定轮数的共识提议的时控阈值。
应理解,这里所述的时控阈值是指单轮共识提议的最大共识耗时,一旦某一轮次的共识提议的共识时间超过时控阈值,则各共识节点会执行相应的共识超时流程,比如上文所述的打回本轮共识提议中的所有交易。
具体地,本申请实施例中,区块链触发预设的共识调控机制可以是指下至少一者情况:
1)区块链的视图完成切换,也就是具有主备共识节点之分的区块链完成换主操作,并由新选举出的共识主节点在接下来发起共识提议。
2)区块链连续预设轮数的共识提供的时控阈值未发生变化,也就是根据预设轮数定期调整共识提议的时控阈值。
3)区块链对应的业务在预设时间段内的延迟超出预设延迟阈值,也就是说当前共识提议的时控不再支撑区块链的业务请求量。
其中,区块链中各个共识节点均可以具有监控区块链触发预设的共识调控机制的能力,并可以在称为当前区块链视图的共识主节点后,开始对区块链进行监控。
具体地,共识主节点可以根据区块链的吞吐量、网络延时和待共识交易量中的至少一者参数,确定得到区块链的网络状态指标。之后,根据区块链的网络状态指标,计算得到时控阈值的调整幅值,并基于该调整幅值,在预先设置的初始时控阈值基础上,设置区块链中待连续执行的指定轮数的共识提议的时控阈值。
优先地,区块链可以针对不同业务类型的共识提议,个性化设置专属的初始时控阈值。本步骤中,共识主节点可以基于调整幅值,在指定轮数的共识提议各自对应的初始时控阈值基础上,设置指定轮数的共识提议各自对应的时控阈值。比如:在区块链的网络状态指标较差时,可以为高优先级业务类型的共识提议设置较高的向上调整幅值,对应地,为低优先级业务类型的共识提议设置的向上调整幅值则小于高优先级业务类型。
此外,在实际应用中,上述共识调控机制可以独立于区块链的共识机制。假设共识主节点在本轮区块链视图中需要发起5轮共识提议,如果已经完成前2轮共识提议,并要准备发起第3轮共识提议时,区块链触发了共识调控机制,则共识主节点接下来可以为尚未发起的第3轮、第4轮和第5轮的共识提议设置时控阈值。即,本步骤所述的指定轮数的共识提议包括所述区块链当前视图中尚未发起的共识提议。当然,如果目标共识节在准备发起第5轮共识提议时,区块链再次触发了共识调控机制,则目标共识节可以再重新设置第5轮共识提议的时控阈值。也就是说,共识主节点基于共识调控机制设置时控阈值的过程,并不与发起共识提议的过程中相冲突。
S104,共识主节点将指定轮数的共识提议的时控阈值发送至区块链的共识备份节点。
具体地,本申请实施例中的共识主节点可以在发起上述指定轮数的共识提议中的第一个共识提议时,复用该第一个共识提议的共识消息,将上述指定轮数的共识提议的时控阈值发送至区块链的共识备份节点。
还是以上文所述的,共识主节点在本轮视图中需要发起5轮共识提议,并已经完成前2轮共识提议正准备发起第3轮共识提议的情景为例:当共识主节点设置完第3轮、第4轮和第5轮的共识提议设置时控阈值,并发起第3轮的共识提议时,可以利用第3轮共识提议流程中由共识主节点发送的第一个广播消息,将时控阈值通知给共识备份节点。
需要说明的是,不同共识协议发热共识提议流程中,第一个广播消息也存在区别,这里本文不对第一个广播消息作具体限定。这里,以实用拜占庭容错算法的共识协议(Practical Byzantine Fault Tolerance,PBFT)为例,本申请实施例的共识主节点可以利用PBFT协议中的预准备(PRE-PREPARE)消息将时控阈值通知给共识备份节点。应理解,在PBFT协议中,共识主节点基于PRE-PREPARE消息将轮共识提议需要共识的交易通知给各共识备份节点,因此通过复用PRE-PREPARE消息,可以在不额外产生信令开销的情况下,将时控阈值通知给共识备份节点。
S106,接收到时控阈值的共识备份节点,基于时控阈值配置指定轮数的共识提议的超时机制,并按照超时机制完成所述指定轮数的共识提议的共识流程。
需要说明的是,共识提议的超时机制属于现有技术,这里本文不作赘述。
此外,如果完成指定轮数的共识提议后,区块链未再触发共识调控机制,则可以沿用该时控阈值的超时机制处理后续的共识提议,即便是区块链完成视图切换选取出新的共识主节点,也可以不用对时控阈值进行变动。当然,在完成指定轮数的共识提议后,各共识节点也可以选择使用初始时控阈值,充值共识提议的超时机制。
基于本发明实施例的方法,区块链的共识主节点可以根据区块链实际的网络状态指标,灵活对接下来指定轮次的共识提议进行时控,从而高效利用区块链资源完成共识提议,保证区块链能够适用于高并发的场景需求。比如,在区块链的网络状态较差时,适当延长共识提议的时控阈值,以尽可能确保通过较少轮次的共识提议来完成区块链交易,避免区块链交易反复占用去共识提议资源。再比如,在区块链的网络状态较好时,适当缩减共识提议的时控阈值,从而避免长时间等待共识提议,改善区块链交易堆积的问题。
下面结合实际的应用场景,对本申请实施例的方法进行介绍。
本应用场景在传统的PBFT协议的共识流程中,引入根据区块链的网络状态指标,对共识提议进行动态时控。
为了保证共识提议的时控能够实时适用于区块链的网络状态,这里将区块链完成视图切换作为触发调整时控阈值的共识调控机制。也就是说,当区块链产生出新的共识主节点,则该共识主节点就要负责设置其接下来在当前视图中所需要发起的共识提议的时控阈值。
其中,具体地流程如下。
区块链完成一次视图切换,产生本轮视图的共识主节点。
共识主节点计算接下来由其发起的第N轮共识提议的时控阈值t1。比如,共识主节点可以调用本地的TIME函数,基于区块链近期的吞吐量、网络延时和待共识交易量等一些列能够反映网路状态的相关参数,计算出区块链的网络状态指标,并根据络状态指标计算出对第N轮共识提议的时控阈值的调整幅值。之后,在第N轮共识提议的初始时控阈值基础之上,按照调整幅值进行调整,得到第N轮共识提议最终采用的时控阈值T1。
在确定第N轮共识提议最终采用的时控阈值T1后,共识节点接下来发起第N轮共识提议。其中,PBFT协议下的共识提议流程包括:
pre-prepare阶段:
主共识节点收到来自客户端(Client)的一个请求,并分配一个编号给这个请求,共识主节点广播一条pre-prepare消息给共识备份节点,这个pre-prepare消息包含当前共识的视图(view)和共识主节点的摘要(digest),同时还包括共识主节点基于纠删码技术计算得到的各数据块对应的哈希值以及时控阈值T1。
每一个共识备份节点在接收到pre-prepare消息后,确定同不同意共识主节点分配给该请求的这个编号n,即,确认是否接受这条pre-prepare消息。
各共识备份节点如果接受了这条pre-prepare消息,则根据pre-prepare消息中的时控阈值T1,配置本轮视图中的共识提议的超时机制。
需要说明的是,共识备份节点可以在一进入到pre-prepare阶段时,就开始进行超时计时,此时超时计时的时控阈值为T0。当共识备份节点接收到pre-prepare消息后,再将时控阈值由T0更新为T1。由于此阶段为共识流程的初期,时控阈值的变动并不会影响超时计时的结果。
prepare阶段:
所有参与共识的共识备份节点中的每一个在接收到pre-prepare消息后,检查pre-prepare消息是否合法。如果pre-prepare消息合法,那么该共识提议在replica上的状态被确定为prepared,共识备份节点将该pre-prepare消息添加到本地Log中,并发送prepare消息给其他参与共识的共识备份节点。
commit阶段:
所有共识节点中的每一个在进入prepared状态后,发送commit消息给其他共识节点,并将自己发送的commit消息添加到本地Log中(代表自己的认可)。当一个共识节点发现有一个quorum(quorum是为了能够确保所有replica数据一致性要求和容错要求需要的一定数量replica的集合)同意编号分配时,它就会广播一条commit消息给其它所有节点。与此同时也会陆续收到来自其他节点的commit消息,如果每个节点收到了2f+1(f是联盟链中作恶节点的数量)条commit消息(包括自身的一条,这些来自不同节点的commit携带相同的编号n和view v),就说名该共识节点拥有了一个名为committed certificate的证书,请求在这个共识节点上达到了committed状态。此时只通过这一个共识节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有共识节点都同意了编号n的分配。当Client发起的请求到达commited状态后,说明已经达成全网共识。
应理解,如果共识备份节点在超时计时达到T1时,第N轮共识提议未能完成上述共识过程,则共识备份节点可以强制结束,并将第N轮共识提议的交易打回。
以上是对本说明书实施例的方法的介绍。应理解,在不脱离本文上述原理基础之上,还可以进行适当的变化,这些变化也应视为本说明书实施例的保护范围。
此外,对应于图1所示的方法,本发明实施例还提供一种区块链。图2是本发明实施例区块链200的结构示意图,包括:共识主节点210和共识备份节点220。其中:
所述共识主节点210在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点210待连续发起的指定轮数的共识提议的时控阈值;
所述共识主节点210将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点220;
接收到所述时控阈值的共识备份节点220,基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
本发明实施例的块链中,区块链的共识主节点可以根据区块链实际的网络状态指标,灵活对接下来指定轮次的共识提议进行时控,从而高效利用区块链资源完成共识提议,保证区块链能够适用于高并发的场景需求。比如,在区块链的网络状态较差时,适当延长共识提议的时控阈值,以尽可能确保通过较少轮次的共识提议来完成区块链交易,避免区块链交易反复占用去共识提议资源。再比如,在区块链的网络状态较好时,适当缩减共识提议的时控阈值,从而避免长时间等待共识提议,改善区块链交易堆积的问题。
可选地,区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值,包括:区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,计算得到时控阈值的调整幅值;所述共识主节点基于所述调整幅值,在预先设置的初始时控阈值基础上,设置所述区块链中待连续执行的指定轮数的共识提议的时控阈值。
可选地,所述区块链针对不同业务类型的共识提议设置有专属的初始时控阈值;所述共识主节点基于所述调整幅值,在预先设置的初始时控阈值基础上,设置所述区块链中待连续执行的指定轮数的共识提议的时控阈值,包括:所述区块链的共识主节点基于所述调整幅值,在所述指定轮数的共识提议各自对应的初始时控阈值基础上,设置所述指定轮数的共识提议各自对应的时控阈值。
可选地,所述区块链触发预设的共识调控机制是指:所述区块链的视图完成切换;所述区块链连续预设轮数的共识提供的时控阈值未发生变化;以及,所述区块链对应的业务在预设时间段内的延迟超出预设延迟阈值。
可选地,所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点,包括:所述共识主节点在发起所述指定轮数的共识提议中的第一个共识提议时,复用所述第一个共识提议的共识消息,将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点。
可选地,所述区块链的网络状态指标是基于所述区块链的吞吐量、网络延时和待共识交易量中的至少一者所确定得到的。
应理解,本说明书实施例的区块链可以作为图1所示方法的执行主体,因此能够实现图1所示方法中的步骤和功能。由于原理相同,本文不再赘述。
图3是本说明书的一个实施例电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
其中,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成上述区块链的共识主节点。对应地,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值。
所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点,从而使得接收到所述时控阈值的共识备份节点,基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
或者,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成上述区块链的共识备份节点。对应地,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
区块链的共识备份节点接收区块链的共识主节点发送的由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值,其中,所述时控阈值是所述共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标设置得到的。
所述共识备份节点基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
基于本发明实施例的电子设备,区块链的共识主节点可以根据区块链实际的网络状态指标,灵活对接下来指定轮次的共识提议进行时控,从而高效利用区块链资源完成共识提议,保证区块链能够适用于高并发的场景需求。比如,在区块链的网络状态较差时,适当延长共识提议的时控阈值,以尽可能确保通过较少轮次的共识提议来完成区块链交易,避免区块链交易反复占用去共识提议资源。再比如,在区块链的网络状态较好时,适当缩减共识提议的时控阈值,从而避免长时间等待共识提议,改善区块链交易堆积的问题。
上述如本说明书图1所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
应理解,本发明实施例的电子设备可以使共识主节点实现对应于图1所示方法中的步骤和功能,或者使共识备份节点实现对应于图1所示方法中的步骤和功能。由于原理相同,本文不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
此外,本发明实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令。
其中,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示方法中由共识主节点执行的步骤,包括:
区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值。
所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点,从而使得接收到所述时控阈值的共识备份节点,基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
或者,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示方法中由共识备份节点执行的步骤,包括:
区块链的共识备份节点接收区块链的共识主节点发送的由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值,其中,所述时控阈值是所述共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标设置得到的。
所述共识备份节点基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。此外,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
Claims (8)
1.一种区块链的共识方法,其特征在于,包括:
区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值;
所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点;
接收到所述时控阈值的共识备份节点,基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程;
其中,区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值,包括:
区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,计算得到时控阈值的调整幅值;
所述共识主节点基于所述调整幅值,在预先设置的初始时控阈值基础上,设置所述区块链中待连续执行的指定轮数的共识提议的时控阈值。
2.根据权利要求1所述的方法,其特征在于,
所述区块链针对不同业务类型的共识提议设置有专属的初始时控阈值;
所述共识主节点基于所述调整幅值,在预先设置的初始时控阈值基础上,设置所述区块链中待连续执行的指定轮数的共识提议的时控阈值,包括:
所述区块链的共识主节点基于所述调整幅值,在所述指定轮数的共识提议各自对应的初始时控阈值基础上,设置所述指定轮数的共识提议各自对应的时控阈值。
3.根据权利要求1或2所述的方法,其特征在于,
所述区块链触发预设的共识调控机制是指下至少一者情况:
所述区块链的视图完成切换;
所述区块链连续预设轮数的共识提供的时控阈值未发生变化;
所述区块链对应的业务在预设时间段内的延迟超出预设延迟阈值。
4.根据权利要求1或2所述的方法,其特征在于,
所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点,包括:
所述共识主节点在发起所述指定轮数的共识提议中的第一个共识提议时,复用所述第一个共识提议的共识消息,将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点。
5.根据权利要求1或2所述的方法,其特征在于,
所述区块链的网络状态指标是基于所述区块链的吞吐量、网络延时和待共识交易量中的至少一者所确定得到的。
6.根据权利要求1或2任一项所述的方法,其特征在于,
所述指定轮数的共识提议包括所述区块链当前视图中尚未发起的共识提议。
7.一种区块链的共识方法,其特征在于,包括:
区块链的共识备份节点接收区块链的共识主节点发送的由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值;其中,所述指定轮数的共识提议的时控阈值是共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标设置得到的,区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,计算得到时控阈值的调整幅值,所述共识主节点基于所述调整幅值,在预先设置的初始时控阈值基础上,设置所述区块链中待连续执行的指定轮数的共识提议的时控阈值;
区块链的共识备份节点于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
8.一种区块链系统,包括共识主节点和共识备份节点,其特征在于,
所述共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,设置由所述共识主节点待连续发起的指定轮数的共识提议的时控阈值;其中,区块链的共识主节点在所述区块链触发预先设置的共识调控机制时,基于所述区块链的网络状态指标,计算得到时控阈值的调整幅值;所述共识主节点基于所述调整幅值,在预先设置的初始时控阈值基础上,设置所述区块链中待连续执行的指定轮数的共识提议的时控阈值;
所述共识主节点将所述指定轮数的共识提议的时控阈值发送至所述区块链的共识备份节点;
接收到所述时控阈值的共识备份节点,基于所述时控阈值配置所述指定轮数的共识提议的超时机制,并按照所述超时机制完成所述指定轮数的共识提议的共识流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111164831.9A CN113821569B (zh) | 2021-09-30 | 2021-09-30 | 一种区块链的共识方法及区块链 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111164831.9A CN113821569B (zh) | 2021-09-30 | 2021-09-30 | 一种区块链的共识方法及区块链 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113821569A CN113821569A (zh) | 2021-12-21 |
CN113821569B true CN113821569B (zh) | 2024-02-06 |
Family
ID=78919947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111164831.9A Active CN113821569B (zh) | 2021-09-30 | 2021-09-30 | 一种区块链的共识方法及区块链 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821569B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114047899B (zh) * | 2022-01-12 | 2022-03-18 | 南京金宁汇科技有限公司 | 一种区块链的视图同步方法及系统 |
CN114070733B (zh) * | 2022-01-17 | 2023-01-31 | 清华大学 | 一种基于区块链网络的共识方法、装置及系统 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3041463A1 (en) * | 2018-11-07 | 2019-04-18 | Alibaba Group Holding Limited | Facilitating practical byzantine fault tolerance blockchain consensus and node synchronization |
CN109784916A (zh) * | 2018-12-12 | 2019-05-21 | 广东工业大学 | 一种改进pbft的以太坊共识机制应用于联盟链的方法 |
CN110569395A (zh) * | 2018-05-18 | 2019-12-13 | 北京天德科技有限公司 | 一种稳定可靠的区块链拜占庭共识流程设计方法 |
CN110944046A (zh) * | 2019-11-21 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 一种共识机制的控制方法及相关设备 |
CN111526219A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的共识方法及联盟链系统 |
CN111522822A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置及电子设备 |
CN111523153A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块生成方法及共识节点 |
CN111600965A (zh) * | 2020-06-05 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN111865469A (zh) * | 2020-07-31 | 2020-10-30 | 江西师范大学 | 一种基于区块链的工业物联网容错时间同步方法和系统 |
CN111866106A (zh) * | 2020-07-09 | 2020-10-30 | 中汇信息技术(上海)有限公司 | 共识方法、装置、电子设备和可读存储介质 |
WO2020225224A1 (en) * | 2019-05-03 | 2020-11-12 | Universität des Saarlandes | Secure and transparent database transactions in untrusted environments using permissioned, minimally invasive blockchain technology |
CN112232954A (zh) * | 2020-10-15 | 2021-01-15 | 杭州溪塔科技有限公司 | 一种提案超时阈值的动态调节方法、装置及电子设备 |
CN113079139A (zh) * | 2021-03-23 | 2021-07-06 | 中国工商银行股份有限公司 | 基于区块链的共识组主节点确定方法、装置及系统 |
CN113132253A (zh) * | 2021-03-29 | 2021-07-16 | 杭州趣链科技有限公司 | 带宽限流方法和电子设备 |
CN113139871A (zh) * | 2021-05-07 | 2021-07-20 | 新晨科技股份有限公司 | 区块链上自适应共识方法、设备及计算机可读存储介质 |
CN113347219A (zh) * | 2020-03-02 | 2021-09-03 | 续科天下(北京)科技有限公司 | 区块链节点共识的方法和装置 |
-
2021
- 2021-09-30 CN CN202111164831.9A patent/CN113821569B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569395A (zh) * | 2018-05-18 | 2019-12-13 | 北京天德科技有限公司 | 一种稳定可靠的区块链拜占庭共识流程设计方法 |
CA3041463A1 (en) * | 2018-11-07 | 2019-04-18 | Alibaba Group Holding Limited | Facilitating practical byzantine fault tolerance blockchain consensus and node synchronization |
CN109784916A (zh) * | 2018-12-12 | 2019-05-21 | 广东工业大学 | 一种改进pbft的以太坊共识机制应用于联盟链的方法 |
WO2020225224A1 (en) * | 2019-05-03 | 2020-11-12 | Universität des Saarlandes | Secure and transparent database transactions in untrusted environments using permissioned, minimally invasive blockchain technology |
CN110944046A (zh) * | 2019-11-21 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 一种共识机制的控制方法及相关设备 |
CN113347219A (zh) * | 2020-03-02 | 2021-09-03 | 续科天下(北京)科技有限公司 | 区块链节点共识的方法和装置 |
CN111600965A (zh) * | 2020-06-05 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN111526219A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的共识方法及联盟链系统 |
CN111522822A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置及电子设备 |
CN111523153A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块生成方法及共识节点 |
CN111866106A (zh) * | 2020-07-09 | 2020-10-30 | 中汇信息技术(上海)有限公司 | 共识方法、装置、电子设备和可读存储介质 |
CN111865469A (zh) * | 2020-07-31 | 2020-10-30 | 江西师范大学 | 一种基于区块链的工业物联网容错时间同步方法和系统 |
CN112232954A (zh) * | 2020-10-15 | 2021-01-15 | 杭州溪塔科技有限公司 | 一种提案超时阈值的动态调节方法、装置及电子设备 |
CN113079139A (zh) * | 2021-03-23 | 2021-07-06 | 中国工商银行股份有限公司 | 基于区块链的共识组主节点确定方法、装置及系统 |
CN113132253A (zh) * | 2021-03-29 | 2021-07-16 | 杭州趣链科技有限公司 | 带宽限流方法和电子设备 |
CN113139871A (zh) * | 2021-05-07 | 2021-07-20 | 新晨科技股份有限公司 | 区块链上自适应共识方法、设备及计算机可读存储介质 |
Non-Patent Citations (4)
Title |
---|
Performance Analysis of the Raft Consensus Algorithm for Private Blockchains;Dongyan Huang et al.;《IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS: SYSTEMS》;第50卷(第1期);172-181 * |
Performance Analysis of the Raft Consensus Algorithm for Private Blockchains;Dongyan Huang等;IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS: SYSTEMS;第50卷(第1期);172-181 * |
一种区块链实用拜占庭容错算法的改进;韩镇阳等;《计算机应用与软件》;第37卷(第2期);226-233 * |
一种区块链实用拜占庭容错算法的改进;韩镇阳等;计算机应用与软件;第37卷(第2期);226-233 * |
Also Published As
Publication number | Publication date |
---|---|
CN113821569A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113821569B (zh) | 一种区块链的共识方法及区块链 | |
CN111526219B (zh) | 一种联盟链的共识方法及联盟链系统 | |
EP3934162B1 (en) | Blockchain consensus method and device and electronic equipment | |
CN111683118B (zh) | 基于区块链的共识方法、装置、主节点设备及从节点设备 | |
CN108776897B (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
CN110738497B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
EP3934163B1 (en) | Methods and consensus nodes for block generation | |
WO2011160490A1 (zh) | 多点控制单元资源调度方法及系统 | |
CN104239150B (zh) | 一种硬件资源调整的方法及装置 | |
US7260081B2 (en) | Method for resolving collisions in communication systems using medium access control based on contention | |
EP3306866A1 (en) | Message processing method, device and system | |
CN113326154A (zh) | 连接管理方法、装置、电子设备和存储介质 | |
CN111459676B (zh) | 一种节点资源管理方法、装置及存储介质 | |
CN110995617A (zh) | 基于mqtt的数据报送方法装置计算机设备和存储介质 | |
CN114547201A (zh) | 一种区块链交易的处理方法、区块链节点及电子设备 | |
CN113268327B (zh) | 事务请求的处理方法、装置和电子设备 | |
CN111723158A (zh) | 用于区块链网络中的数据同步的方法、装置和计算设备 | |
CN116232893A (zh) | 分布式系统的共识方法、装置、电子设备及存储介质 | |
CN113835888B (zh) | CPU动态分配提升WiFi性能的方法、WiFi通讯设备及存储介质 | |
CN114529414A (zh) | 一种区块链的交易处理方法、区块链节点及电子设备 | |
CN116128505A (zh) | 一种区块链网络的共识方法、装置和电子设备 | |
CN111294374B (zh) | 一种异构设备启动系统、方法、装置及电子设备 | |
CN111078598B (zh) | 存储模块数据访问控制方法、数据访问装置和芯片 | |
CN112968951A (zh) | 服务节点的连接方法及装置、存储介质和电子装置 | |
CN111309467A (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 |