CN114047899B - 一种区块链的视图同步方法及系统 - Google Patents
一种区块链的视图同步方法及系统 Download PDFInfo
- Publication number
- CN114047899B CN114047899B CN202210029097.3A CN202210029097A CN114047899B CN 114047899 B CN114047899 B CN 114047899B CN 202210029097 A CN202210029097 A CN 202210029097A CN 114047899 B CN114047899 B CN 114047899B
- Authority
- CN
- China
- Prior art keywords
- time
- view
- local node
- end time
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本申请提供一种区块链的视图同步方法及系统,包括:处于区块链上的本地节点判断自身是否出现共识超时,如果本地节点未出现共识超时,获取与本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;第一开始时间为其他节点处于当前视图的开始时间,第一结束时间为其他节点处于当前视图的结束时间;根据第一开始时间及第一结束时间,延后本地节点处于当前视图的结束时间;如果本地节点出现共识超时,获取区块链上所有节点所处视图的视图值;根据获取到的视图值,调整本地节点的视图值,以使区块链达到视图同步状态。所述方法可以在区块链处于视图同步状态时,延长视图同步状态的时长。在未处于视图同步状态时加快达到视图同步的速度。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链的视图同步方法及系统。
背景技术
区块链(blockchain)是一个分布式的共享账本和数据库,具有去中心化的特点。当区块链上的节点对一个动作或者数据进行投票时,需要区块链上的节点对该动作或者数据进行共识。在区块链共识过程中,区块链节点互相通信并对区块的交易做运算。区块链节点进行共识的前提是区块链达到视图同步状态,也即区块链上的大多数节点处于同一视图值中。
一般的共识机制采用PBFT算法(Practical Byzantine Fault Tolerance 实用拜占庭容错算法),PBFT算法一般按照轮次进行,每一个轮次对应一个视图,只有当大部分节点都处于同一视图中,才认为达到了视图同步状态,区块链具有了形成区块链共识的基础。如果在一个视图内未达到视图同步状态,节点会进入下一视图,也即进入下一轮次。
当区块链未处于视图同步状态时,可以使用二进制指数后退算法(binaryexponential backoff algorithm)来达到视图同步状态。二进制指数后退算法依据节点之间的视图差值,来调整节点在一个视图内的停留时间,以便达到大部分节点都处于同一视图中的目的。
但是,当节点之间的视图差值过大时,所需的调整时间也会过长,导致区块链难以形成视图同步状态。
发明内容
本申请提供一种区块链的视图同步方法及系统,以解决传统视图同步时间过长的问题。
第一方面,本申请实施例提供一种区块链的视图同步方法,包括:
处于区块链上的本地节点判断自身是否出现共识超时,区块链是通过PBFT算法建立的;
如果本地节点未出现共识超时,获取与本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;第一开始时间为其他节点处于当前视图的开始时间,第一结束时间为其他节点处于当前视图的结束时间;
根据第一开始时间及第一结束时间,延后本地节点处于当前视图的结束时间;
如果本地节点出现共识超时,获取区块链上所有节点所处视图的视图值;
根据获取到的视图值,调整本地节点的视图值,以使区块链达到视图同步状态。
第二方面,本申请实施例还提供一种区块链的视图同步系统,包括:
判断模块,判断模块被配置为:处于区块链上的本地节点判断自身是否出现共识超时,区块链是通过PBFT算法建立的;共识超时为节点在一个视图内,未能形成区块链共识;
时间延后模块,时间延后模块被配置为:如果本地节点未出现共识超时,获取与本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;第一开始时间为其他节点处于当前视图的开始时间,第一结束时间为其他节点处于当前视图的结束时间;
根据第一开始时间及第一结束时间,延后本地节点处于当前视图的结束时间;
视图值调整模块,视图值调整模块被配置为:如果本地节点出现共识超时,获取区块链上所有节点所处视图的视图值;
根据获取到的视图值,调整本地节点的视图值,以使区块链达到视图同步状态。
由以上技术方案可知,本申请提供一种区块链的视图同步方法及系统,包括:处于区块链上的本地节点判断自身是否出现共识超时,如果本地节点未出现共识超时,获取与本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;第一开始时间为其他节点处于当前视图的开始时间,第一结束时间为其他节点处于当前视图的结束时间;根据第一开始时间及第一结束时间,延后本地节点处于当前视图的结束时间;如果本地节点出现共识超时,获取区块链上所有节点所处视图的视图值;根据获取到的视图值,调整本地节点的视图值,以使区块链达到视图同步状态。所述视图同步方法可以在区块链处于视图同步状态时,延长视图同步状态的时长。在区块链未处于视图同步状态时加快达到视图同步的速度。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种区块链的视图同步方法流程示意图;
图2为本申请实施例提供的第二结束时间的延长示意图;
图3为本申请实施例提供的视图值跳转的示意图;
图4为本申请实施例提供的一种区块链的视图同步系统的结构示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
实用拜占庭容错算法简称PBFT算法,当基于PBFT算法建立的区块链的节点数大于等于4个的时候,1个无效节点的存在并不会影响消息的传递。推广来说,当存在n个无效节点时,只要总节点数超过3n个,消息传递的正确性就能得到保证,这也是PBFT算法的容错率。本申请实施例提供的区块链是基于PBFT算法建立的。
在PBFT算法中,区块链共识是按照轮次来进行,每一个视图值代表一轮共识,也就是说,当区块链上的节点处于一个视图中时,进行一次共识操作。如果节点处于该视图时,经过共识操作未能形成区块链共识,此时节点会出现共识超时,每一轮共识都有一个超时时间,以此确保共识不会停滞不前。共识过程中,区块链节点需要互相通信并对区块的交易做运算。
视图同步状态是共识的前提。当节点间达到视图同步状态时,会由其中一个节点提出提案,其他节点则负责对提案进行校验,如果节点赞同提案则进行投票。每一个节点都会把投票结果进行广播给其他节点,同时收集其他节点的投票,在经历两轮投票后,提案共识成功,每一个节点都会执行提案中的操作并更新节点本地数据。当且仅当一个视图内,节点认定一个提案被共识,节点才会正常跳转下一个视图,否则,节点判断共识超时,超时后直接跳转下一个视图。共识超时指的是在一个视图内,节点未能按时完成共识算法流程。
视图同步状态是进行共识的前提,同时,如果需要共识正常进行,视图同步状态需要维持足够长的时间,以便节点有足够长的时间执行共识算法流程中的操作——对提案进行两轮投票以及收集投票。即使当前处于视图同步状态,但是时长很短,节点也会因为未能按时完成共识算法中的流程操作,而出现共识超时。
一般的,某一节点处于一个视图的时间有一个初始值,当在该视图内未达到视图同步状态时,在进入下一视图时该节点会触发共识超时动作,该节点处于下一视图的时间,变更为上述初始值的二倍,也即该节点在下一视图的结束时间发生延后,出现了共识超时。其中,下一视图的视图值比当前视图的视图值大1。
例如,在二进制指数后退算法中,假设两个节点之间的差值为n,初始值为t 1 ,则前n
次共识超时的总时间为,而
恰好是第n+1次共识超时的时间,即处于第n+1次共识超时的节点所经历的共识超时时间长
度,比前n次共识超时加起来的总时长都要大,因此,无论两个共识节点的视图值差多少,只
要两个节点都是从同一个视图开始出现共识超时,最终都会达到视图同步状态。
图1为本申请实施例提供的一种区块链的视图同步方法流程示意图。本申请实施例提供一种区块链的视图同步方法,包括:
S1:处于区块链上的本地节点判断自身是否出现共识超时,区块链是基于PBFT算法建立的;共识超时指的是在一个视图内,节点未能按时完成共识算法流程。
在一些实施例中,由于本申请实施例的区块链是基于PBFT算法,因此处于区块链上的无效节点的数量不超过总节点数的1/3,因此,如果有超过或等于2/3的节点处于同一视图中,即可认为区块链达到视图同步状态。如果区块链未处于视图同步状态,本地节点可以对所处视图进行调整,以使区块链达到视图同步状态,如果区块链处于视图同步状态,本地节点可以对在视图内的停留时间进行调整,以使得更多节点能够处于视图同步状态下的视图中,进而延长区块链处于视图同步状态的时间,来确保区块链共识的正常形成,进一步保证区块链节点有足够多的时间来进行通信及做运算。
本申请实施例提供的区块链的视图同步方法,还包括以下步骤:
获取本地节点的第二开始时间及第二结束时间;第二开始时间为本地节点处于当前视图的开始时间,第二结束时间为本地节点处于当前视图的结束时间;
根据第二开始时间及第二结束时间计算本地节点在当前视图的停留时间;
根据停留时间计算本地节点在当前视图的最大调整时间。
在本申请实施例中,设置了最大调整时间。例如,假设本地节点为第0节点,当前视图的视图值可以为v 0 ,第二开始时间可以为t 01 ,第二结束时间可以为t 02 ,则停留时间t 2 =t 02 - t 01 ,根据二进制指数后退算法,本地节点在当前视图的最大调整时间t max =t 02 +t 2 。本申请实施例可以在进行视图同步的步骤中,同时受二进制指数后退算法的限制,以保证区块链一定达到视图同步状态,以及保证区块链迅速达到视图同步状态。
S2:如果本地节点未出现共识超时,获取与本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;第一开始时间为其他节点处于当前视图的开始时间,第一结束时间为其他节点处于当前视图的结束时间。
在本实施例中,区块链上的各节点可以实时广播所处视图的视图值、视图的开始时间及视图的结束时间。本地节点在接收到其他节点所处视图的视图值、视图的开始时间(第一开始时间)以及视图的结束时间(第一结束时间)后,可以对自身处于当前视图的结束时间进行调整,以使更多的节点进入该当前视图。其中,本地节点获取的是与其共同处于该当前视图的其他节点广播的内容,这样,才能保证区块链维持在该当前视图的视图同步状态。
本申请实施例提供的区块链的视图同步方法,还包括以下进行视图对齐的步骤:
S3:根据第一开始时间及第一结束时间,延后本地节点处于当前视图的结束时间。
这样,可以将本地节点处于当前视图的时间延长至与其他节点相齐,也即,延长了视图同步的时间。通过延长“视图同步”这一状态的时长,能够保证区块链节点有足够多的时间来进行通信以及做运算。
延后本地节点处于当前视图结束时间的步骤,具体包括以下步骤:
S301:如果第一开始时间大于等于第二开始时间,且第一开始时间小于第二结束时间,
S302:以及,如果第一结束时间大于第二结束时间,且第一结束时间小于最大调整时间,
S303:延后第二结束时间至第一结束时间,以形成新的第二结束时间。
与本地节点共同处于当前视图的其他节点,是与本地节点所处视图的视图值相同的节点。例如:与本地节点共同处于当前视图的其他节点可以为第1节点,当前视图的视图值可以为v 0 ,第一开始时间可以为t 11 ,第一结束时间可以为t 12 ,如果t 01 ≤t 11 <t 01 +t,且t 01 + t<t 12 <t max ,可以说明,第1节点(其他节点)在当前视图中的结束时间晚于第0节点(本地节点)在当前视图的结束时间。本申请实施例可以将第0节点在当前视图的结束时间(第二结束时间)延后至与第1节点在当前视图的结束时间(第一结束时间),形成了新的第二结束时间。这样,第0节点的视图同步时间得到了延长。并且,第一结束时间小于最大调整时间,不超过二进制指数后退算法调整的最大时间,二进制指数后退算法的视图同步方法仍然有效。
延后本地节点处于当前视图结束时间的步骤,还包括以下步骤:
S304:如果第一开始时间大于等于第二开始时间,且第一开始时间小于第二结束时间,
S305:以及,如果第一结束时间大于最大调整时间,
S306:延后第二结束时间至最大调整时间,以形成新的第二结束时间。
在本实施例中,如果第一结束时间大于最大调整时间,将第二结束时间直接延后至最大调整时间,以保证二进制后退算法有效,也即保证区块链一定达到视图同步状态。并且如果第一结束时间大于最大调整时间,在将第二结束时间延后至最大调整时间后,为了保证二进制后退算法有效,不再继续根据其他节点在当前视图的开始时间及结束时间对本地节点的第二结束时间进行调整。
延后本地节点处于当前视图结束时间的步骤,还包括以下步骤:
S307:继续获取与本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间,
S308:如果第一开始时间大于等于第二开始时间,且第一开始时间小于第二结束时间,
S309:以及,如果第一结束时间大于第二结束时间,且第一结束时间小于最大调整时间,
S310:以及,如果第一结束时间大于新的第二结束时间,
S311:延后新的第二结束时间至第一结束时间,以再次形成新的所述第二结束时间。
在一些实施例中,区块链上除第0节点和第1节点外,还有与第0节点同处于当前视图的其他节点,例如第2节点,第2节点在当前视图的结束时间可能会晚于第1节点在当前视图的结束时间,因此,如果第0节点在当前视图的结束时间(新的第二结束时间)能够延后至第2节点在当前视图的结束时间,那么,第0节点的视图同步时间再次得到了延长。
例如,继续获取其他节点的第一开始时间及第一结束时间步骤中,可以获取第2节点在当前视图的视图开始时间及视图结束时间,也即,第2节点当前视图的视图值可以为v 0 ,第一开始时间可以为t 21 ,第一结束时间可以为t 22 ,如果t 01 ≤t 21 <t 01 +t,且t 01 +t<t 22 < t max ,且t 12 <t 22 ,可以说明,第2节点(其他节点)在当前视图中的结束时间晚于第0节点(本地节点)及第1节点(其他节点)在当前视图的结束时间。本申请实施例可以将第0节点在当前视图的结束时间(第二结束时间)延后至与第2节点在当前视图的结束时间(第一结束时间),再次形成了新的第二结束时间。这样,第0节点的视图同步时间再次得到了延长。
延后本地节点处于当前视图结束时间的步骤,还包括以下步骤:
S312:如果第一开始时间大于等于第二开始时间,且第一开始时间小于第二结束时间,
S313:以及,如果第一结束时间大于最大调整时间,
S314:延后新的第二结束时间至最大调整时间,以再次形成新的第二结束时间。
在本实施例中,为了保证二进制后退算法有效,也即保证区块链一定达到视图同步状态,将新的第二结束时间延后至最大调整时间。
参见图2,为本申请实施例提供的第二结束时间的延长示意图。如图2所示,在时间轴t的延伸方向上,对于第0节点、第1节点、第2节点以及第3节点,在未延长结束时间之前,各节点在当前视图处于视图同步状态的时长为T2,在各节点分别作为本地节点延长结束时间后,各节点在当前视图处于视图同步状态的时长延长为T1,达到了延长视图同步时长的目的。
本申请实施例提供的区块链的视图同步方法,还包括以下进行视图值调整的步骤:
S4:如果本地节点出现共识超时,获取区块链上所有节点所处视图的视图值。
在一些实施例中,如果本地节点出现共识超时,意味着区块链未处于视图同步状态,此时可以通过调整节点所处视图的方式来达到视图同步状态。
S5:根据获取到的视图值,调整本地节点的视图值,以使区块链达到视图同步状态。
调整视图值可以具体包括以下步骤:
S501:在所有节点所处视图的视图值中,获取最高视图值;
S502:如果处于同一视图的节点的节点数与总节点数的占比超过第一预设阈值,则将所述本地节点的视图值调整至所述最高视图值。
在一些实施例中,第一预设阈值可以为2/3,由于本申请实施例中的区块链是基于PBFT算法建立的,所以当处于同一视图的节点的节点数与总节点数的占比超过2/3时,如果本地节点跳转至最高视图值对应的视图中,区块链即可达到视图同步状态。
参见图3,为本申请实施例提供的视图值跳转的示意图。在时间轴t的延伸方向上,最高视图值为4,本地节点的视图值可以调整为4,直接跳转至视图值为4对应的视图中。如图3所示,本地节点在视图值为4停留的时长,与在跳转之前本地节点在视图值为2的视图停留的时长相同,通过共识超时的方式进行视图同步的二进制指数后退算法的时长,明显长于本申请实施例视图值跳转进行视图同步的时长。
S503:如果多个视图中均存在相同数量的节点,且每一视图中节点的节点数与总节点数的占比均超过第二预设阈值,则将所有节点的视图值调整至目标视图值,目标视图值为最高视图值的下一视图值。
在一些实施例中,第二预设阈值可以为1/3。如果多个视图中均存在相同数量的节点,且每一视图中节点的节点数与总节点数的占比均超过第二预设阈值,说明此时无法区分出最高视图值,如果本地节点跳转至比最高视图值大1的下一视图值(目标视图值)对应的视图中,区块链即可达到视图同步状态。
参见图4,为本申请实施例提供的一种区块链的视图同步系统的结构示意图。如图4所示,本申请实施例还提供一种区块链的视图同步系统,包括:
判断模块,判断模块被配置为:处于区块链上的本地节点判断自身是否出现共识超时,区块链是通过PBFT算法建立的;共识超时为节点在一个视图内,未能形成区块链共识;
时间延后模块,时间延后模块被配置为:如果本地节点未出现共识超时,获取与本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;第一开始时间为其他节点处于当前视图的开始时间,第一结束时间为其他节点处于当前视图的结束时间;
根据第一开始时间及第一结束时间,延后本地节点处于当前视图的结束时间;
视图值调整模块,视图值调整模块被配置为:如果本地节点出现共识超时,获取区块链上所有节点所处视图的视图值;
根据获取到的视图值,调整本地节点的视图值,以使区块链达到视图同步状态。
由以上技术方案可知,本申请实施例提供一种区块链的视图同步方法及系统,包括:处于区块链上的本地节点判断自身是否出现共识超时,区块链是通过PBFT算法建立的;共识超时指的是在一个视图内,节点未能按时完成共识算法流程。如果本地节点未出现共识超时,获取与本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;第一开始时间为其他节点处于当前视图的开始时间,第一结束时间为其他节点处于当前视图的结束时间;根据第一开始时间及第一结束时间,延后本地节点处于当前视图的结束时间;如果本地节点出现共识超时,获取区块链上所有节点所处视图的视图值;根据获取到的视图值,调整本地节点的视图值,以使区块链达到视图同步状态。所述视图同步方法可以在区块链处于视图同步状态时,延长视图同步状态的时长。在区块链未处于视图同步状态时,加快达到视图同步的速度。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
Claims (8)
1.一种区块链的视图同步方法,其特征在于,包括:
处于区块链上的本地节点判断自身是否出现共识超时,所述区块链是通过PBFT算法建立的;
如果所述本地节点未出现共识超时,获取与所述本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;所述第一开始时间为所述其他节点处于当前视图的开始时间,所述第一结束时间为所述其他节点处于当前视图的结束时间;
获取所述本地节点的第二开始时间及第二结束时间;所述第二开始时间为所述本地节点处于当前视图的开始时间,所述第二结束时间为所述本地节点处于当前视图的结束时间;
根据所述第二开始时间及所述第二结束时间,计算所述本地节点在当前视图的停留时间;
根据所述停留时间计算所述本地节点在当前视图的最大调整时间;
根据所述第一开始时间及所述第一结束时间,延后所述本地节点处于当前视图的结束时间;
根据所述第一开始时间及所述第一结束时间,延后所述本地节点处于当前视图的结束时间的步骤,包括:
如果所述第一开始时间大于或等于所述第二开始时间,且所述第一开始时间小于所述第二结束时间,
以及,如果所述第一结束时间大于所述第二结束时间,且所述第一结束时间小于所述最大调整时间,
延后所述第二结束时间至所述第一结束时间,以形成新的所述第二结束时间;
如果所述本地节点出现共识超时,获取所述区块链上所有节点所处视图的视图值;
根据获取到的视图值,调整所述本地节点的视图值,以使所述区块链达到视图同步状态。
2.根据权利要求1所述的区块链的视图同步方法,其特征在于,根据所述第一开始时间及所述第一结束时间,延后所述本地节点处于当前视图的结束时间的步骤,还包括:
如果所述第一开始时间大于或等于所述第二开始时间,且所述第一开始时间小于所述第二结束时间,
以及,如果所述第一结束时间大于所述最大调整时间,
延后所述第二结束时间至所述最大调整时间,以形成新的所述第二结束时间。
3.根据权利要求1所述的区块链的视图同步方法,其特征在于,根据所述第一开始时间及所述第一结束时间,延后所述本地节点处于当前视图的结束时间的步骤,还包括:
继续获取与所述本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间,
如果所述第一开始时间大于或等于所述第二开始时间,且所述第一开始时间小于所述第二结束时间,
以及,如果所述第一结束时间大于所述第二结束时间,且所述第一结束时间小于所述最大调整时间,
以及,如果所述第一结束时间大于新的所述第二结束时间,
延后新的所述第二结束时间至所述第一结束时间,以再次形成新的所述第二结束时间。
4.根据权利要求3所述的区块链的视图同步方法,其特征在于,继续获取与所述本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间的步骤后,还包括:
如果所述第一开始时间大于或等于所述第二开始时间,且所述第一开始时间小于所述第二结束时间,
以及,如果所述第一结束时间大于所述最大调整时间,
延后新的所述第二结束时间至所述最大调整时间,以再次形成新的所述第二结束时间。
5.根据权利要求1所述的区块链的视图同步方法,其特征在于,根据获取到的视图值,调整所述本地节点的视图值的步骤,包括:
在所有节点所处视图的视图值中,获取最高视图值;
如果处于同一视图的节点的节点数与总节点数的占比超过第一预设阈值,则将所述本地节点的视图值调整至所述最高视图值。
6.根据权利要求5所述的区块链的视图同步方法,其特征在于,根据获取到的视图值,调整所述本地节点的视图值的步骤,还包括:
如果多个视图中均存在相同数量的节点,且每一视图中节点的节点数与总节点数的占比均超过第二预设阈值,则将所有节点的视图值调整至目标视图值,所述目标视图值为所述最高视图值的下一视图值。
7.根据权利要求1所述的区块链的视图同步方法,其特征在于,还包括:区块链上的各节点实时广播所处视图的视图值、视图的开始时间及视图的结束时间。
8.一种区块链的视图同步系统,其特征在于,包括:
判断模块,所述判断模块被配置为:处于区块链上的本地节点判断自身是否出现共识超时,所述区块链是通过PBFT算法建立的;所述共识超时为节点在一个视图内,未能形成区块链共识;
时间延后模块,所述时间延后模块被配置为:如果所述本地节点未出现共识超时,获取与所述本地节点共同处于当前视图的其他节点的第一开始时间及第一结束时间;所述第一开始时间为所述其他节点处于当前视图的开始时间,所述第一结束时间为所述其他节点处于当前视图的结束时间;
获取所述本地节点的第二开始时间及第二结束时间;所述第二开始时间为所述本地节点处于当前视图的开始时间,所述第二结束时间为所述本地节点处于当前视图的结束时间;
根据所述第二开始时间及所述第二结束时间,计算所述本地节点在当前视图的停留时间;
根据所述停留时间计算所述本地节点在当前视图的最大调整时间;
根据所述第一开始时间及所述第一结束时间,延后所述本地节点处于当前视图的结束时间;
根据所述第一开始时间及所述第一结束时间,延后所述本地节点处于当前视图的结束时间的步骤,包括:
如果所述第一开始时间大于或等于所述第二开始时间,且所述第一开始时间小于所述第二结束时间,
以及,如果所述第一结束时间大于所述第二结束时间,且所述第一结束时间小于所述最大调整时间,
延后所述第二结束时间至所述第一结束时间,以形成新的所述第二结束时间;
视图值调整模块,所述视图值调整模块被配置为:如果所述本地节点出现共识超时,获取所述区块链上所有节点所处视图的视图值;
根据获取到的视图值,调整所述本地节点的视图值,以使所述区块链达到视图同步状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210029097.3A CN114047899B (zh) | 2022-01-12 | 2022-01-12 | 一种区块链的视图同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210029097.3A CN114047899B (zh) | 2022-01-12 | 2022-01-12 | 一种区块链的视图同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114047899A CN114047899A (zh) | 2022-02-15 |
CN114047899B true CN114047899B (zh) | 2022-03-18 |
Family
ID=80196190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210029097.3A Active CN114047899B (zh) | 2022-01-12 | 2022-01-12 | 一种区块链的视图同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047899B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336707A (zh) * | 2019-08-07 | 2019-10-15 | 卓尔智联(武汉)研究院有限公司 | 区块链共识装置、方法及计算机可读存储介质 |
CN110727731A (zh) * | 2019-09-05 | 2020-01-24 | 阿里巴巴集团控股有限公司 | 区块链网络中加入节点的方法和区块链系统 |
CN111147261A (zh) * | 2019-12-31 | 2020-05-12 | 南京可信区块链与算法经济研究院有限公司 | 在区块链中使用HotStuff共识算法的方法及系统 |
CN111163148A (zh) * | 2019-12-24 | 2020-05-15 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识状态的同步方法及相关设备 |
CN111630826A (zh) * | 2019-06-05 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 共识系统和方法 |
CN111917826A (zh) * | 2020-06-23 | 2020-11-10 | 海南大学 | 一种基于区块链知识产权保护的pbft共识算法 |
CN112468255A (zh) * | 2020-12-10 | 2021-03-09 | 电子科技大学 | 基于网络共识结合vrf算法的区块链节点时间同步方法 |
CN112967071A (zh) * | 2021-03-04 | 2021-06-15 | 北京联合大学 | 一种基于区块链的城市水果质量溯源方法 |
CN113726828A (zh) * | 2020-05-25 | 2021-11-30 | 北京北信源软件股份有限公司 | 一种支持微服务的高并发的可信区块链系统及方法 |
CN113821569A (zh) * | 2021-09-30 | 2021-12-21 | 广州智链未来科技有限公司 | 一种区块链的共识方法及区块链 |
-
2022
- 2022-01-12 CN CN202210029097.3A patent/CN114047899B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111630826A (zh) * | 2019-06-05 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 共识系统和方法 |
CN110336707A (zh) * | 2019-08-07 | 2019-10-15 | 卓尔智联(武汉)研究院有限公司 | 区块链共识装置、方法及计算机可读存储介质 |
CN110727731A (zh) * | 2019-09-05 | 2020-01-24 | 阿里巴巴集团控股有限公司 | 区块链网络中加入节点的方法和区块链系统 |
CN111163148A (zh) * | 2019-12-24 | 2020-05-15 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识状态的同步方法及相关设备 |
CN111147261A (zh) * | 2019-12-31 | 2020-05-12 | 南京可信区块链与算法经济研究院有限公司 | 在区块链中使用HotStuff共识算法的方法及系统 |
CN113726828A (zh) * | 2020-05-25 | 2021-11-30 | 北京北信源软件股份有限公司 | 一种支持微服务的高并发的可信区块链系统及方法 |
CN111917826A (zh) * | 2020-06-23 | 2020-11-10 | 海南大学 | 一种基于区块链知识产权保护的pbft共识算法 |
CN112468255A (zh) * | 2020-12-10 | 2021-03-09 | 电子科技大学 | 基于网络共识结合vrf算法的区块链节点时间同步方法 |
CN112967071A (zh) * | 2021-03-04 | 2021-06-15 | 北京联合大学 | 一种基于区块链的城市水果质量溯源方法 |
CN113821569A (zh) * | 2021-09-30 | 2021-12-21 | 广州智链未来科技有限公司 | 一种区块链的共识方法及区块链 |
Also Published As
Publication number | Publication date |
---|---|
CN114047899A (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3605947B1 (en) | Distributed system, message processing method, node, client, and storage medium | |
Perlman | Fault-tolerant broadcast of routing information | |
Li et al. | An extensible consensus algorithm based on PBFT | |
US8583958B2 (en) | Systems and methods of providing fast leader elections in distributed systems of simple topologies | |
CN110298754B (zh) | 一种应用于区块链的共识方法 | |
Hurfin et al. | Consensus in asynchronous systems where processes can crash and recover | |
CN111342971B (zh) | 一种拜占庭共识方法和系统 | |
US20200204351A1 (en) | Method for information confirmation in distributed systems using hybrid byzantine agreement | |
CN112187490A (zh) | 一种拜占庭容错共识方法及系统 | |
CN113609515B (zh) | 一种共识方法、区块链系统 | |
CN113139871A (zh) | 区块链上自适应共识方法、设备及计算机可读存储介质 | |
CN110995439A (zh) | 区块链共识方法、电子装置及存储介质 | |
CN112929186B (zh) | 一种基于通信模式结构的联盟链共识优化方法 | |
CN113014635A (zh) | 区块链系统的节点类型划分方法、装置及区块链系统 | |
CN114047899B (zh) | 一种区块链的视图同步方法及系统 | |
JP2003527667A (ja) | 対話式収束を用いたフォールトトレラントなクロック同期のためのシステムおよび方法 | |
CN113010903A (zh) | 一种基于区块链的饮食业油烟在线监控方法及系统 | |
CN111010225B (zh) | 一种基于星历匹配的导航电文快速帧同步方法及系统 | |
CN116582543A (zh) | 一种基于切片的共识方法 | |
D'Amato et al. | Recent latest message driven ghost: Balancing dynamic availability with asynchrony resilience | |
CN111526165B (zh) | 联盟链中的共识方法和系统 | |
D'Amato et al. | Asynchrony-Resilient Sleepy Total-Order Broadcast Protocols | |
Wang | Byzantine fault tolerance for distributed ledgers revisited | |
Mišić et al. | Coping with smartly malicious leaders: PBFT with arbitration for blockchain-based IoT applications | |
CN116055579A (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 |