一种确保区块链交易时间戳一致的方法及系统技术方案

技术编号:28322655 阅读:26 留言:0更新日期:2021-05-04 13:03
本发明专利技术提出了一种确保区块链交易时间戳一致的方法及系统,该方法包括:服务器基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。通过多个服务器联动,使得跨链通信平台中的各核心设备均保持了同步的时间戳,避免了物理时钟的差异导致的时间戳问题。

【技术实现步骤摘要】
一种确保区块链交易时间戳一致的方法及系统
本专利技术涉及区块链
,尤其涉及一种确保区块链交易时间戳一致的方法及系统。
技术介绍
为了实现跨链交易,整个区块链网络中的节点被人为的划分为多个独立的联盟链系统,即共识共识区块链或者叫共识单链,在一个高负载、高强度、大容量、可扩展的联盟链系统中,不会减弱共识区块链原本的去中心化和安全性。共识单链内部通过共识算法达成共识,且不与其他共识单链做交互,形成一个单独的闭环,每个共识单链负责自己的部分交易,处理自己的核心数据。实现跨链通信的跨链通信平台整体架构呈现星型模式,跨链通信平台中的服务器则是整个架构的核心,负责与各个共识单链沟通,打通共识单链之间的孤岛。不同的服务器处理跨链交易和链内交易时,会对交易进行分解,并对分解后的交易的报文头中写入本服务器处理的时间戳,该时间戳可以单独作为确定当时区块链网络状态的依据,进而基于相应的区块链网络状态进行资源处理者区块链的溯源,但是不同的服务器设备间可能存在时间快慢不一致,且当服务器以主从服务器进行分工合作、以及服务器通过代理网关与外界交互的情况下,这种同时存在主服务器、从服务器、代理网关的跨链通信平台将会使时间戳不一致的负面效果放大,导致交易溯源时的准确性大大下降。
技术实现思路
本专利技术要解决的技术问题是,提供一种确保区块链交易时间戳一致的方法及系统,实现各服务器设备之间的处理时间戳同步。本专利技术采用的技术方案是,所述确保区块链交易时间戳一致的方法,包括:服务器基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。可选的,所述交易请求包括:跨链交易请求或链内交易请求;所述方法还包括:所述服务器在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头的唯一性。可选的,在服务器分为主服务器和从服务器,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下,所述方法还包括:当主服务器接收到从服务器发来的交易完成后的回调通知消息、以及当从服务器接收到主服务器发来的分解交易请求时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;所述第二设定方式,包括:对接收到的消息或请求的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;若所述时间戳更新为接收到的消息或请求的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;若目前的所述时间戳已为最新者,则自增序列值加一。可选的,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下,所述方法还包括:当主服务器接收到客户端发来的交易查询请求消息、以及当从服务器接收到主服务器发来的分解交易查询请求时,均按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送出的消息中的时间信息进行更新。可选的,在服务器均是通过代理网关与外界的区块链和客户端交互的情况下,所述方法,还包括:当所述代理网关接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。本专利技术还提供一种确保区块链交易时间戳一致的系统,包括:服务器,用于基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。可选的,所述交易请求包括:跨链交易请求或链内交易请求;所述服务器,还用于在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头的唯一性。可选的,在服务器分为主服务器和从服务器,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下:所述主服务器,用于接收到从服务器发来的交易完成后的回调通知消息时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;所述从服务器,用于接收到主服务器发来的分解交易请求时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;所述第二设定方式,包括:对接收到的请求或消息的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;若所述时间戳更新为接收到的请求或消息的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;若目前的所述时间戳已为最新者,则自增序列值加一。可选的,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下:所述主服务器,用于接收到客户端发来的交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续对发送出的分解交易查询请求中的时间信息进行更新;所述从服务器,用于接收到主服务器发来的分解交易查询请求时,按照第二设定方式更新本设备处理的时间戳,以便对后续对发送出的消息中的时间信息进行更新。可选的,所述系统,还包括代理网关;在服务器均是通过代理网关与外界的区块链和客户端交互的情况下:所述代理网关,用于接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。采用上述技术方案,本专利技术至少具有下列优点:本专利技术所述确保区块链交易时间戳一致的方法及系统,混合了物理时钟和逻辑时钟的特点,能够实现下面几个目的:1.满足逻辑上的因果一致性,这一点在区块链上尤其重要,因为一个交易的输入必然是上一个交易的输出,两者在逻辑上满足happened-before的规则。2.各设备节点存储的时钟在存储上占用O(1)的算法复杂度的空间,而传统的向量时钟使用的存储空间大小则是O(n)的算法复杂度空间,n为分布式系统下的设备节点个数。3.单个设备节点上的逻辑时钟与物理时钟的大小有确定的边界,不保证本专利技术本文档来自技高网...

【技术保护点】
1.一种确保区块链交易时间戳一致的方法,其特征在于,包括:/n服务器基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;/n设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;/n若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。/n

【技术特征摘要】
1.一种确保区块链交易时间戳一致的方法,其特征在于,包括:
服务器基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;
设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;
若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。


2.根据权利要求1所述的方法,其特征在于,所述交易请求包括:跨链交易请求或链内交易请求;
所述方法还包括:
所述服务器在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头的唯一性。


3.根据权利要求1所述的方法,其特征在于,在服务器分为主服务器和从服务器,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下,所述方法还包括:
当主服务器接收到从服务器发来的交易完成后的回调通知消息、以及当从服务器接收到主服务器发来的分解交易请求时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;
所述第二设定方式,包括:
对接收到的消息或请求的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;
若所述时间戳更新为接收到的消息或请求的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;
若目前的所述时间戳已为最新者,则自增序列值加一。


4.根据权利要求3所述的方法,其特征在于,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下,所述方法还包括:
当主服务器接收到客户端发来的交易查询请求消息、以及当从服务器接收到主服务器发来的分解交易查询请求时,均按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送出的消息中的时间信息进行更新。


5.根据权利要求3所述的方法,其特征在于,在服务器均是通过代理网关与外界的区块链和客户端交互的情况下,所述方法,还包括:
当所述代理网关接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。


6.一种确保区块链交易时间戳一致的系统,其特征在于,包括:
服务器,...

【专利技术属性】
技术研发人员:陈昱晓张朝栋
申请(专利权)人:北京万物智链科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1