CN114924617B - 一种去中心化系统中的时钟同步方法及装置 - Google Patents
一种去中心化系统中的时钟同步方法及装置 Download PDFInfo
- Publication number
- CN114924617B CN114924617B CN202210677061.6A CN202210677061A CN114924617B CN 114924617 B CN114924617 B CN 114924617B CN 202210677061 A CN202210677061 A CN 202210677061A CN 114924617 B CN114924617 B CN 114924617B
- Authority
- CN
- China
- Prior art keywords
- clock
- transaction
- node
- function
- logic
- 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 135
- 238000004364 calculation method Methods 0.000 claims abstract description 69
- 238000012795 verification Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims description 220
- 230000008569 process Effects 0.000 claims description 79
- 238000003860 storage Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000010200 validation analysis Methods 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- 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/3827—Use of message hashing
-
- 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/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Multi Processors (AREA)
Abstract
本申请提供一种去中心化系统中的时钟同步方法及装置,其中方法包括:第一节点根据循环执行的时钟计算函数,确定当前接收到的第一交易关联的逻辑时钟信息,并将该第一交易的交易数据和关联的逻辑时钟信息广播给系统中的其他节点。接收到广播的第二节点可根据第一交易的交易数据和关联的逻辑时钟信息对第一交易进行验证,并将该第一交易的验证结果和逻辑时钟信息广播给系统中的其他节点。可见,由于逻辑时钟信息的存在,验证节点可以直接对交易进行验证,从而缩短节点间相互通信确认状态达成一致的时间。另外,由于逻辑时钟信息可指示交易产生的逻辑时间,从而有助于系统确认交易间的次序,提高系统的交易处理效率。
Description
技术领域
本申请涉及分布式系统技术领域,尤其涉及一种去中心化系统中的时钟同步方法及装置。
背景技术
分布式系统中最困难的问题之一是在时间上达成一致。一般采用的方法是网络时间协议(network time protocol,NTP),通过对时服务来同步各个节点的系统时间。但是,NTP协议很难在去中心化系统中实现,例如区块链系统。去中心化系统属于对抗性系统的拜占庭环境,系统中的节点不能信任外部时间源或者出现在交易中的任何时间戳。因此,通过在去中心化系统引入NTP协议的方式来同步各个节点的时间不可行。
现有技术中,为了取得共识,去中心化系统中至少一半以上的节点必须以相同的时间和相同顺序执行同一交易。由于缺少时钟同步机制,各个节点间需要进行大量频繁的通信,确认所有节点的状态(例如是否所有交易都同步了,是否都完成了验证,是否达到了最终状态的一致),才能完成共识。而且,只有在当前阶段完成共识出块后才能进入下一阶段的共识。这样时钟和状态耦合在一起,会导致系统的性能瓶颈显著。
发明内容
本申请提供一种去中心化系统中的时钟同步方法及装置,用以解决去中心化系统中缺少时钟同步机制,系统中的各节点之间难以实现时钟同步、导致系统性能受限的问题。
第一方面,本申请实施例提供一种去中心化系统中的时钟同步方法,该方法应用于去中心化系统中的第一节点,该第一节点被配置为循环执行时钟计算函数,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息。
所述方法包括:当接收到来自客户端的第一交易的交易数据,所述第一节点根据所述时钟计算函数当前的此次执行过程,确定为所述第一交易关联的逻辑时钟信息;所述第一节点向所述系统中的其他节点广播所述第一交易的交易数据和所述第一交易关联的逻辑时钟信息,所述其他节点例如可以包括第二节点。
上述技术方案中,第一节点可根据循环执行的时钟计算函数,确定当前接收到的第一交易关联的逻辑时钟信息,并将该第一交易的交易数据和第一交易关联的逻辑时钟信息广播给系统中的其他节点,使得其他节点可以直接根据交易数据和逻辑时钟信息对第一交易进行验证,从而缩短节点间相互通信确认状态达成一致的时间,如此,节点即使不按顺序接收交易也能对交易进行正确处理。此外,由于逻辑时钟信息指示出交易产生的逻辑时间,因此使得系统可以根据该逻辑时钟信息确定交易间的顺序,从而提高系统的交易处理效率。
在一种可能的设计中,所述时钟计算函数的每次执行过程的输入参数根据所述时钟计算函数的上一次执行过程的输出结果确定。
上述技术方案中,通过设计每次执行过程的输入参数与上一次执行过程的输出结果之间存在依赖关系,使得第一节点中时钟计算函数的多次执行过程之间串行执行,从而提高逻辑时钟信息的准确性。
在一种可能的设计中,当接收到来自客户端的第一交易的交易数据,所述方法还包括:所述第一节点根据所述交易数据和所述时钟计算函数的上一次执行过程的输出结果,确定所述时钟计算函数的此次执行过程的输入参数。
在一种可能的设计中,所述第一交易关联的逻辑时钟信息包括:所述第一节点中所述时钟计算函数的此次执行过程的输出结果和所述时钟计算函数的此次执行过程对应的次序信息。
在一种可能的设计中,所述次序信息为按照设定规则更新的时间计数值。例如可以为时钟计算函数的执行累计耗时或每次时钟计算函数执行完成时的时间戳,或者还可以是时钟计算函数的累计循环次数。
在一种可能的设计中,所述时钟计算函数为哈希函数SHA256。所述哈希函数SHA256的每次执行过程的输出为根据此次执行过程输入的数字消息确定的哈希值。所述哈希函数SHA256的每次执行过程的输入为上一次执行过程输出的哈希值构成的数字消息或者由上一次执行过程中输出的哈希值和当前接收到的交易数据共同构成的数字消息。所述哈希函数SHA256的每次执行过程产生的逻辑时间信息包括此次执行过程中确定的哈希值和完成此次执行过程后相应更新的次序信息。
第二方面,本申请实施例提供一种去中心化系统中的时钟同步方法,该方法应用于去中心化系统中的第二节点,该第二节点被配置为循环执行时钟计算函数,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息。
所述方法包括:当接收到第一节点广播的第一交易的交易数据和所述第一交易关联的逻辑时间信息,第二节点执行所述时钟计算函数对应的时钟验证函数,对所述第一交易进行验证;所述第二节点将所述第一交易的验证结果和所述第一交易关联的逻辑时间信息广播给系统中的其他节点,所述其他节点例如可以包括第一节点。
上述技术方案中,第二节点接收到第一节点广播的第一交易的交易数据和第一交易关联的逻辑时钟信息之后,可以直接根据该交易数据和逻辑时钟信息,通过执行时钟计算函数对应的时钟验证函数对该第一交易进行验证,从而缩短了节点间相互通信确认状态达成一致的时间。此外,由于逻辑时钟信息可指示交易产生的逻辑时间,因此,系统可以根据该逻辑时钟信息确定交易间的顺序,从而提高系统的交易处理效率。
在一种可能的设计中,所述时钟计算函数的每次执行过程的输入参数根据所述时钟计算函数的上一次执行过程的输出结果确定。
上述技术方案中,通过设计每次执行过程的输入参数与上一次执行过程的输出结果之间存在依赖关系,使得第一节点中时钟计算函数的多次执行过程之间串行执行,从而提高逻辑时钟信息的准确性。
在一种可能的设计中,所述第一交易关联的逻辑时钟信息包括:所述第一节点中所述逻辑时钟信息对应的所述时钟计算函数的一次执行过程的输出结果,和所述第一节点中所述时钟计算函数的该次执行过程对应的次序信息。
在一种可能的设计中,所述时钟验证函数的输入参数包括:所述第二节点中的所述时钟计算函数在所述逻辑时钟信息所对应的那次执行过程的上一次执行过程的输出结果、所述第一交易的交易数据和所述第一交易关联的逻辑时间信息;
所述时钟验证函数用于根据所述第二节点中的所述时钟计算函数在所述逻辑时钟信息所对应的那次执行过程的上一次执行过程的输出结果,和所述第一交易的交易数据,重新执行所述时钟计算函数,判断得到的输出结果与所述第一节点中的所述时钟计算函数的该次执行过程的输出结果是否一致。
在一种可能的设计中,所述次序信息为按照设定规则更新的时间计数值。例如可以为时钟计算函数的执行累计耗时或每次时钟计算函数执行完成时的时间戳,或者还可以是时钟计算函数的累计循环次数。
在一种可能的设计中,所述时钟计算函数为哈希函数SHA256。所述哈希函数SHA256的每次执行过程的输出为根据此次执行过程输入的数字消息确定的哈希值。所述哈希函数SHA256的每次执行过程的输入为上一次执行过程输出的哈希值构成的数字消息或者由上一次执行过程中输出的哈希值和当前接收到的交易数据共同构成的数字消息。所述哈希函数SHA256的每次执行过程产生的逻辑时间信息包括此次执行过程中确定的哈希值和完成此次执行过程后相应更新的次序信息。
第三方面,本申请实施例提供一种去中心化系统中的时钟同步方法,该方法应用于去中心化系统中的第三节点。该第三节点为当前系统中的领导者节点,负责最近的一段时间内交易数据的汇总和出块。
需要说明的是,该第三节点可以是系统中的任一个节点,例如可以是第一节点或第二节点,也可以是系统中的其他节点。该第三节点可以由系统中的各个节点按照设定规则选举产生。此外,为实现系统内各个节点间的时钟同步,该第三节点中配置为循环执行时钟计算函数,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息。
所述方法包括:第三节点收集设定时段内系统中的各个节点验证通过并达成共识的N个交易的交易数据和交易关联的逻辑时钟信息;所述第三节点根据每个交易关联的逻辑时钟信息,对所述N个交易的交易数据和关联的逻辑时钟信息进行排序;所述第三节点将排好序的所述N个交易的交易数据和关联的逻辑时钟信息打包生成区块,并将所述区块向系统内的其他节点进行广播。
在一种可能的设计中,所述逻辑时钟信息是所述系统中的各个节点中同步循环执行的时钟计算函数生成的,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息。
第四方面,本申请实施例提供一种去中心化系统中的时钟同步装置,该装置可包括执行上述第一方面的任意一种可能的设计的方法的模块/单元。这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
示例性地,所述装置可包括通信模块和处理模块;其中:
处理模块,用于循环执行时钟计算函数,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息;以及,当接收到来自客户端的第一交易的交易数据,根据所述时钟计算函数当前的此次执行过程,确定所述第一交易关联的逻辑时钟信息。
通信模块,用于向所述系统中的其他节点广播所述第一交易的交易数据和所述第一交易关联的逻辑时钟信息。
第五方面,本申请实施例提供一种去中心化系统中的时钟同步装置,该装置可包括执行上述第二方面的任意一种可能的设计的方法的模块/单元。这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
示例性地,所述装置可包括通信模块和处理模块;其中:
处理模块,用于循环执行时钟计算函数,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息;以及,当接收到第一节点广播的第一交易的交易数据和所述第一交易关联的逻辑时间信息,执行所述时钟计算函数对应的时钟验证函数,对所述第一交易进行验证。
通信模块,用于将所述第一交易的验证结果和所述第一交易关联的逻辑时间信息广播给系统中的其他节点。
第六方面,本申请实施例提供一种去中心化系统中的时钟同步装置,该装置可包括执行上述第二方面的任意一种可能的设计的方法的模块/单元。这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
示例性地,所述装置可包括通信模块和处理模块;其中:
通信模块,用于收集设定时段内系统中的各个节点验证通过并达成共识的N个交易的交易数据和关联的逻辑时钟信息;
处理模块,用于根据每个交易关联的逻辑时钟信息,对所述N个交易的交易数据和关联的逻辑时钟信息进行排序;
所述通信模块,还用于将排好序的所述N个交易的交易数据和关联的逻辑时钟信息打包生成区块,并将所述区块向系统内的其他节点进行广播。
第七方面,本申请实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面至第三方面中任一种可能的设计中所述的方法。
第八方面,本申请实施例还提供一种计算机可读存储介质,其中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得上述第一方面至第三方面的任一种可能的设计中所述的方法实现。
第九方面,本申请实施例还提供一种计算机程序产品,包括计算机可读指令,当计算机可读指令被处理器执行时,使得上述第一方面至第三方面中的任一种可能的设计中所述的方法实现。
第十方面,本申请实施例提供一种去中心化系统,所述去中心化系统包括第一节点、第二节点和第三节点,其中,所述第一节点用于实现上述第一方面的任一种可能的设计中所述的方法,所述第二节点用于实现上述第二方面的任一种可能的设计中所述的方法,所述第三节点用于实现上述第三方面的任一种可能的设计中所述的方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例适用的一种去中心化系统的系统架构图;
图2为本申请实施例提供的一种去中心化系统中的时间同步方法的流程示意图;
图3a和图3b为本申请实施例中时钟计算函数的执行过程的示意图;
图4为本申请实施例中时钟验证函数的执行过程的示意图;
图5为本申请实施例提供的一种去中心化系统的时钟同步装置的示意图;
图6为本申请实施例提供的一种计算设备的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请的实施例中,多个是指两个或两个以上。“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
现有技术中的去中心化系统无法引入物理时钟,参与组成网络的每个节点并不能总是保持正确的物理时钟,并且存在时钟偏差。当节点散布在世界各地时,不仅难以同步各个节点的物理时钟,也无法通过引入NTP协议来重新同步节点之间正确的物理时钟,还有可能存在伪装时钟的节点。此外,去中心化系统中时钟与状态耦合在一起,节点间达成共识需要进行频繁通信确认所有状态达成一致,导致系统性能受限。
为了解决上述问题,本申请提供一种去中心化系统中的时钟同步方法。该方法可在去中心化系统中实现全局逻辑时钟。具体来说,该方法通过将系统中的各个节点配置为同步循环执行相同的时钟计算函数,使得系统中的互不信任的多个节点具有全局同步的时间来源。当节点从客户端接收到交易,节点可以根据接收到交易的时间为每笔交易赋予相应的逻辑时钟信息,进而根据逻辑时钟信息明确地对交易进行排序,实现全局一致的有序交易。
图1示例性示出了本申请实施例适用的一种去中心化系统的系统架构,如图1所示,该系统中包括第一节点、第二节点和第三节点,或者还包括其他节点,在图1中未示出。应注意,图1中所示的节点的数量仅为一种示例,该系统中可以包括更多或更少的节点,本申请不做具体限定。
其中,第一节点可以是该系统中的任一节点,第二节点可以是该系统中除第一节点之外的另一节点,第三节点可以是系统中除第一节点和第二节点之外的其他节点,也可以是第一节点或第二节点中的其中一个节点,本申请不作具体限定。
需要说明的是,本申请中,所述去中心化系统例如可以是区块链系统,所述节点是指去中心化系统中的主机,该主机可以是各种类型的计算机,例如服务器、台式计算机、笔记本电脑或各种终端设备等。该系统中各个节点所具有的功能和角色相互对等。具体来说,每个节点均可具有一个对应的客户端,通过该客户端接收用户发起的交易,并将交易广播给系统中的其他节点。而且,每个节点均可接收其他节点广播的交易并对交易进行验证。
在下文的描述中,本申请使用第一节点代表系统中接收到交易的任一节点,并通过第一节点的处理逻辑来说明逻辑时钟的生成原理。使用第二节点代表系统中接收到其他节点广播的交易后对交易进行验证的节点,也称验证节点,并通过该第二节点的处理逻辑来说明逻辑时钟的验证原理。使用第三节点代表当前系统中负责对设定时间段内验证通过的交易数据进行排序生成区块并广播给系统中的其他节点的节点,也称领导者节点。所述领导者节点可以由系统中的各个节点按照设定规则选举产生。
基于上述内容,下面对本申请实施例提供的时钟同步机制进行详细说明。
图2示例性示出了本申请实施例提供的一种去中心化系统中的时钟同步方法。如图2所示,该方法包括:
步骤201,当接收到来自客户端的第一交易的交易数据,第一节点根据时钟计算函数当前的此次执行过程,确定第一交易关联的逻辑时钟信息。
步骤202,第一节点向系统中的其他节点广播第一交易的交易数据和第一交易关联的逻辑时钟信息。
本申请中,所述第一节点被配置为循环执行时钟计算函数。该时钟计算函数的每次执行过程是一次循环,且每次执行过程产生一个对应的逻辑时钟信息。所述逻辑时间信息可包括时钟计算函数的此次执行过程的输出结果和时钟计算函数的此次执行过程对应的次序信息。所述次序信息为按照设定规则更新的时间计数值,例如可以为该时钟计算函数的累计循环次数,或累计执行耗时,或每次执行完成时的时间戳等等。
当第一节点在循环执行时钟计算函数的过程中接收到来自客户端的第一交易的交易数据(也就是用户通过客户端发起的第一交易的交易请求,该交易请求中携带有该第一交易相关的交易数据)时,第一节点可将当前进行的此次执行过程对应的逻辑时钟信息,确定为第一交易关联的逻辑时钟信息,进而广播给系统中的其他节点,也就是验证节点。该逻辑时钟信息可用于确定第一交易与系统中其他节点接收的交易之间的顺序。该逻辑时钟信息可指示产生该第一交易的相对的逻辑时间,因此,可以通过该逻辑时间来区分交易之间的先后顺序。
需要说明的是,本申请中的所述时钟计算函数具有输出的唯一性的特点。所述输出的唯一性是指:对于任意一个输入,应当有唯一的输出结果能够通过检验,不存在两个不同的输出,它们有相同的输入。如果输出结果包含“结果”和关于结果的“证明”两部分,那么证明部分可以不具有唯一性,但需要保证“验证者通过生成的证明而验证通过,但是输出结果却不是正确的结果”这件事发生的概率小到可以忽略不计。
所述时钟计算函数还具有执行的串行性的特点。所述执行的串行性是指:节点在执行时钟计算函数时,时钟计算函数的多次执行过程之间串行执行,不能并行执行,运算效果不能因为节点的机器性能的优劣出现差异。此外,所述时钟计算函数的每次执行过程的执行时间也是相对确定的。
设计时钟计算函数具有执行的串行性这一特点,可使得时钟计算函数不断循环的执行过程能够抵抗并行计算加速。攻击者即使能够提前计算很长时间,并且拥有很多并行处理器,利用各种计算方法,都不能以少于t的时间计算出结果。
为了满足时钟计算函数串行执行、抗并行化的要求,本申请中设计时钟计算函数的后一次执行过程的输入依赖于前一次执行过程的输出,即相邻两次循环的输入参数与输出结果之间存在依赖关系。这样使得前后两次的执行过程必须串行执行,无法运用多线程或多进程运算,编译器与CPU也无法做并行化的优化,如果没有使用2128个内核的蛮力攻击,这个过程是不可能并行化的。由于时钟计算函数每一次执行耗费的时间是相对确定的,因此,当多个节点同步开始循环执行该时钟计算函数时,多个节点中的计数器记录的顺序与时间是相同的。
也就是说,在步骤201中,所述时钟计算函数的每次执行过程的输入参数根据该时钟计算函数的上一次执行过程的输出结果确定,从而使得前后两次执行过程串接起来。在一种可能的设计中,当第一节点未接收到来自客户端的第一交易的交易数据时,该时钟计算函数当前的这次执行过程的输入参数根据该时钟计算函数的上一次执行过程的输出结果确定,换言之,上一次循环中时钟计算函数的输出结果将作为当前这次循环中时钟计算函数的输入参数继续参与当前这次循环的运算。当第一节点接收到来自客户端的第一交易的交易数据时,该时钟计算函数当前的这次执行过程的输入参数根据该时钟计算函数的上一次执行过程的输出结果和当前接收到的交易数据确定,换言之,上一次循环中时钟计算函数的输出结果和当前接收到的交易数据将作为当前这次循环中时钟计算函数的输入参数继续参与运算。可选的,这种情况下,当前这次循环中时钟计算函数的输入参数可以是上一次循环中时钟计算函数的输出结果和当前接收到的交易数据经过某种运算后得到的结果,例如进行字符串的拼接。
所述时钟计算函数还具有验证的高效性的特点。验证节点同步到交易数据和关联的逻辑时钟信息后可以进行快速验证,快速达成共识。如果验证不够高效,会使验证节点耗费不必要的资源,并使得系统的整体性能下降。
满足输出的唯一性、执行的串行性和验证的高效性等特点的函数可以有很多种,作为一种示例,本申请以哈希函数SHA256作为时钟计算函数,以便更清楚的说明本申请中的时钟同步机制。
以哈希函数SHA256为例,该函数用于将一个数字消息映射到长度固定的字符串,也称哈希值,或消息摘要,或指纹。该函数可以接受任何数据输入,并输出一个小的、固定大小的输出,而且无论给定的输入数据如何,都无法预测确切的输出,必须执行完整个函数才能真正知道输出。如果输入的数字消息不同,映射到相同哈希值的机率可以忽略。如果已知哈希值,计算其原始输入的数字消息不可行。具体来说,该函数的哈希值长度是256位。
如果第一节点在循环中运行此哈希函数SHA256,将前一个输出作为输入,并尽可能快地执行此操作,用一个计数器记录它被循环了多少次,同时记录当前的哈希值,最终生成的数据结构(hash,count)可以表达出一个时间流,也就是逻辑时钟。逻辑时钟的目的是让交易变得有序,通过给每个交易都打上时间戳,可以使得交易自带排序,这样所有的验证节点就能够根据同步到的交易数据和逻辑时钟信息自动验证交易,而不需要和其他节点交互,从而提高交易处理能力,改善系统性能。
如图3a所示,第一节点在初始化之后,可开始循环执行SHA256函数。SHA256函数的多次运算串行执行,且每次运算结束时输出一个哈希值(hash),并相应更新一次计数值(count)。示例性的,图3a中所示的count值是每次运算结束时的时间戳。
建立了逻辑时钟之后,如图3b所示,当第一节点从客户端接收到需要上链的交易数据,第一节点可将交易数据与前一次SHA256运算得到的hash值拼接在一起,然后进行一次SHA256运算,并将交易数据附加到这个时间流中,得到交易数据关联的逻辑时钟,即此次SHA256运算得到的hash值和相应更新的count值。因为逻辑时钟是经过验证和排序的,因此,可以准确地知道交易数据插入到时间流中的时间。因此,无论多快或有多少交易数据被记录到不断增长的数据结构中,也能出清楚知道哪些数据/消息必须在其他“块”之前或之后,也就是自带了排序功能。
本申请中,第一节点在开始循环执行时钟计算函数之前需要进行初始化,以设置时钟计算函数和对应的时钟验证函数的初始输入参数。第一节点可通过执行初始化函数,生成时钟计算函数第一次执行时的输入参数ck和该时钟计算函数对应的时钟验证函数第一次验证时的输入参数vk。
所述初始化函数可根据预先配置的初始化参数λ,生成一组对应的(ck,vk)值,其中,ck是时钟计算函数第一次执行时的输入参数,vk是将ck作为时钟计算函数的输入参数时得到的输出结果。可选的,所述初始化函数还可根据预先配置的初始化参数t设定时钟计算函数每次执行的最小耗时,以确保时钟计算函数的执行时间至少为t,时钟计算函数在不断循环的过程中不能并行执行,不能因为机器算力的提升而加快函数的执行。
所述初始化参数λ和t可以通过配置文件的方式进行预先配置,并且λ值和t值的大小可以根据实际采用的时钟计算函数进行具体设置。
在一种可能的设计中,初始化过程是从系统创世块开始的,在生成系统的第一个区块之前,系统中的每个节点都需要执行初始化函数,根据预先配置的相同的初始化参数λ和t来设置时钟计算函数和对应的时钟验证函数的初始输入参数。
综上所述,第一节点的处理流程包括初始化阶段和计算阶段。在初始化阶段,第一节点执行初始化函数,根据预先配置的初始化参数(λ,t)生成参数组Param=(ck,vk),其中,ck是时钟计算函数第一次执行时的输入参数,vk是时钟验证函数第一次执行时的输入参数,ck和vk是对应的一组时钟计算函数的输入和输出。在计算阶段,第一节点循环执行时钟计算函数,时钟计算函数第一次循环的输入参数为初始化函数生成的ck,后续每次循环的输入参数为上一次循环的输出output,此外,当第一节点接收到来自客户端的交易数据时,该交易数据也将与初始输入参数ck或者上一次循环的输出output进行某种运算,例如字符串拼接,然后将得到的结果作为本次循环的输入参数,如此循环执行。时钟计算函数的每次循环生成一个输出结果output并对应更新一下计数值count,count表示当前这次循环的次序信息,并用于验证节点进行验证。输出结果out和计数值count共同组成了当前这次循环的逻辑时钟。
步骤203,当接收到第一节点广播的第一交易的交易数据和第一交易关联的逻辑时间信息,第二节点执行时钟计算函数对应的时钟验证函数,对第一交易进行验证。
本申请中,第二节点是指接收到第一节点广播的任一验证节点。该第二节点也被配置为循环执行相同的时钟计算函数,而且执行过程与第一节点保持同步。可选的,第二节点在开始循环执行时钟计算函数之前,也会通过执行初始化函数进行初始化,具体过程请参考上文中关于第一节点的初始化过程的描述,此处不再赘述。
第二节点中配置有时钟计算函数对应的时钟验证函数,该时钟验证函数与所述时钟计算函数基于相同的算法实现,例如时钟计算函数和时钟验证函数都可以基于SHA256哈希算法实现。需要说明的是,去中心化系统中的每个节点都会从对应的客户端接收用户发起的交易数据,并且也会从其他节点接收需要验证的交易的交易数据和关联的逻辑时钟信息,进而对交易继续验证,因此,系统中的每个节点都会配置有时钟计算函数和时钟验证函数。本申请中此处介绍第二节点中配置有时钟验证函数,仅仅是以第二节点为例来介绍交易的验证过程。
所述时钟验证函数用于对接收到的交易的逻辑时钟信息的正确性进行验证。具体来说,该时钟验证函数的输入参数包括:第二节点中的所述时钟计算函数在第一交易关联的逻辑时钟信息所指示的那次执行过程的上一次执行过程的输出结果(或者初始输入参数vk)、第一交易的交易数据和第一交易关联的逻辑时钟信息,该第一交易的逻辑时钟信息包括第一节点中的所述时钟计算函数在该逻辑时钟信息指示的那次执行过程的输出结果和对应的次序信息。该时钟验证函数的输出结果是一个布尔值true或false,用于表示验证通过或验证不通过。
假设第一交易关联的逻辑时钟信息对应于时钟计算函数的第i次循环,i为正整数,那么第二节点中的时钟验证函数包括三个输入参数:第二节点中的时钟计算函数的第i-1次循环的输出结果、第一交易的交易数据和第一交易关联的逻辑时钟信息。其中,第一交易关联的逻辑时钟信息是第一节点在执行时钟计算函数的第i次循环的过程中生成然后广播给第二节点的,该逻辑时钟信息中包括第一节点中的时钟计算函数的第i次循环的输出结果和对应的次序信息。此外,还应注意,当第i-1次循环实际上是第1次循环中,所述时钟验证函数的输入参数中的“第二节点中时钟计算函数的第i-1次循环的输出结果”这部分将用初始输入参数vk代替。
在一种可能的设计中,所述时钟验证函数验证第一交易是否通过的判断逻辑可以为:将第二节点中的时钟计算函数的第i-1次循环的输出结果和第二节点从第一节点接收到的第一交易的交易数据作为输入参数,重现时钟计算函数的第i次循环的执行过程,然后判断得到的输出结果与第一交易关联的逻辑时钟信息中第一节点的时钟计算函数的第i次循环的计算结果是否一致。如果一致则验证通过,如果不一致则验证不通过。
此外,需要说明的是,不同于时钟计算函数,本申请中的所述时钟验证函数是可以并行执行的。也就是说,如果第二节点在同一时刻接收到多笔交易的交易数据和关联的逻辑时钟信息,由于交易的验证过程与各笔交易的先后顺序之间不存在依赖关系,因此,如图4所示,第二节点可以并行执行多个时钟验证函数,例如通过多线程或其他的并行优化机制,同时对多笔交易进行验证,从而提高验证效率。
步骤204,第二节点将第一交易的验证结果和第一交易关联的逻辑时间信息广播给系统中的其他节点。
所述第一交易的验证结果为验证通过或不通过。
步骤205,第三节点收集设定时段内系统中的各个节点验证通过并达成共识的N个交易的交易数据和关联的逻辑时钟信息。
步骤206,第三节点根据每个交易关联的逻辑时钟信息,对所述N个交易的交易数据和关联的逻辑时钟信息进行排序。
具体来说,第三节点可根据逻辑时钟信息中的次序信息,对所述N笔交易继续排序。
步骤207,第三节点将排好序的N个交易的交易数据和关联的逻辑时钟信息打包生成区块,并将该区块向系统内的其他节点进行广播。
综上所述,本申请提供了一种去中心化系统中的时钟同步机制,该时钟同步机制具体是一种应用于去中心化系统的全局逻辑时钟。有了全局统一的逻辑时钟,节点就不需要等到出块时间再对交易进行验证,而是可以直接根据接收到的数据去验证链上操作的历史记录,这样可以让节点始终保持满负载运行,充分利用现有技术中原本用来的等待节点状态达成一致的时间,因此可提高系统中交易的处理效率。
具体来说,本申请提供的时钟同步机制具有如下的技术效果:
1、缩短节点通信间隔时间。现有技术中的区块链技术都要求节点相互通信、同步信息以确认时间已过去、状态可更新。而有了本申请中提供的全局逻辑时钟,每个节点在持续不断接收最新交易时,可以对每个交易附加签名的逻辑时钟信息(例如可以通过哈希运算得到的一组哈希值和时间戳),然后将其转发给其他节点时,其他节点可以立即通过逻辑时钟信息对交易进行验证和排序,而缩短了等待节点确认的通信时间。
2,实现时间和状态的解耦。本申请提供了全局可用的可信时钟,允许对交易加上时间戳。这样,每个节点即使不按顺序接收交易,也可以按照正确的顺序来处理交易,从而实现时间和状态的分离。该方案能够在安全和去中心化的方式下实现扩展,让区块链具备高性能、基于统一时钟改善共识算法等。
3、新节点只需要根据区块的数据结构便可验证区块链完整性。由于随着时间的推移,逻辑时钟信息也被编码到区块之中,一个新加入系统的节点只需要根据区块的数据结构,就可以在没有外在信息的情况下,验证区块链从创世到当前的完整性。
基于相同的发明构思,本申请还提供一种去中心化系统中的时钟同步装置,该装置用于实现上述方法实施例中的时钟同步方法。
如图5所示,该装置500包括:通信模块510和处理模块520,其中,所述处理模块520被配置为循环执行时钟计算函数,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息。
当该装置500执行第一节点对应的操作或步骤时:
所述通信模块510,用于接收来自客户端的第一交易的交易数据;所述处理模块520,用于当接收到来自客户端的第一交易的交易数据,根据所述时钟计算函数当前的此次执行过程,确定为所述第一交易关联的逻辑时钟信息;所述通信模块510,还用于向所述系统中的其他节点广播所述第一交易的交易数据和所述第一交易关联的逻辑时钟信息,所述其他节点例如可以包括第二节点。
在一种可能的设计中,所述时钟计算函数的每次执行过程的输入参数根据所述时钟计算函数的上一次执行过程的输出结果确定。
在一种可能的设计中,所述处理模块520还用于:根据所述交易数据和所述时钟计算函数的上一次执行过程的输出结果,确定所述时钟计算函数的此次执行过程的输入参数。
在一种可能的设计中,所述第一交易关联的逻辑时钟信息包括:所述装置500中所述时钟计算函数的此次执行过程的输出结果和所述时钟计算函数的此次执行过程对应的次序信息。
在一种可能的设计中,所述次序信息为按照设定规则更新的时间计数值。
在一种可能的设计中,所述时钟计算函数为哈希函数SHA256。
当该装置500执行第二节点对应的操作或步骤时:
所述通信模块510,用于接收第一节点广播的第一交易的交易数据和所述第一交易关联的逻辑时间信息;所述处理模块520,用于当接收到第一节点广播的第一交易的交易数据和所述第一交易关联的逻辑时间信息,执行所述时钟计算函数对应的时钟验证函数,对所述第一交易进行验证;所述通信模块510,还用于将所述第一交易的验证结果和所述第一交易关联的逻辑时间信息广播给系统中的其他节点,所述其他节点例如可以包括第一节点。
在一种可能的设计中,所述时钟计算函数的每次执行过程的输入参数根据所述时钟计算函数的上一次执行过程的输出结果确定。
在一种可能的设计中,所述第一交易关联的逻辑时钟信息包括:所述第一节点中所述逻辑时钟信息对应的所述时钟计算函数的一次执行过程的输出结果,和所述第一节点中所述时钟计算函数的该次执行过程对应的次序信息。
在一种可能的设计中,所述时钟验证函数的输入参数包括:所述装置中的所述时钟计算函数在所述逻辑时钟信息所对应的那次执行过程的上一次执行过程的输出结果、所述第一交易的交易数据和所述第一交易关联的逻辑时间信息;
所述时钟验证函数用于根据所述装置中的所述时钟计算函数在所述逻辑时钟信息所对应的那次执行过程的上一次执行过程的输出结果,和所述第一交易的交易数据,重新执行所述时钟计算函数,判断得到的输出结果与所述第一节点中的所述时钟计算函数的该次执行过程的输出结果是否一致。
在一种可能的设计中,所述次序信息为按照设定规则更新的时间计数值。
在一种可能的设计中,所述时钟计算函数为哈希函数SHA256。
当该装置500执行第三节点对应的操作或步骤时:
所述通信模块510,用于收集设定时段内系统中的各个节点验证通过并达成共识的N个交易的交易数据和交易关联的逻辑时钟信息;所述处理模块520,用于根据每个交易关联的逻辑时钟信息,对所述N个交易的交易数据和关联的逻辑时钟信息进行排序,以及将排好序的所述N个交易的交易数据和关联的逻辑时钟信息打包生成区块;所述通信模块510,还用于将所述区块向系统内的其他节点进行广播。
在一种可能的设计中,所述逻辑时钟信息是所述系统中的各个节点中同步循环执行的时钟计算函数生成的,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息。
基于相同的技术构思,本申请还提供一种计算设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本申请实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器602存储有可被至少一个处理器601执行的指令,该至少一个处理器601通过执行存储器602存储的指令,可以实现上述时钟同步方法的步骤。
其中,处理器601是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而进行资源设置。可选的,处理器401可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得上述方法实施例中的方法实现。
基于相同的技术构思,本申请还提供一种计算机程序产品,包括计算机可读指令,当计算机可读指令被处理器执行时,使得上述方法实施例中的方法实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种去中心化系统中的时钟同步方法,其特征在于,所述系统包括第一节点、第二节点和第三节点,所述第一节点被配置为循环执行时钟计算函数,所述第二节点被配置为循环执行所述时钟计算函数,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息;
所述方法包括:
当接收到来自客户端的第一交易的交易数据,所述第一节点根据所述时钟计算函数当前的此次执行过程,确定所述第一交易关联的逻辑时钟信息;
所述第一节点向所述系统中的其他节点广播所述第一交易的交易数据和所述第一交易关联的逻辑时钟信息;
当接收到所述第一节点广播的所述第一交易的交易数据和所述第一交易关联的逻辑时钟信息,所述第二节点执行所述时钟计算函数对应的时钟验证函数,对所述第一交易进行验证;
所述第二节点将所述第一交易的验证结果和所述第一交易关联的逻辑时钟信息广播给所述系统中的其他节点;
所述第三节点收集设定时段内所述系统中的各个节点验证通过并达成共识的N个交易的交易数据和关联的逻辑时钟信息;
所述第三节点根据每个交易关联的逻辑时钟信息,对所述N个交易的交易数据和关联的逻辑时钟信息进行排序;
所述第三节点将排好序的所述N个交易的交易数据和关联的逻辑时钟信息打包生成区块,并将所述区块向所述系统内的其他节点进行广播。
2.根据权利要求1所述的方法,其特征在于,所述时钟计算函数的每次执行过程的输入参数根据所述时钟计算函数的上一次执行过程的输出结果确定。
3.根据权利要求2所述的方法,其特征在于,当接收到来自客户端的第一交易的交易数据,所述方法还包括:
所述第一节点根据所述交易数据和所述时钟计算函数的上一次执行过程的输出结果,确定所述时钟计算函数的此次执行过程的输入参数。
4.根据权利要求1所述的方法,其特征在于,所述第一交易关联的逻辑时钟信息包括:所述第一节点中所述时钟计算函数的此次执行过程的输出结果和所述时钟计算函数的此次执行过程对应的次序信息。
5.根据权利要求4所述的方法,其特征在于,所述次序信息为按照设定规则更新的时间计数值。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述时钟计算函数为哈希函数SHA256。
7.根据权利要求1所述的方法,其特征在于,所述时钟验证函数的输入参数包括:所述第二节点中的所述时钟计算函数在所述逻辑时钟信息所对应的那次执行过程的上一次执行过程的输出结果、所述第一交易的交易数据和所述第一交易关联的逻辑时钟信息;
所述时钟验证函数用于根据所述第二节点中的所述时钟计算函数在所述逻辑时钟信息所对应的那次执行过程的上一次执行过程的输出结果,和所述第一交易的交易数据,重新执行所述时钟计算函数,判断得到的输出结果与所述第一节点中的所述时钟计算函数的该次执行过程的输出结果是否一致。
8.根据权利要求1所述的方法,其特征在于,所述逻辑时钟信息是所述系统中的各个节点中同步循环执行的时钟计算函数生成的,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息。
9.一种去中心化系统的时钟同步装置,其特征在于,所述装置被配置为循环执行时钟计算函数,所述时钟计算函数的每次执行过程产生一个逻辑时钟信息;
所述装置包括:
处理模块,用于当接收到来自客户端的第一交易的交易数据,根据所述时钟计算函数当前的此次执行过程,确定所述第一交易关联的逻辑时钟信息;
通信模块,用于向所述系统中的其他节点广播所述第一交易的交易数据和所述第一交易关联的逻辑时钟信息;
所述处理模块,还用于当接收到第一节点广播的所述第一交易的交易数据和所述第一交易关联的逻辑时钟信息,执行所述时钟计算函数对应的时钟验证函数,对所述第一交易进行验证;
所述通信模块,还用于将所述第一交易的验证结果和所述第一交易关联的逻辑时钟信息广播给所述系统中的其他节点;
所述通信模块,还用于收集设定时段内系统中的各个节点验证通过并达成共识的N个交易的交易数据和关联的逻辑时钟信息;
所述处理模块,还用于根据每个交易关联的逻辑时钟信息,对所述N个交易的交易数据和关联的逻辑时钟信息进行排序;
所述通信模块,还用于将排好序的所述N个交易的交易数据和关联的逻辑时钟信息打包生成区块,并将所述区块向所述系统内的其他节点进行广播。
10.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210677061.6A CN114924617B (zh) | 2022-06-15 | 2022-06-15 | 一种去中心化系统中的时钟同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210677061.6A CN114924617B (zh) | 2022-06-15 | 2022-06-15 | 一种去中心化系统中的时钟同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114924617A CN114924617A (zh) | 2022-08-19 |
CN114924617B true CN114924617B (zh) | 2024-04-26 |
Family
ID=82815150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210677061.6A Active CN114924617B (zh) | 2022-06-15 | 2022-06-15 | 一种去中心化系统中的时钟同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114924617B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039513A (zh) * | 2018-07-18 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 时钟同步方法、装置、设备及存储介质 |
CN110417502A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 一种区块链节点时钟共识方法及装置 |
CN110442591A (zh) * | 2019-08-12 | 2019-11-12 | 中国银行股份有限公司 | 一种联盟链的全局时钟系统及方法 |
WO2020044224A1 (fr) * | 2018-08-30 | 2020-03-05 | Lapsechain Sa | Procédé d'horodatage comprenant l'interrogation de plusieurs noeuds d'une blockchain |
CN111327586A (zh) * | 2018-12-13 | 2020-06-23 | 施耐德电器工业公司 | 离线节点中的数据的时间戳 |
CN111352998A (zh) * | 2020-02-28 | 2020-06-30 | 中国计量科学研究院 | 一种可信联盟区块链数字校准证书系统及其操作方法 |
CN111612455A (zh) * | 2020-04-21 | 2020-09-01 | 国网江苏省电力有限公司电力科学研究院 | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 |
CN111641470A (zh) * | 2020-05-08 | 2020-09-08 | 哈尔滨工程大学 | 一种分布式仿真的时间一致性同步方法 |
WO2020197514A1 (en) * | 2019-03-27 | 2020-10-01 | Koc Universitesi | A distributed hash table based blockchain architecture for resource constrained environments |
CN111865469A (zh) * | 2020-07-31 | 2020-10-30 | 江西师范大学 | 一种基于区块链的工业物联网容错时间同步方法和系统 |
CN112270539A (zh) * | 2020-10-16 | 2021-01-26 | 广州搜料信息技术有限公司 | 一种多交易任务账户数据同步方法、系统及存储介质 |
CN112821979A (zh) * | 2021-04-16 | 2021-05-18 | 浙江国利信安科技有限公司 | 一种去中心化的快速网络时间同步方法 |
CN113032370A (zh) * | 2021-03-30 | 2021-06-25 | 东北大学 | 一种分区区块链系统的设计方法 |
WO2021174787A1 (zh) * | 2020-07-30 | 2021-09-10 | 平安科技(深圳)有限公司 | 区块链系统、数据处理方法、计算机设备及存储介质 |
CN114281888A (zh) * | 2021-10-30 | 2022-04-05 | 中国银联股份有限公司 | 一种区块链共识方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255732B2 (en) * | 2008-05-28 | 2012-08-28 | The United States Of America, As Represented By The Administrator Of The National Aeronautics And Space Administration | Self-stabilizing byzantine-fault-tolerant clock synchronization system and method |
US10928848B2 (en) * | 2018-11-28 | 2021-02-23 | International Business Machines Corporation | Distributed clock |
-
2022
- 2022-06-15 CN CN202210677061.6A patent/CN114924617B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039513A (zh) * | 2018-07-18 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 时钟同步方法、装置、设备及存储介质 |
WO2020044224A1 (fr) * | 2018-08-30 | 2020-03-05 | Lapsechain Sa | Procédé d'horodatage comprenant l'interrogation de plusieurs noeuds d'une blockchain |
CN111327586A (zh) * | 2018-12-13 | 2020-06-23 | 施耐德电器工业公司 | 离线节点中的数据的时间戳 |
WO2020197514A1 (en) * | 2019-03-27 | 2020-10-01 | Koc Universitesi | A distributed hash table based blockchain architecture for resource constrained environments |
CN110417502A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 一种区块链节点时钟共识方法及装置 |
CN110442591A (zh) * | 2019-08-12 | 2019-11-12 | 中国银行股份有限公司 | 一种联盟链的全局时钟系统及方法 |
CN111352998A (zh) * | 2020-02-28 | 2020-06-30 | 中国计量科学研究院 | 一种可信联盟区块链数字校准证书系统及其操作方法 |
CN111612455A (zh) * | 2020-04-21 | 2020-09-01 | 国网江苏省电力有限公司电力科学研究院 | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 |
CN111641470A (zh) * | 2020-05-08 | 2020-09-08 | 哈尔滨工程大学 | 一种分布式仿真的时间一致性同步方法 |
WO2021174787A1 (zh) * | 2020-07-30 | 2021-09-10 | 平安科技(深圳)有限公司 | 区块链系统、数据处理方法、计算机设备及存储介质 |
CN111865469A (zh) * | 2020-07-31 | 2020-10-30 | 江西师范大学 | 一种基于区块链的工业物联网容错时间同步方法和系统 |
CN112270539A (zh) * | 2020-10-16 | 2021-01-26 | 广州搜料信息技术有限公司 | 一种多交易任务账户数据同步方法、系统及存储介质 |
CN113032370A (zh) * | 2021-03-30 | 2021-06-25 | 东北大学 | 一种分区区块链系统的设计方法 |
CN112821979A (zh) * | 2021-04-16 | 2021-05-18 | 浙江国利信安科技有限公司 | 一种去中心化的快速网络时间同步方法 |
CN114281888A (zh) * | 2021-10-30 | 2022-04-05 | 中国银联股份有限公司 | 一种区块链共识方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
FlexRay时钟同步拜占庭故障容错算法研究;刘让;张凤登;;软件导刊;20200115(01);全文 * |
基于FPGA的精确时钟同步方法;黄文君;遇彬;;浙江大学学报(工学版);20071015(10);全文 * |
基于时钟同步的分布式实时系统监控;王刚;乔纯捷;王跃科;;电子测量与仪器学报;20100315(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114924617A (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yin et al. | HotStuff: BFT consensus with linearity and responsiveness | |
CN109313752B (zh) | 使用审计保证形成用于被许可的区块链的高效共识机制的方法和系统 | |
CN111466096B (zh) | 提供不可变记录的系统和方法 | |
CN109313654B (zh) | 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和系统 | |
CN111723406B (zh) | 一种区块链的共识算法及系统 | |
CN109949157A (zh) | 一种区块链共识的处理方法、装置及系统 | |
US20170300875A1 (en) | Method and system for reducing power consumption in bitcoin mining via data input hopping | |
CN114422155B (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
US8296607B2 (en) | Serialization module separating pipelined trace-worthy event and sync packet data | |
CN112070608B (zh) | 信息处理方法、装置、介质及电子设备 | |
CN111294390A (zh) | 一种区块数据快速同步方法、装置、设备及存储介质 | |
CN113852470B (zh) | 提案广播方法、装置、设备和存储介质 | |
CN113254210A (zh) | 一种基于云服务的ofd文件签章验证方法、系统及设备 | |
Jayanti et al. | Every problem has a weakest failure detector | |
Attiya et al. | Asynchronous byzantine consensus | |
CN117251889B (zh) | 区块链共识方法、相关装置和介质 | |
CN115174090A (zh) | 区块链共识方法及装置 | |
Lall et al. | Logical Synchrony and the bittide Mechanism | |
CN114924617B (zh) | 一种去中心化系统中的时钟同步方法及装置 | |
CN111061813B (zh) | 用于区块链网络中的数据同步的方法、装置和计算设备 | |
CN115409507A (zh) | 区块处理方法、区块处理装置、计算机设备及存储介质 | |
CN116723200A (zh) | 集群变更方法、装置、电子设备及计算机可读存储介质 | |
CN111915295A (zh) | 提升交易执行速度的联盟链 | |
CN115987528A (zh) | 区块链系统中的区块同步方法和区块链节点 | |
CN116009940A (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 |