CN110442591A - 一种联盟链的全局时钟系统及方法 - Google Patents
一种联盟链的全局时钟系统及方法 Download PDFInfo
- Publication number
- CN110442591A CN110442591A CN201910740360.8A CN201910740360A CN110442591A CN 110442591 A CN110442591 A CN 110442591A CN 201910740360 A CN201910740360 A CN 201910740360A CN 110442591 A CN110442591 A CN 110442591A
- Authority
- CN
- China
- Prior art keywords
- time
- node
- local zone
- clock
- ordering joint
- 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
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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- 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
-
- 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/3821—Electronic credentials
Abstract
本发明提供了一种联盟链的全局时钟系统及方法。为解决区块链技术在时间敏感类的商务场景中的应用和推广问题,本发明实施例在典型联盟链模型预选节点按照背书、排序和验证三类节点分工基础上,增加全局时钟节点,全局时钟节点可根据时间源数量选用拜占庭容错算法确保时钟服务的稳定;此外,本发明实施例还通过一套严谨的全局时钟系统及方法,在共识机制中完善对时间戳信息的确认,实现节点共识时间的强一致。即通过本发明,基于全局时钟服务,保证联盟链模型中背书节点、排序节点和验证节点均验证时间同步的准确性,只有在时间同步准确时,才对区块或交易加盖时间戳,保证区块或交易中加盖的时间戳信息的准确性。
Description
技术领域
本发明涉及联盟链这一特殊分布式系统的全局时钟以及时钟同步领域,更具体的说,涉及一种联盟链的全局时钟系统及方法。
背景技术
联盟链是一种需要注册许可的区块链,仅限于联盟成员参与,节点需要通过充分授权后才可以接入系统。
在联盟链中,联盟链中的节点可以使用本地时间系统为区块或者交易加盖时间戳,但是在联盟链中缺少全局时钟,进而,联盟链中的各个节点缺少时间基准,导致无法判断区块或交易中加盖的时间戳信息的准确性。
发明内容
有鉴于此,本发明提供一种联盟链的全局时钟系统及方法,以解决在联盟链中缺少全局时钟。进而,联盟链中的各个节点缺少时间基准,导致无法判断区块或交易中加盖的时间戳信息的准确性的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种联盟链的全局时钟系统,包括全局时钟节点、背书节点、排序节点和验证节点;
所述全局时钟节点对接所述背书节点、所述排序节点和所述验证节点所使用的全部时钟源,用于获取每一所述时钟源的时钟信息,依据每一所述时钟源的时钟信息进行时间共识操作,得到共识时间,输出所述共识时间至所述背书节点、所述排序节点和所述验证节点;
所述背书节点,用于依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块;
所述排序节点,用于在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点;
所述验证节点,用于在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。
优选地,所述全局时钟节点用于获取每一所述时钟源的时钟信息,依据每一所述时钟源的时钟信息进行时间共识操作,得到共识时间时,具体用于:
对接所述背书节点、所述排序节点、所述验证节点所使用的时钟源,并为每个所述时间源设置轮训线程,以向所述时钟源获取时钟信息;
依据所述时钟信息以及共识算法,得到所述共识时间。
优选地,所述背书节点用于依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证时,具体用于:
发送第一时钟获取请求至所述全局时钟节点;
接收所述全局时钟节点反馈给所述背书节点的第一时间;所述第一时间为所述共识时间和所述全局时钟节点计算得到所述共识时间的耗时时间之和;
确定发送所述第一时钟获取请求的时间与接收到所述第一时间的时间差;
根据所述时间差以及所述第一时间,计算得到所述背书节点的第一修正时间;
若所述第一修正时间与所述背书节点的本地时间系统的时间的差值未在第一预设时间范围内,确定所述背书节点的本地时间系统不准确,并依据所述第一修正时间,修正所述背书节点的本地时间系统;
若所述第一修正时间与所述背书节点的本地时间系统的时间的差值在第一预设时间范围内,确定所述背书节点的本地时间系统准确。
优选地,所述排序节点用于对所述排序节点的本地时间系统的准确性进行验证以及根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证时,具体用于:
向所述背书节点以及所述全局时钟节点分别发送第二时钟获取请求;
接收所述背书节点反馈的第二时间以及所述全局时钟节点反馈的第三时间;
基于所述第二时间、发送所述第二时钟获取请求以及接收所述第二时间的时间差,计算得到所述背书节点的第二修正时间;
基于所述第三时间、发送所述第二时钟获取请求以及接收所述第三时间的时间差,计算得到所述背书节点的第三修正时间;
若所述第三修正时间与所述排序节点的本地时间系统的时间的差值在第二预设时间范围内,确定所述排序节点的本地时间系统准确;
若所述第三修正时间与所述排序节点的本地时间系统的时间的差值未在第二预设时间范围内,确定所述排序节点的本地时间系统不准确,并基于所述第三修正时间,修正所述排序节点的本地时间系统;
若所述第二修正时间与所述第三修正时间的差值未在第三预设时间范围内、或所述交易添加的时间戳的时间和第一数据传输时间之和与所述第二修正时间的差值未在所述第三预设时间范围内,确定所述背书节点的本地时间系统不准确,并发送时间修正信息至所述背书节点,以使所述背书节点进行时间修正;所述第一数据传输时间为发送所述第二时钟获取请求以及接收所述第二时间的时间差的一半与所述第三时间之和;
若所述第二修正时间与所述第三修正时间的差值在第三预设时间范围内、且所述交易添加的时间戳的时间和第一数据传输时间之和与所述第二修正时间的差值在所述第三预设时间范围内,确定所述背书节点的本地时间系统准确。
优选地,所述验证节点用于对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证时,具体用于:
向所述排序节点以及所述全局时钟节点分别发送第三时钟获取请求;
接收所述排序节点反馈的第四时间以及所述全局时钟节点反馈的第五时间;
基于所述第四时间、发送所述第三时钟获取请求以及接收所述第四时间的时间差,计算得到所述排序节点的第四修正时间;
基于所述第五时间、发送所述第三时钟获取请求以及接收所述第五时间的时间差,计算得到所述排序节点的第五修正时间;
若所述第五修正时间与所述排序节点的本地时间系统的时间的差值在第四预设时间范围内,确定所述排序节点的本地时间系统准确;
若所述第五修正时间与所述排序节点的本地时间系统的时间的差值未在第四预设时间范围内,确定所述排序节点的本地时间系统不准确,并基于所述第五修正时间,修正所述排序节点的本地时间系统;
若所述第四修正时间与所述第五修正时间的差值未在第五预设时间范围内、或所述区块添加的时间戳的时间与第二数据传输时间之和与所述第四修正时间的差值未在所述第五预设时间范围内,确定所述排序节点的本地时间系统不准确,并发送时间修正信息至所述排序节点,以使所述排序节点进行时间修正;所述第二数据传输时间为发送所述第三时钟获取请求以及接收所述第四时间的时间差的一半与所述第五时间之和;
若所述第四修正时间与所述第五修正时间的差值在第五预设时间范围内、且所述区块添加的时间戳的时间与第二数据传输时间之和与所述第四修正时间的差值在所述第五预设时间范围内,确定所述排序节点的本地时间系统准确。
优选地,所述背书节点接收所述同步节点同步的区块之后,还用于:
向所述验证节点以及所述全局时钟节点分别发送第四时钟获取请求;
接收所述排序节点反馈的第六时间以及所述全局时钟节点反馈的第七时间;
基于所述第六时间、发送所述第四时钟获取请求以及接收所述第六时间的时间差,计算得到所述排序节点的第六修正时间;
基于所述第七时间、发送所述第四时钟获取请求以及接收所述第七时间的时间差,计算得到所述排序节点的第七修正时间;
若所述第六修正时间与所述第七修正时间的差值在第六预设时间范围内,确定所述验证节点的本地时间系统准确;
若所述第六修正时间与所述第七修正时间的差值未在第六预设时间范围内,确定所述验证节点的本地时间系统不准确。
一种联盟链的全局时钟方法,应用于上述的全局时钟节点,所述全局时钟方法包括:
对接所述背书节点、所述排序节点、所述验证节点所使用的时钟源,并为每个所述时间源设置轮训线程,以向所述时钟源获取时钟信息;
依据所述时钟信息以及共识算法,得到所述共识时间。
一种联盟链的全局时钟方法,应用于上述的背书节点,所述全局时钟方法包括:
依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证;
若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳;
将加有时间戳的交易发送至所述排序节点。
一种联盟链的全局时钟方法,应用于上述的排序节点,所述全局时钟方法包括:
在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证;
根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证;
若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳;
将加有时间戳的区块发送至所述验证节点。
一种联盟链的全局时钟方法,应用于上述的验证节点,所述全局时钟方法包括:
在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证;
根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证;
若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。
相较于现有技术,本发明具有以下有益效果:
本发明提供了一种联盟链的全局时钟系统及方法,全局时钟节点得到共识时间之后,所述背书节点依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块,所述排序节点在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点,所述验证节点在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。即通过本发明,背书节点、排序节点和验证节点均验证时间同步的准确性,只有在时间同步准确时,才对区块或交易加盖时间戳,保证区块或交易中加盖的时间戳信息的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种联盟链的全局时钟系统的结构示意图;
图2为本发明实施例提供的一种应用于背书节点的联盟链的全局时钟方法的方法流程图;
图3为本发明实施例提供的一种应用于排序节点的联盟链的全局时钟方法的方法流程图;
图4为本发明实施例提供的一种应用于验证节点的联盟链的全局时钟方法的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种联盟链的全局时钟系统,参照图1,包括全局时钟节点、背书节点、排序节点和验证节点;所述全局时钟节点、所述背书节点、所述排序节点和所述验证节点中使用的时钟源至少有三种。
为满足商用在安全和高并发的要求,在公有链模型基础上,联盟链一般将节点进行功能分工,将“去中心化”弱化为“多中心化”,通过加强认证技术和高效共识算法在“安全”、“高效低能”方面寻求提升。比如,Fabric是在比特币区块链模型基础上,将比特币单一节点所承接的背书、排序和验证三个功能进行了拆分,分别独立为三类节点,分别是Peer(Endorser)用于背书;Peer(Comitter)用于验证;Orders节点用于排序,通过保留了部分节点的“中心化”,从而实现交易速度增快,交易成本大幅降低等回报。在成熟的商用联盟链模型中,排序节点常是预先设置的。本实施例在现有的联盟链的基础上,增加了全局时钟节点,背书节点、所述排序节点和所述验证节点仍为原有的节点。增加全局时钟节点是为了保证联盟链中的时间同步。
时钟源主要由三种方式获取,第一种通过卫星获取,如北斗、全球定位系统GPS提供的全球标准时间;第二种通过原子钟,获取原子超精细级跃迁辐射频率定义的“原子时”;第三种是互联网公共服务,比如谷歌Google、微软、中国国家授时中心提供的时间源服务。本实施例中的时钟源至少有三种是指可以从北斗、GPS、原子钟、谷歌Google、微软、中国国家授时中心提供的时间源服务中的至少三种。当所有联盟链节点所信任的时钟源低于三个时,可以放弃全局时钟的稳定性保障,不使用拜占庭容错算法对时钟源获取的时间达成共识。
组成联盟链的各节点会选择不同时钟源服务,一般常由不同机构来组成联盟链,每家机构作为一个联盟链节点,每家机构的自建系统一般均有时钟源服务,每个机构常会选择不同的时钟源。比如金融机构和政府组成的联盟链中,工行也许会选择使用北斗卫星获取时钟服务,建行也许会选择GPS获取时钟服务,中行也许会选择原子钟,政府也许使用的是中国国家授时中心提供的时钟服务。各个机构(节点)使用了不同的时钟源,有多种原因,比如各自监管要求,或者前期投入,或者系统偏好等原因导致的。
为防止某一时钟源被黑客攻击,全局时钟节点需要对接联盟链节点使用的全量时钟源,并运行检测算法,定期检查时钟源准确性。在这里我们选择使用拜占庭容错算法,当时钟源超过三个时,全局时钟节点可使用拜占庭容错算法,只要少于1/3的时钟源不被黑客同时攻破,算法就可以保证全局时钟节点服务稳定。
本实施例中的全局时钟节点、所述背书节点、所述排序节点和所述验证节点的功能分别为:
所述全局时钟节点对接所述背书节点、所述排序节点和所述验证节点所使用的全部时钟源,用于获取每一所述时钟源的时钟信息,依据每一所述时钟源的时钟信息进行时间共识操作,得到共识时间,输出所述共识时间至所述背书节点、所述排序节点和所述验证节点。
可选的,在本实施例的基础上,所述全局时钟节点用于获取每一所述时钟源的时钟信息,依据每一所述时钟源的时钟信息进行时间共识操作,得到共识时间时,具体用于:
对接所述背书节点、所述排序节点、所述验证节点所使用的时钟源,并为每个所述时间源设置轮训线程,以向所述时钟源获取时钟信息;
依据所述时钟信息以及共识算法,得到所述共识时间。
具体的,使用符号T代表时钟源,通过时间源获取的时间用t表示,统计联盟链节点对接的各类时钟源,形成时钟源列表[T1,T2,T3,…],全局时钟节点对接列表中的全部时间源,并为每个时间源设置轮训线程P。线程[P1,P2,P3,…]定期运行,每个子线程Pn对接一个时钟源n,定期执行,向时钟源获取时钟信息,记为tn。另外,在联盟链节点向全局时钟节点提交时间申请时,向全部时钟源获取时间[t1,t2,t3,…]。
获取[t1,t2,t3,…]后,全局时钟节点运行拜占庭容错算法,在少于1/3的时钟源不被黑客同时攻破的前提下,线程[P1,P2,P3,…]对[t1,t2,t3,…]依据共识算法达成全局时间tc共识。
具体的,拜占庭容错算法是一种分布式共识算法,当系统中存在不超过1/3的拜占庭节点时,拜占庭容错算法有解,即分布式系统节点间可以达成共识。全局时钟节点获取[t1,t2,t3,…],就是采用拜占庭容错算法,达成共识的结果就是判断哪个时间t是被所有的时钟源认可的,通过拜占庭容错算法保障全局时钟节点所提供的时间是可靠的。同时,由于算法特性,一旦达成共识,就说明至少2/3的时钟源是准确的。
如果f是N个时间源中被黑客攻击的事件源数量,根据拜占庭容错算法,当N>3f时,全局时钟节点就可以达成全局时间tc共识。全局时钟节点可以执行轮训操作,通过达成共识判断时间源稳定性。
需要说明的是,使用的拜占庭容错算法(PBFT算法)可以被授权拜占庭容错算法(DBFT)、基于消息传递的一致性算法(Paxos算法、Raft算法)等一致性算法替代。
所述背书节点,用于依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块;
所述排序节点,用于在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点;
所述验证节点,用于在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。
对于背书节点、排序节点和验证节点的具体功能介绍,请参见下述实施例。
通过构建联盟链全局时钟模型,在达成共识的过程中实现对区块、交易时间戳信息的强一致,提升全局账本时间戳信息价值。但模型在追求时间戳信息强一致的同时,也增加了达成共识的成本,降低了区块链的交易性能,未来可以根据业务特性,在系统运行过程中动态的选择共识机制。如业务对时间信息不敏感,则系统共识算法中不特别对时间戳信息进行验证,以提升交易处理效率;如业务对时间信息敏感,客户可在发起交易时勾选对应选项,要求系统选择使用文中提到的模型验证机制,确保区块、交易的时间戳信息实现强一致。通过动态选择机制,使基于联盟链的全局时钟模型可以在交易性能和时间戳一致性要求上取得平衡,满足特殊业务场景诉求,有效解决区块链技术在时间敏感类的商务场景中的应用和推广问题。
本实施例中,全局时钟节点得到共识时间之后,所述背书节点依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块,所述排序节点在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点,所述验证节点在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。即通过本发明,背书节点、排序节点和验证节点均验证时间同步的准确性,只有在时间同步准确时,才对区块或交易加盖时间戳,保证区块或交易中加盖的时间戳信息的准确性。
可选的,在上述实施例的基础上,参照图2,所述背书节点用于依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证时,具体用于:
S11、发送第一时钟获取请求至所述全局时钟节点。
具体的,背书节点使用Cristian时钟同步算法,利用全局时钟节点判断本地时间系统的准确性。Cristian时钟同步算法:所有客户端主动去时间服务器请求时钟同步的一种算法。Cristian时钟同步算法可以使用最佳主时钟算法(BMC算法)、SSM算法或NTP协议的过程调用模式替代。
背书节点发起交易之后,会发送第一时钟获取请求至所述全局时钟节点,以获取全局时钟的时间。
S12、接收所述全局时钟节点反馈给所述背书节点的第一时间。
其中,所述第一时间为所述共识时间和所述全局时钟节点计算得到所述共识时间的耗时时间之和。
具体的,若线程[P1,P2,P3,…]是被联盟链节点访问触发启动的,全局时钟节点计算共识时间也需要耗时,称为耗时时间tc',则将tTimers=tc+tc'反馈给发起访问的背书节点,其中,tc为共识时间。
S13、确定发送所述第一时钟获取请求的时间与接收到所述第一时间的时间差。
具体的,背书节点在向全局时钟节点发送第一时钟获取请求时,会根据本地时间系统记录一个发送请求的时间t1,在收到全局时钟节点反馈后,根据本地时间系统记录收到全局时钟节点反馈时间t2,计算两者的差值就是往返时间tE2T=t2-t1,单次往返时间就是tE2T/2,tE2T/2用作修正全局时钟节点返回的tTimers。
S14、根据所述时间差以及所述第一时间,计算得到所述背书节点的第一修正时间。
具体的,第一修正时间t'Timers=tTimers+tE2T/2。
S15、若所述第一修正时间与所述背书节点的本地时间系统的时间的差值未在第一预设时间范围内,确定所述背书节点的本地时间系统不准确,并依据所述第一修正时间,修正所述背书节点的本地时间系统。
S16、若所述第一修正时间与所述背书节点的本地时间系统的时间的差值在第一预设时间范围内,确定所述背书节点的本地时间系统准确。
具体的,使用t'Timers与背书节点的本地时间系统的时间tEndorser进行比较,如差值|t'Timers-tEndorser|>ε,则背书节点的本地时间系统不准确,同步本地时间系统tEndorser,并重复步骤S11-S14,直至|t'Timers-tEndorser|<ε。
需要说明的是,背书节点同步本地时间系统这个操作,在不同的服务器系统使用的指令是不同的,比如在windows操作系统使用w32time指令,unix、Linux操作系统是date指令等等。进行本地系统时间同步的原因是|t'Timers-tEndorser|>ε,背书节点发现本地系统时间与修正后的全局时钟节点差异过大(大于ε,这个组成联盟链时的第一预设时间范围,ε是联盟链节点对时钟偏移率的容忍上限,可根据具体业务要求进行自定义,根据Cristian、Berkeley时钟同步算法经验,建议将ε设置为20ms<ε<25ms),因此必须按照修正后的全局时钟节点进行更新。
当|t'Timers-tEndorser|<ε时,背书节点使用tEndorser为交易加盖时间戳,记为tTrans,并将交易发送至排序节点。
本实施例中,背书节点使用Cristian时钟同步算法,利用全局时钟节点判断本地时间系统的准确性,并在本地时间系统准确时为交易加盖时间戳。
可选的,在上述任一实施例的基础上,参照图3,所述排序节点用于对所述排序节点的本地时间系统的准确性进行验证以及根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证时,具体用于:
S21、向所述背书节点以及所述全局时钟节点分别发送第二时钟获取请求。
S22、接收所述背书节点反馈的第二时间以及所述全局时钟节点反馈的第三时间。
本实施例中,排序节点使用Berkeley时钟同步算法,保障背书节点系统时间与全局时钟节点保持同步,保障交易时间准确性。其中,Berkeley算法的使用环境与Cristian算法有所不同。Cristian算法是用在客户端向服务器请求正确时间的算法。而Berkeley算法是几个客户端之间同步时钟的算法。Berkeley时钟同步算法部分可以被NTP协议的对称调用模式替代
具体的,背书节点对交易加盖时间戳tTrans后,向排序节点发送交易进行排序。
排序节点收到背书节点发送的交易后,使用Berkeley时钟同步算法向全局时钟节点和背书节点发送第二时钟获取请求,获得全局时钟节点反馈的第三时间tTimers和背书节点反馈的第二时间tEndorser。
S23、基于所述第二时间、发送所述第二时钟获取请求以及接收所述第二时间的时间差,计算得到所述背书节点的第二修正时间。
S24、基于所述第三时间、发送所述第二时钟获取请求以及接收所述第三时间的时间差,计算得到所述背书节点的第三修正时间。
具体的,发送所述第二时钟获取请求以及接收所述第三时间的时间差、发送所述第二时钟获取请求以及接收所述第二时间的时间差分别使用往返时间tO2T、tO2E修正,得到第三修正时间t'Timers=tTimers+tO2T/2及第二修正时间t'Endorser=tEndorser+tO2E/2。
S25、若所述第三修正时间与所述排序节点的本地时间系统的时间的差值在第二预设时间范围内,确定所述排序节点的本地时间系统准确。
S26、若所述第三修正时间与所述排序节点的本地时间系统的时间的差值未在第二预设时间范围内,确定所述排序节点的本地时间系统不准确,并基于所述第三修正时间,修正所述排序节点的本地时间系统。
具体的,排序节点使用t'Timers与本地时间系统的时间tOrders进行比较,如|t'Timers-tOrders|>ε,则排序节点同步本地系统时间tOrders。其中,大于ε为第二预设时间范围。若不大于ε,则认为排序节点的本地时间系统准确。
S27、若所述第二修正时间与所述第三修正时间的差值未在第三预设时间范围内、或所述交易添加的时间戳的时间和第一数据传输时间之和与所述第二修正时间的差值未在所述第三预设时间范围内,确定所述背书节点的本地时间系统不准确,并发送时间修正信息至所述背书节点,以使所述背书节点进行时间修正。
其中,所述第一数据传输时间为发送所述第二时钟获取请求以及接收所述第二时间的时间差的一半与所述第三时间之和。
S28、若所述第二修正时间与所述第三修正时间的差值在第三预设时间范围内、且所述交易添加的时间戳的时间和第一数据传输时间之和与所述第二修正时间的差值在所述第三预设时间范围内,确定所述背书节点的本地时间系统准确。
具体的,若|t'Timers-t'Endorser|>ε,或|(t'Timers-tTrans)-(tO2T+tO2E/2)|>ε,则排序节点拒绝接受背书节点提交的交易,并通知背书节点更新本地时间系统,重新发起交易。其中,大于ε为第三预设时间范围。
若|t'Timers-t'Endorser|<ε、且|(t'Timers-tTrans)-(tO2T+tO2E/2)|<ε,说明背书节点的本地时间系统准确。排序节点接受背书节点提交的交易,对交易进行打包,形成区块,并使用本地时间系统的时间tOrders对区块加盖时间戳,记为tBlock,将区块发送至验证节点。
本实施例中,排序节点使用Berkeley时钟同步算法,保障背书节点系统时间与全局时钟节点保持同步,保障交易时间准确性。
可选的,在上述任一实施例的基础上,所述验证节点用于对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证时,具体用于:
向所述排序节点以及所述全局时钟节点分别发送第三时钟获取请求;
接收所述排序节点反馈的第四时间以及所述全局时钟节点反馈的第五时间;
基于所述第四时间、发送所述第三时钟获取请求以及接收所述第四时间的时间差,计算得到所述排序节点的第四修正时间;
基于所述第五时间、发送所述第三时钟获取请求以及接收所述第五时间的时间差,计算得到所述排序节点的第五修正时间;
若所述第五修正时间与所述排序节点的本地时间系统的时间的差值在第四预设时间范围内,确定所述排序节点的本地时间系统准确;
若所述第五修正时间与所述排序节点的本地时间系统的时间的差值未在第四预设时间范围内,确定所述排序节点的本地时间系统不准确,并基于所述第五修正时间,修正所述排序节点的本地时间系统;
若所述第四修正时间与所述第五修正时间的差值未在第五预设时间范围内、或所述区块添加的时间戳的时间与第二数据传输时间之和与所述第四修正时间的差值未在所述第五预设时间范围内,确定所述排序节点的本地时间系统不准确,并发送时间修正信息至所述排序节点,以使所述排序节点进行时间修正;所述第二数据传输时间为发送所述第三时钟获取请求以及接收所述第四时间的时间差的一半与所述第五时间之和;
若所述第四修正时间与所述第五修正时间的差值在第五预设时间范围内、且所述区块添加的时间戳的时间与第二数据传输时间之和与所述第四修正时间的差值在所述第五预设时间范围内,确定所述排序节点的本地时间系统准确。
具体的,在排序节点发布区块后,由验证节点使用Berkeley时钟同步算法验证排序节点的系统时间,以及区块加盖时间戳的准确性。细化步骤如下:
a)排序节点对区块加盖时间戳tBlock后,向验证节点发送区块进行验证。
b)验证节点收到排序节点发送的区块后,使用Berkeley时钟同步算法向全局时钟节点和排序节点发送时间请求,获得全局时钟节点反馈的第五时间tTimers和排序节点反馈的第四时间tOrders,分别使用往返时间tC2T、tC2O修正,得到第五修正时间t'Timers=tTimers+tC2T/2及第六修正时间t'Orders=tOrders+tC2O/2。
c)验证节点使用t'Timers与本地时间系统的时间tComitter进行比较,如|t'Timers-tComitter|>ε,则排序节点同步本地系统时间tComitter。若小于ε,则本地时间系统准确,大于ε为第三预设时间范围。
e)若|t'Timers-t'Orders|>ε,或|(t'Timers-tBlock)-(tC2T+tC2O/2)|>ε,则验证节点拒绝接受排序节点提交的交易,并通知排序节点更新本地系统时间,重新组建区块。
e)若|t'Timers-t'Orders|<ε、且|(t'Timers-tBlock)-(tC2T+tC2O/2)|<ε,验证节点接受排序节点打包的区块,开始向背书节点同步区块。
本实施例中的验证节点的工作过程与上述的排序节点的工作过程类似,请参照上述排序节点的具体解释说明。
本实施例中,验证节点使用Berkeley时钟同步算法,保障排序节点系统时间与全局时钟节点保持同步,保障区块时间准确性。
可选的,在上述任一实施例的基础上,参照图4,所述背书节点接收所述同步节点同步的区块之后,还用于:
S31、向所述验证节点以及所述全局时钟节点分别发送第四时钟获取请求。
S32、接收所述排序节点反馈的第六时间以及所述全局时钟节点反馈的第七时间。
S33、基于所述第六时间、发送所述第四时钟获取请求以及接收所述第六时间的时间差,计算得到所述排序节点的第六修正时间;
S34、基于所述第七时间、发送所述第四时钟获取请求以及接收所述第七时间的时间差,计算得到所述排序节点的第七修正时间;
S35、若所述第六修正时间与所述第七修正时间的差值在第六预设时间范围内,确定所述验证节点的本地时间系统准确;
S36、若所述第六修正时间与所述第七修正时间的差值未在第六预设时间范围内,确定所述验证节点的本地时间系统不准确。
具体的,验证节点完成区块验证后,开始向背书节点同步区块。
背书节点收到验证节点发送的区块后,使用Berkeley时钟同步算法向全局时钟节点和验证节点发送第四时钟获取请求,获得全局时钟节点反馈的第七时间tTimers和验证节点发送的第六时间tComitter,分别使用往返时间tE2T、tE2C修正,得到t'Timers=tTimers+tE2T/2及t'Comitter=tComitter+tE2C/2。
若|t'Timers-t'Comitter|>ε,则背书节点拒绝接受验证节点同步区块,并通知验证节点更新本地系统时间,重新发起交易。
若|t'Timers-t'Comitter|<ε,则背书节点接受验证节点同步区块,完成区块同步。
本实施例中,背书节点使用Berkeley时钟同步算法,保障验证节点系统时间与全局时钟节点保持同步。
可选的,在上述联盟链的全局时钟系统的实施例的基础上,本发明的另一实施例提供了一种联盟链的全局时钟方法,应用于上述的全局时钟节点,所述联盟链的全局时钟方法包括:
对接所述背书节点、所述排序节点、所述验证节点所使用的时钟源,并为每个所述时间源设置轮训线程,以向所述时钟源获取时钟信息;
依据所述时钟信息以及共识算法,得到所述共识时间。
本实施例中,全局时钟节点得到共识时间之后,所述背书节点依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块,所述排序节点在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点,所述验证节点在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。即通过本发明,背书节点、排序节点和验证节点均验证时间同步的准确性,只有在时间同步准确时,才对区块或交易加盖时间戳,保证区块或交易中加盖的时间戳信息的准确性。
可选的,在上述联盟链的全局时钟系统的实施例的基础上,本发明的另一实施例提供了一种联盟链的全局时钟方法,应用于上述的背书节点,所述联盟链的全局时钟方法包括:
依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证;
若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳;
将加有时间戳的交易发送至所述排序节点。
本实施例中,全局时钟节点得到共识时间之后,所述背书节点依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块,所述排序节点在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点,所述验证节点在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。即通过本发明,背书节点、排序节点和验证节点均验证时间同步的准确性,只有在时间同步准确时,才对区块或交易加盖时间戳,保证区块或交易中加盖的时间戳信息的准确性。
可选的,在上述联盟链的全局时钟系统的实施例的基础上,本发明的另一实施例提供了一种联盟链的全局时钟方法,应用于上述的排序节点,所述联盟链的全局时钟方法包括:
在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证;
根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证;
若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳;
将加有时间戳的区块发送至所述验证节点。
本实施例中,全局时钟节点得到共识时间之后,所述背书节点依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块,所述排序节点在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点,所述验证节点在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。即通过本发明,背书节点、排序节点和验证节点均验证时间同步的准确性,只有在时间同步准确时,才对区块或交易加盖时间戳,保证区块或交易中加盖的时间戳信息的准确性。
可选的,在上述联盟链的全局时钟系统的实施例的基础上,本发明的另一实施例提供了一种联盟链的全局时钟方法,应用于上述的验证节点,所述联盟链的全局时钟方法包括:
在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证;
根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证;
若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。
本实施例中,全局时钟节点得到共识时间之后,所述背书节点依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块,所述排序节点在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点,所述验证节点在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。即通过本发明,背书节点、排序节点和验证节点均验证时间同步的准确性,只有在时间同步准确时,才对区块或交易加盖时间戳,保证区块或交易中加盖的时间戳信息的准确性。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种联盟链的全局时钟系统,其特征在于,包括全局时钟节点、背书节点、排序节点和验证节点;
所述全局时钟节点对接所述背书节点、所述排序节点和所述验证节点所使用的全部时钟源,用于获取每一所述时钟源的时钟信息,依据每一所述时钟源的时钟信息进行时间共识操作,得到共识时间,输出所述共识时间至所述背书节点、所述排序节点和所述验证节点;
所述背书节点,用于依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证,若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳,并将加有时间戳的交易发送至所述排序节点,以及接收所述验证节点同步的区块;
所述排序节点,用于在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证、根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证、以及若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳,并将加有时间戳的区块发送至所述验证节点;
所述验证节点,用于在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证、以及若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。
2.根据权利要求1所述的联盟链的全局时钟系统,其特征在于,所述全局时钟节点用于获取每一所述时钟源的时钟信息,依据每一所述时钟源的时钟信息进行时间共识操作,得到共识时间时,具体用于:
对接所述背书节点、所述排序节点、所述验证节点所使用的时钟源,并为每个所述时间源设置轮训线程,以向所述时钟源获取时钟信息;
依据所述时钟信息以及共识算法,得到所述共识时间。
3.根据权利要求1所述的联盟链的全局时钟系统,其特征在于,所述背书节点用于依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证时,具体用于:
发送第一时钟获取请求至所述全局时钟节点;
接收所述全局时钟节点反馈给所述背书节点的第一时间;所述第一时间为所述共识时间和所述全局时钟节点计算得到所述共识时间的耗时时间之和;
确定发送所述第一时钟获取请求的时间与接收到所述第一时间的时间差;
根据所述时间差以及所述第一时间,计算得到所述背书节点的第一修正时间;
若所述第一修正时间与所述背书节点的本地时间系统的时间的差值未在第一预设时间范围内,确定所述背书节点的本地时间系统不准确,并依据所述第一修正时间,修正所述背书节点的本地时间系统;
若所述第一修正时间与所述背书节点的本地时间系统的时间的差值在第一预设时间范围内,确定所述背书节点的本地时间系统准确。
4.根据权利要求1所述的联盟链的全局时钟系统,其特征在于,所述排序节点用于对所述排序节点的本地时间系统的准确性进行验证以及根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证时,具体用于:
向所述背书节点以及所述全局时钟节点分别发送第二时钟获取请求;
接收所述背书节点反馈的第二时间以及所述全局时钟节点反馈的第三时间;
基于所述第二时间、发送所述第二时钟获取请求以及接收所述第二时间的时间差,计算得到所述背书节点的第二修正时间;
基于所述第三时间、发送所述第二时钟获取请求以及接收所述第三时间的时间差,计算得到所述背书节点的第三修正时间;
若所述第三修正时间与所述排序节点的本地时间系统的时间的差值在第二预设时间范围内,确定所述排序节点的本地时间系统准确;
若所述第三修正时间与所述排序节点的本地时间系统的时间的差值未在第二预设时间范围内,确定所述排序节点的本地时间系统不准确,并基于所述第三修正时间,修正所述排序节点的本地时间系统;
若所述第二修正时间与所述第三修正时间的差值未在第三预设时间范围内、或所述交易添加的时间戳的时间和第一数据传输时间之和与所述第二修正时间的差值未在所述第三预设时间范围内,确定所述背书节点的本地时间系统不准确,并发送时间修正信息至所述背书节点,以使所述背书节点进行时间修正;所述第一数据传输时间为发送所述第二时钟获取请求以及接收所述第二时间的时间差的一半与所述第三时间之和;
若所述第二修正时间与所述第三修正时间的差值在第三预设时间范围内、且所述交易添加的时间戳的时间和第一数据传输时间之和与所述第二修正时间的差值在所述第三预设时间范围内,确定所述背书节点的本地时间系统准确。
5.根据权利要求1所述的联盟链的全局时钟系统,其特征在于,所述验证节点用于对所述排序节点的本地时间系统的准确性进行验证、根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证时,具体用于:
向所述排序节点以及所述全局时钟节点分别发送第三时钟获取请求;
接收所述排序节点反馈的第四时间以及所述全局时钟节点反馈的第五时间;
基于所述第四时间、发送所述第三时钟获取请求以及接收所述第四时间的时间差,计算得到所述排序节点的第四修正时间;
基于所述第五时间、发送所述第三时钟获取请求以及接收所述第五时间的时间差,计算得到所述排序节点的第五修正时间;
若所述第五修正时间与所述排序节点的本地时间系统的时间的差值在第四预设时间范围内,确定所述排序节点的本地时间系统准确;
若所述第五修正时间与所述排序节点的本地时间系统的时间的差值未在第四预设时间范围内,确定所述排序节点的本地时间系统不准确,并基于所述第五修正时间,修正所述排序节点的本地时间系统;
若所述第四修正时间与所述第五修正时间的差值未在第五预设时间范围内、或所述区块添加的时间戳的时间与第二数据传输时间之和与所述第四修正时间的差值未在所述第五预设时间范围内,确定所述排序节点的本地时间系统不准确,并发送时间修正信息至所述排序节点,以使所述排序节点进行时间修正;所述第二数据传输时间为发送所述第三时钟获取请求以及接收所述第四时间的时间差的一半与所述第五时间之和;
若所述第四修正时间与所述第五修正时间的差值在第五预设时间范围内、且所述区块添加的时间戳的时间与第二数据传输时间之和与所述第四修正时间的差值在所述第五预设时间范围内,确定所述排序节点的本地时间系统准确。
6.根据权利要求1所述的联盟链的全局时钟系统,其特征在于,所述背书节点接收所述同步节点同步的区块之后,还用于:
向所述验证节点以及所述全局时钟节点分别发送第四时钟获取请求;
接收所述排序节点反馈的第六时间以及所述全局时钟节点反馈的第七时间;
基于所述第六时间、发送所述第四时钟获取请求以及接收所述第六时间的时间差,计算得到所述排序节点的第六修正时间;
基于所述第七时间、发送所述第四时钟获取请求以及接收所述第七时间的时间差,计算得到所述排序节点的第七修正时间;
若所述第六修正时间与所述第七修正时间的差值在第六预设时间范围内,确定所述验证节点的本地时间系统准确;
若所述第六修正时间与所述第七修正时间的差值未在第六预设时间范围内,确定所述验证节点的本地时间系统不准确。
7.一种联盟链的全局时钟方法,其特征在于,应用于如权利要求1所述的全局时钟节点,所述全局时钟方法包括:
对接所述背书节点、所述排序节点、所述验证节点所使用的时钟源,并为每个所述时间源设置轮训线程,以向所述时钟源获取时钟信息;
依据所述时钟信息以及共识算法,得到所述共识时间。
8.一种联盟链的全局时钟方法,其特征在于,应用于如权利要求1所述的背书节点,所述全局时钟方法包括:
依据所述共识时间对所述背书节点的本地时间系统的准确性进行验证;
若验证通过,依据所述背书节点的本地时间系统的时间为交易加时间戳;
将加有时间戳的交易发送至所述排序节点。
9.一种联盟链的全局时钟方法,其特征在于,应用于如权利要求1所述的排序节点,所述全局时钟方法包括:
在接收到加有时间戳的所述交易之后,对所述排序节点的本地时间系统的准确性进行验证;
根据加有时间戳的所述交易,对所述背书节点的本地时间系统的准确性进行再次验证;
若对所述背书节点的本地时间系统的准确性验证通过,使用所述背书节点的本地时间系统对根据所述交易生成的区块加时间戳;
将加有时间戳的区块发送至所述验证节点。
10.一种联盟链的全局时钟方法,其特征在于,应用于如权利要求1所述的验证节点,所述全局时钟方法包括:
在接收到所述区块之后,对所述排序节点的本地时间系统的准确性进行验证;
根据所述区块,对所述排序节点的本地时间系统的准确性进行再次验证;
若对所述排序节点的本地时间系统的准确性验证通过,向所述背书节点同步所述区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910740360.8A CN110442591B (zh) | 2019-08-12 | 2019-08-12 | 一种联盟链的全局时钟系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910740360.8A CN110442591B (zh) | 2019-08-12 | 2019-08-12 | 一种联盟链的全局时钟系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442591A true CN110442591A (zh) | 2019-11-12 |
CN110442591B CN110442591B (zh) | 2021-08-24 |
Family
ID=68434711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910740360.8A Active CN110442591B (zh) | 2019-08-12 | 2019-08-12 | 一种联盟链的全局时钟系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442591B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112668998A (zh) * | 2020-12-23 | 2021-04-16 | 树根互联技术有限公司 | 流程实现方法、装置、系统、电子设备和可读存储介质 |
CN114924617A (zh) * | 2022-06-15 | 2022-08-19 | 深圳前海微众银行股份有限公司 | 一种去中心化系统中的时钟同步方法及装置 |
CN115292419A (zh) * | 2022-10-09 | 2022-11-04 | 深圳市明源云科技有限公司 | 基于poH共识的数据处理方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301546A (zh) * | 2017-05-03 | 2017-10-27 | 北京众享比特科技有限公司 | 随机数生成和应用方法及装置 |
US20170353320A1 (en) * | 2016-02-26 | 2017-12-07 | Apple Inc. | Obtaining and using time information on a secure element (se) |
CN108881169A (zh) * | 2018-05-21 | 2018-11-23 | 西安电子科技大学 | 基于区块链的时间分发和同步方法及系统、数据处理系统 |
US20190043050A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Protection of Information in an Information Exchange |
CN109472596A (zh) * | 2018-10-16 | 2019-03-15 | 中国传媒大学 | 基于交易评估的联盟链共识方法及系统 |
CN109508984A (zh) * | 2018-11-26 | 2019-03-22 | 中国科学院软件研究所 | 一种基于确定性共识与可信时间戳的区块链电子存证方法 |
US10250708B1 (en) * | 2017-12-26 | 2019-04-02 | Akamai Technologies, Inc. | High performance distributed system of record |
-
2019
- 2019-08-12 CN CN201910740360.8A patent/CN110442591B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170353320A1 (en) * | 2016-02-26 | 2017-12-07 | Apple Inc. | Obtaining and using time information on a secure element (se) |
CN107301546A (zh) * | 2017-05-03 | 2017-10-27 | 北京众享比特科技有限公司 | 随机数生成和应用方法及装置 |
US10250708B1 (en) * | 2017-12-26 | 2019-04-02 | Akamai Technologies, Inc. | High performance distributed system of record |
CN108881169A (zh) * | 2018-05-21 | 2018-11-23 | 西安电子科技大学 | 基于区块链的时间分发和同步方法及系统、数据处理系统 |
US20190043050A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Protection of Information in an Information Exchange |
CN109472596A (zh) * | 2018-10-16 | 2019-03-15 | 中国传媒大学 | 基于交易评估的联盟链共识方法及系统 |
CN109508984A (zh) * | 2018-11-26 | 2019-03-22 | 中国科学院软件研究所 | 一种基于确定性共识与可信时间戳的区块链电子存证方法 |
Non-Patent Citations (1)
Title |
---|
丁伟等: "能源区块链的关键技术及信息安全问题研究", 《中国电机工程学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112668998A (zh) * | 2020-12-23 | 2021-04-16 | 树根互联技术有限公司 | 流程实现方法、装置、系统、电子设备和可读存储介质 |
CN112668998B (zh) * | 2020-12-23 | 2023-12-19 | 树根互联股份有限公司 | 流程实现方法、装置、系统、电子设备和可读存储介质 |
CN114924617A (zh) * | 2022-06-15 | 2022-08-19 | 深圳前海微众银行股份有限公司 | 一种去中心化系统中的时钟同步方法及装置 |
CN114924617B (zh) * | 2022-06-15 | 2024-04-26 | 深圳前海微众银行股份有限公司 | 一种去中心化系统中的时钟同步方法及装置 |
CN115292419A (zh) * | 2022-10-09 | 2022-11-04 | 深圳市明源云科技有限公司 | 基于poH共识的数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110442591B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wan et al. | Recent advances in consensus protocols for blockchain: a survey | |
CN110442591A (zh) | 一种联盟链的全局时钟系统及方法 | |
US20210295321A1 (en) | Methods for decentralized digital asset transfer and smart contract state transition | |
EP2378718B1 (en) | Method, node and system for controlling version in distributed system | |
EP3698518B1 (en) | Primary and secondary blockchain device | |
TWI793696B (zh) | 具有短完結時間之高吞吐量區塊鏈共識系統、電腦實施方法以及非暫時性電腦可讀媒體 | |
US8006094B2 (en) | Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes | |
WO2021244208A1 (zh) | 区块链的提案消息处理方法、装置、设备以及存储介质 | |
CN101359238B (zh) | 一种多核系统的时间同步方法及系统 | |
US20200134578A1 (en) | Blockchain consensus systems and methods involving a time parameter | |
WO2008128473A1 (fr) | Procédé et système de mise à jour d'un stock de mots utilisateur de manière synchrone | |
US7454521B2 (en) | Byzantine fault quantifying clock synchronization | |
CN112100282B (zh) | 联盟链的数据同步方法、装置、可读介质及电子设备 | |
CN114723438B (zh) | 一种钱包系统及交易方法 | |
CN111555860B (zh) | 一种区块链节点共识方法、装置、电子设备及存储介质 | |
CN114913013B (zh) | 一种基于区块链的租房交易系统及租房交易方法 | |
CN1409837A (zh) | 使用交互式汇聚实现容错的时钟同步的系统和方法 | |
CN107547160B (zh) | 一种时间同步方法及装置 | |
Li et al. | Crux—A New Fast, Flexible and Decentralized Consensus Algorithm with High Fault Tolerance Rate | |
CN110071778A (zh) | 一种对时方法、装置、设备及介质 | |
WO2020160933A1 (en) | Facilitating precision time protocol use in a coordinated timing network | |
CN116846916B (zh) | 数据同步方法、装置、电子设备及计算机可读存储介质 | |
CN103973723A (zh) | 一种集中式科学数据同步的方法和系统 | |
An et al. | Research on Byzantine Fault Tolerant algorithm based on Node Weights | |
US11775553B2 (en) | Data integrity of replicated databases |
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 |