CN112750041B - 一种确保区块链交易时间戳一致的方法及系统 - Google Patents
一种确保区块链交易时间戳一致的方法及系统 Download PDFInfo
- Publication number
- CN112750041B CN112750041B CN202110365754.7A CN202110365754A CN112750041B CN 112750041 B CN112750041 B CN 112750041B CN 202110365754 A CN202110365754 A CN 202110365754A CN 112750041 B CN112750041 B CN 112750041B
- Authority
- CN
- China
- Prior art keywords
- transaction
- request
- timestamp
- server
- equipment
- 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
- 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
-
- 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
- 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
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种确保区块链交易时间戳一致的方法及系统,该方法包括:服务器基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。通过多个服务器联动,使得跨链通信平台中的各核心设备均保持了同步的时间戳,避免了物理时钟的差异导致的时间戳问题。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种确保区块链交易时间戳一致的方法及系统。
背景技术
为了实现跨链交易,整个区块链网络中的节点被人为的划分为多个独立的联盟链系统,即共识共识区块链或者叫共识单链,在一个高负载、高强度、大容量、可扩展的联盟链系统中,不会减弱共识区块链原本的去中心化和安全性。共识单链内部通过共识算法达成共识,且不与其他共识单链做交互,形成一个单独的闭环,每个共识单链负责自己的部分交易,处理自己的核心数据。
实现跨链通信的跨链通信平台整体架构呈现星型模式,跨链通信平台中的服务器则是整个架构的核心,负责与各个共识单链沟通,打通共识单链之间的孤岛。不同的服务器处理跨链交易和链内交易时,会对交易进行分解,并对分解后的交易的报文头中写入本服务器处理的时间戳,该时间戳可以单独作为确定当时区块链网络状态的依据,进而基于相应的区块链网络状态进行资源处理者区块链的溯源,但是不同的服务器设备间可能存在时间快慢不一致,且当服务器以主从服务器进行分工合作、以及服务器通过代理网关与外界交互的情况下,这种同时存在主服务器、从服务器、代理网关的跨链通信平台将会使时间戳不一致的负面效果放大,导致交易溯源时的准确性大大下降。
发明内容
本发明要解决的技术问题是,提供一种确保区块链交易时间戳一致的方法及系统,实现各服务器设备之间的处理时间戳同步。
本发明采用的技术方案是,所述确保区块链交易时间戳一致的方法,包括:
服务器基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;
设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;
若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。
可选的,所述交易请求包括:跨链交易请求或链内交易请求;
所述方法还包括:
所述服务器在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头的唯一性。
可选的,在服务器分为主服务器和从服务器,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下,所述方法还包括:
当主服务器接收到从服务器发来的交易完成后的回调通知消息、以及当从服务器接收到主服务器发来的分解交易请求时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;
所述第二设定方式,包括:
对接收到的消息或请求的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;
若所述时间戳更新为接收到的消息或请求的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;
若目前的所述时间戳已为最新者,则自增序列值加一。
可选的,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下,所述方法还包括:
当主服务器接收到客户端发来的交易查询请求消息、以及当从服务器接收到主服务器发来的分解交易查询请求时,均按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送出的消息中的时间信息进行更新。
可选的,在服务器均是通过代理网关与外界的区块链和客户端交互的情况下,所述方法,还包括:
当所述代理网关接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。
本发明还提供一种确保区块链交易时间戳一致的系统,包括:
服务器,用于基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;
设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;
若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。
可选的,所述交易请求包括:跨链交易请求或链内交易请求;
所述服务器,还用于在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头的唯一性。
可选的,在服务器分为主服务器和从服务器,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下:
所述主服务器,用于接收到从服务器发来的交易完成后的回调通知消息时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;
所述从服务器,用于接收到主服务器发来的分解交易请求时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;
所述第二设定方式,包括:
对接收到的请求或消息的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;
若所述时间戳更新为接收到的请求或消息的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;
若目前的所述时间戳已为最新者,则自增序列值加一。
可选的,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下:
所述主服务器,用于接收到客户端发来的交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续对发送出的分解交易查询请求中的时间信息进行更新;
所述从服务器,用于接收到主服务器发来的分解交易查询请求时,按照第二设定方式更新本设备处理的时间戳,以便对后续对发送出的消息中的时间信息进行更新。
可选的,所述系统,还包括代理网关;在服务器均是通过代理网关与外界的区块链和客户端交互的情况下:
所述代理网关,用于接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。
采用上述技术方案,本发明至少具有下列优点:
本发明所述确保区块链交易时间戳一致的方法及系统,混合了物理时钟和逻辑时钟的特点,能够实现下面几个目的:
1.满足逻辑上的因果一致性,这一点在区块链上尤其重要,因为一个交易的输入必然是上一个交易的输出,两者在逻辑上满足happened-before的规则。
2.各设备节点存储的时钟在存储上占用O(1)的算法复杂度的空间,而传统的向量时钟使用的存储空间大小则是O(n)的算法复杂度空间,n为分布式系统下的设备节点个数。
3.单个设备节点上的逻辑时钟与物理时钟的大小有确定的边界,不保证本发明的确保时间戳一致的方法不会退化为简单的逻辑时钟,并且只要两次操作的间隔大于这个确定的边界就可以保证其因果一致性。
4.通过多个服务器联动、以及主从服务器与代理网关等设备的联动,使得跨链通信平台中的各核心设备均保持了同步的时间戳,避免了物理时钟的差异导致的时间戳问题,同时,还考虑到报文头中相同时间戳下的自增序列的按逻辑先后顺序自增、以及在更新了时间戳的情况下重新进行自增序列的递增,以使自增序列能够正确用于区分同一时间戳内该设备所处理的不同资源。
附图说明
图1 为本发明第一实施例的确保区块链交易时间戳一致的方法中的第一设定方式示意图;
图2 为本发明第一实施例的确保区块链交易时间戳一致的方法中的第二设定方式示意图;
图3 为本发明第三实施例跨链交易XTX报文头格式示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明第一实施例,一种确保区块链交易时间戳一致的方法,包括以下具体步骤:
服务器基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;
如图1所示,所述第一设定方式,包括:
S1:设所述时间戳的初始值和自增序列的初始值均为零;
S2:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;
S3:若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。
可选的,所述交易请求包括:跨链交易请求或链内交易请求;
所述方法还包括:
步骤2,所述服务器在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头信息的唯一性。设备的身份信息可以包含设备所述的联盟编号和设备的机器号等,这些信息的位数越长,越能确保报文头信息的唯一性,因为服务器在基于分解交易请求的报文头进行溯源时是需要报文头信息的唯一性,才能准确溯源到相应的区块链上。
可选的,本发明实施例中,还可以提供一个主从服务器分工合作的情况,具体的,服务器分为主服务器和从服务器两种角色,在实现跨链交易或链内交易时,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下,所述方法还包括:
当主服务器接收到从服务器发来的交易完成后的回调通知消息、以及当从服务器接收到主服务器发来的分解交易请求时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;因为当区块链完成分解交易对应的资源锁定或资源释放操作之后,会通知从服务器操作已成功,这时从服务器再将交易完成后的回调通知消息发送给主服务器。分解交易请求包括:交易输入请求和交易输出请求。
所述第二设定方式,包括:
S4:对接收到的消息或请求的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;
S5:基于S4中的更新情况,若所述时间戳更新为接收到的消息或请求的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;
S6:基于S4中的更新情况,若目前的所述时间戳因已为最新者而未更新,则自增序列值加一。
可选的,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下,所述方法还包括:
当主服务器接收到客户端发来的交易查询请求消息、以及当从服务器接收到主服务器发来的分解交易查询请求时,均按照第二设定方式更新本设备处理的时间戳,以便对后续对发送出的消息中的时间信息进行更新。
可选的,在服务器均是通过代理网关与外界的区块链和客户端交互的情况下,所述方法,还包括:
当所述代理网关接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。
在本发明实施例中,只有主服务器需要同时更新时间戳和自增序列,因为主服务器需要将这两个信息写入交易输出请求的报文头中,以便做下一步的溯源,而其他设备无须将自增序列信息写入请求或消息的报文头,而只需及时更新时间戳。下面介绍以下溯源的过程:
本领域公知的,在本次交易中作为交易输入的资源来源于前一次交易中作为交易输出的该资源。
可选的,所述交易输入请求的报文头信息包括:处理同一资源的前一次交易的服务器写入的:该服务器处理前一次交易的时间戳、该服务器的身份信息、自增序列;
服务器根据所述交易输入请求的报文头信息中的所述时间戳确定出对应的分片组元信息,在确定出的分片组元信息的基础上,采用一致性哈希散列算法将所述交易输入请求路由到对应的区块链;
所述分片组元信息即为一段时间内区块链网络中所有区块链信息,一旦某一时段区块链数量有新增,就生成新的与该时段对应的分片组元信息。
同理,所述服务器根据所述交易输出请求的报文头信息中的所述时间戳确定出对应的分片组元信息,在确定出的分片组元信息的基础上,采用一致性哈希散列算法将所述交易输出请求路由到对应的区块链。
所述交易输出请求的所述报文头信息包括:处理同一资源的本次交易的服务器写入的:服务器处理本次交易的时间戳、该服务器的身份信息、自增序列。
进一步的,无论是针对分解交易请求为交易输入请求还是交易输出请求,均是采用一致性哈希散列算法将分解交易请求路由到对应的区块链,具体包括:
对分解交易请求的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。
本发明第二实施例,与第一实施例对应,本实施例介绍一种确保区块链交易时间戳一致的系统,包括以下组成部分:
服务器,用于基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;
设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;
若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一。
可选的,所述交易请求包括:跨链交易请求或链内交易请求;
所述服务器,还用于在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头信息的唯一性。
可选的,在服务器分为主服务器和从服务器,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下:
所述主服务器,用于接收到从服务器发来的交易完成后的回调通知消息时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;
所述从服务器,用于接收到主服务器发来的分解交易请求时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;
所述第二设定方式,包括:
对接收到的请求或消息的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;
若所述时间戳更新为接收到的请求或消息的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;
若目前的所述时间戳已为最新者,则自增序列值加一。
可选的,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下:
所述主服务器,用于接收到客户端发来的交易查询请求时,按照第二设定方式更新本设备处理的时间戳,以便对后续对发送出的分解交易查询请求中的时间信息进行更新;
所述从服务器,用于接收到主服务器发来的分解交易查询请求时,按照第二设定方式更新本设备处理的时间戳,以便对后续对发送出的消息中的时间信息进行更新。
可选的,所述系统,还包括代理网关;在服务器均是通过代理网关与外界的区块链和客户端交互的情况下:
所述代理网关,用于接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。
本发明第三实施例,本实施例是在上述实施例的基础上,以处理跨链交易为例,结合附图3介绍一个本发明的应用实例。
本实施例对跨链交易请求的报文头格式做出限定,克服了分布式时钟的缺陷,保障了跨链交易的唯一性以及交易分片的准确性。
对于一个跨链交易的交易输入、交易输入上分片字段的格式要求,用报文头XTX格式做统一表述,表示跨链输入输出中用于分片的字段格式。XTX格式需要使用64bit的整型,结合联盟链的组织架构的特性,其格式如图3所示。XTX格式的高32bit以混合逻辑时间戳的方式做自增,在服务器中使用到秒级时间戳即可满足日常业务的需求;在中间16bit按联盟编号和联盟内机器号做分配,对应分布式系统上的对应节点的编号,防止不同设备节点上由于其余位置的bit相同而导致的XTX格式冲突的事情发生,从而避免影响到分片效果和分片后的处理流程;在低16bit的数据上,在单节点上采用加锁的方式避免单节点上的序号冲突。
上述规定的协议格式并不是要按照要求一成不变的处理,比如需要更精准的时间戳可能需要用到高48bit的信息,或者需要增加到数十万台节点,又或者单个机器的处理QPS(每秒查询率,Query Per Second)需要增加时,整个XTX格式也应该进一步的增加到128bit来完成分配。所以对于整个XTX直接以时间增量划分即可寻找到对应的分片组元信息,然后对于整个XTX做一致性Hash路由到对应的区块链上即可。
然而,这样规定格式还是远远不够的,因为区块链天然的就是对时间敏感的系统,在P2P分布式系统的条件下,并不能保证每台机器上时钟的正确性,即无法确保其物理时钟的正确。由于不同机器的硬件设备的不同或者老化,不同机器上的时钟本身就存在偏差,累积下来一天的误差可能会有毫秒或者秒级,并且时常会有时钟调整、回拨的情况发生,所以需要有机制对于不同机器时钟进行同步,使得机器时间进行相对统一。基于跨链交易分片路由方案,放弃了算法加物理硬件支持的方式来获得一个准确的时间戳,而采用了混合逻辑时钟来做不同机器上时间的同步,并根据区块链系统自身的特点,设计出了混合逻辑唯一时间戳来保证分片的准确性。
混合了物理时钟和逻辑时钟的特点,能够实现下面几个目的:
1.满足逻辑上的因果一致性,这一点在区块链上尤其重要,因为一个交易的输入必然是上一个交易的输出,两者在逻辑上满足happened-before的规则。
2.节点存储的时钟在存储上占用O(1)的空间,而传统的向量时钟使用的存储空间大小则是O(n),n为分布式系统下的节点个数。
3.单个节点上的逻辑时钟与物理时钟的大小有确定的边界,不保证HLUT不会退化为简单的逻辑时钟,并且只要两次操作的间隔大于这个确定的边界就可以保证其因果一致性。
时间戳一致算法的过程中,以F表示XTX格式的高位,以B表示XTX格式的低位。为了叙述方便,先不考虑中间位,因为中间位只参与到序列号唯一性的保障当中。每个节点会保留当前收到或者发送的F和B的全局最大值Fmax,Bmax。
在做初始化的时候,Fmax:=0,Bmax:=0,即将全局高低位都初始化为0。
当发送或者本节点事件发生的时候,会更新F,其更新规则是将全局Fmax与当前物理时间戳PT做比较,取更大值来更新全局Fmax,如果全局Fmax大于当前物理时间戳PT,那么需要将B加一来保障节点上序列的唯一性;否则需要将全局Bmax置为0。在收到其他节点事件时,会根据全局Fmax、收到的事件消息/请求的报文头中的时间信息Fcurr和当前的物理时间戳来做比较,取更大值来更新全局Fmax,此时如果Fmax有了变化,那么就将全局Bmax置为0;其他情况,只要Fmax没有变化,无论是PT或者Fcurr还是Fmax所影响的导致没有发生变化,都需要将全局Bmax加一,来保证节点上序号的唯一性。通过这种时间戳加上序号的方式,XTX格式在高位做混合逻辑时间戳的更新,在低位做序号的更新或者重置,保证了混合逻辑时钟和PT的差值有确定的边界,并且统一了各个节点之间的时间戳,使得跨链通信平台的分片方案得以正确运行。
时间戳一致算法得以正确运行的一个大前提是,在区块链或者超链通信平台系统中,节点与节点之间的信息交换是频繁的。也正是由于区块链和超链平台具备这样的特性,才使得时间戳一致算法具备线性一致性。
本发明第四实施例,本实施例的确保区块链交易时间戳一致的方法的流程与第一、二或三实施例相同,区别在于,在工程实现上,本实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的所述方法可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台设备(可以是基站等网络设备)执行本发明实施例所述的方法。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (8)
1.一种确保区块链交易时间戳一致的方法,其特征在于,包括:
服务器基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;
设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;
若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一;
在服务器分为主服务器和从服务器,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下,所述方法还包括:
当主服务器接收到从服务器发来的交易完成后的回调通知消息、以及当从服务器接收到主服务器发来的分解交易请求时,按照第二设定方式更新本设备处理的时间戳、以及自增序列,且只有主服务器需要同时更新时间戳和自增序列,其他设备只需及时更新时间戳;
所述第二设定方式,包括:
对接收到的消息或请求的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;
若所述时间戳更新为接收到的消息或请求的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;
若目前的所述时间戳已为最新者,则自增序列值加一。
2.根据权利要求1所述的方法,其特征在于,所述交易请求包括:跨链交易请求或链内交易请求;
所述方法还包括:
所述服务器在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头的唯一性。
3.根据权利要求1所述的方法,其特征在于,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下,所述方法还包括:
当主服务器接收到客户端发来的交易查询请求消息、以及当从服务器接收到主服务器发来的分解交易查询请求时,均按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送出的消息中的时间信息进行更新。
4.根据权利要求1所述的方法,其特征在于,在服务器均是通过代理网关与外界的区块链和客户端交互的情况下,所述方法,还包括:
当所述代理网关接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。
5.一种确保区块链交易时间戳一致的系统,其特征在于,包括:
服务器,用于基于交易请求进行交易分解,在分解后得到的交易输出请求的报文头中按照第一设定方式更新并写入本设备处理的时间戳、以及自增序列,所述自增序列用于区分同一时间戳内该设备所处理的不同资源;
设所述时间戳的初始值和自增序列的初始值均为零,所述第一设定方式,包括:若所述时间戳早于或等于本设备的物理时钟时间,则所述时间戳取所述物理时钟时间,自增序列值取零;
若所述时间戳晚于本设备的物理时钟时间,则自增序列值加一;
在服务器分为主服务器和从服务器,由主服务器负责进行交易分解得到分解交易请求,由从服务器负责对分解交易请求溯源到对应的区块链的情况下:
所述主服务器,用于接收到从服务器发来的交易完成后的回调通知消息时,按照第二设定方式更新本设备处理的时间戳、以及自增序列;
所述从服务器,用于接收到主服务器发来的分解交易请求时,按照所述第二设定方式更新本设备处理的时间戳;
所述第二设定方式,包括:
对接收到的请求或消息的报文头中的时间信息、本设备的物理时钟时间以及目前的所述时间戳进行比较,用其中的最新者更新所述时间戳;
若所述时间戳更新为接收到的请求或消息的报文头中的时间信息、或者本设备的物理时钟时间,则自增序列值取零;
若目前的所述时间戳已为最新者,则自增序列值加一。
6.根据权利要求5所述的系统,其特征在于,所述交易请求包括:跨链交易请求或链内交易请求;
所述服务器,还用于在分解后得到的交易输出请求的报文头中写入本设备身份信息,用于进一步确保所述报文头的唯一性。
7.根据权利要求5所述的系统,其特征在于,由主服务器负责对交易查询请求进行分解得到分解交易查询请求,由从服务器负责对分解交易查询请求溯源到对应的区块链的情况下:
所述主服务器,用于接收到客户端发来的交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续对发送出的分解交易查询请求中的时间信息进行更新;
所述从服务器,用于接收到主服务器发来的分解交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续对发送出的消息中的时间信息进行更新。
8.根据权利要求5所述的系统,其特征在于,所述系统,还包括代理网关;在服务器均是通过代理网关与外界的区块链和客户端交互的情况下:
所述代理网关,用于接收到服务器即将溯源到相应区块链的分解交易请求或分解交易查询请求时,按照所述第二设定方式更新本设备处理的时间戳,以便对后续发送给服务器的交易查询请求或者交易完成后的回调通知消息中的时间信息进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110365754.7A CN112750041B (zh) | 2021-04-06 | 2021-04-06 | 一种确保区块链交易时间戳一致的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110365754.7A CN112750041B (zh) | 2021-04-06 | 2021-04-06 | 一种确保区块链交易时间戳一致的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112750041A CN112750041A (zh) | 2021-05-04 |
CN112750041B true CN112750041B (zh) | 2021-06-29 |
Family
ID=75651722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110365754.7A Active CN112750041B (zh) | 2021-04-06 | 2021-04-06 | 一种确保区块链交易时间戳一致的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112750041B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726597A (zh) * | 2018-12-29 | 2019-05-07 | 杭州趣链科技有限公司 | 基于区块链的可信时间戳系统 |
CN112350830A (zh) * | 2020-10-19 | 2021-02-09 | 蒋秀英 | 一种区块链时间戳验证系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7926103B2 (en) * | 2003-06-05 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | System and method for preventing replay attacks |
-
2021
- 2021-04-06 CN CN202110365754.7A patent/CN112750041B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726597A (zh) * | 2018-12-29 | 2019-05-07 | 杭州趣链科技有限公司 | 基于区块链的可信时间戳系统 |
CN112350830A (zh) * | 2020-10-19 | 2021-02-09 | 蒋秀英 | 一种区块链时间戳验证系统 |
Non-Patent Citations (1)
Title |
---|
分布式时钟同步之:逻辑时钟、向量时钟、混合逻辑时钟(三);鸡红柿炒西蛋;《https://blog.csdn.net/nongkenken4946/article/details/109774520》;20201118;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112750041A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7836015B1 (en) | Fast synchronization of computer databases using coverage status | |
US20040153473A1 (en) | Method and system for synchronizing data in peer to peer networking environments | |
CN103634092A (zh) | Cpu集群中的高精度定时器 | |
US11640261B2 (en) | Log processing method to avoid log collision, and related device and system | |
CN111143382A (zh) | 数据处理方法、系统和计算机可读存储介质 | |
US10509801B2 (en) | Selective data synchronization and transfer to remote distributed database servers | |
US20170272190A1 (en) | Time synchronization method and apparatus for network devices and time synchronization server | |
US10091288B2 (en) | Ordered execution of tasks | |
CN113193947A (zh) | 实现分布式全局序的方法、设备、介质及程序产品 | |
CN112750041B (zh) | 一种确保区块链交易时间戳一致的方法及系统 | |
EP2761794A1 (en) | Method for a clock-rate correction in a network consisting of nodes | |
KR20210051604A (ko) | 딥러닝 분산 학습 시스템 및 동작 방법 | |
CN110912979B (zh) | 一种解决多服务器资源同步冲突方法 | |
CN113190620A (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
CN110071778B (zh) | 一种对时方法、装置、设备及介质 | |
CN110935168B (zh) | 用于全球同服架构的分布式id生成方法、装置及设备 | |
CN115189931A (zh) | 一种分布式密钥管理方法、装置、设备、存储介质 | |
CN114363357A (zh) | 一种基于Gossip的分布式数据库网络连接管理方法 | |
US20210357271A1 (en) | Synchronization of data processing in a calculating system | |
CN110661857B (zh) | 一种数据同步方法和装置 | |
CN114706923A (zh) | 数据同步方法、装置、电子设备和存储介质 | |
CN115221245B (zh) | 智能数据采集同步方法、系统及设备 | |
CN114157380B (zh) | Znbase分布式数据库时钟同步方法及系统 | |
US10880150B1 (en) | Node-indexed system, apparatus and method configured to sequence client events within a peer-to-peer network | |
CN112511493B (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 |