CN112767151B - 应用于区块链中验证节点的交易处理方法和装置 - Google Patents
应用于区块链中验证节点的交易处理方法和装置 Download PDFInfo
- Publication number
- CN112767151B CN112767151B CN202110059225.4A CN202110059225A CN112767151B CN 112767151 B CN112767151 B CN 112767151B CN 202110059225 A CN202110059225 A CN 202110059225A CN 112767151 B CN112767151 B CN 112767151B
- Authority
- CN
- China
- Prior art keywords
- transaction
- request
- consensus
- verification
- time information
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 236
- 238000003672 processing method Methods 0.000 title claims abstract description 46
- 238000010200 validation analysis Methods 0.000 claims abstract description 51
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 37
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 11
- 230000001360 synchronised effect Effects 0.000 description 11
- 230000015654 memory Effects 0.000 description 10
- 238000004806 packaging method and process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 241000270722 Crocodylidae Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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
-
- 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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Marketing (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开提供了一种应用于区块链中验证节点的交易处理方法,可以应用于区块链技术领域和金融技术领域。区块链包括多个验证节点,该交易处理方法包括:响应于接收到多个验证节点中第一验证节点广播的交易共识请求,确定接收交易共识请求的第一时间信息,交易共识请求携带有生成交易共识请求的第二时间信息;获取与第一验证节点之间的时间差信息;以及在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求超时的情况下,丢弃共识交易请求。还公开还提供了一种应用于区块链中验证节点的交易处理装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及信息处理技术领域,具体涉及金融技术领域和区块链技术领域,更具体地涉及一种应用于区块链中验证节点的交易处理方法、装置、设备、介质和程序产品。
背景技术
区块链是一种通过点对点通讯技术实现区块链网络节点间的对等通信、利用共识机制实现记账合法性、利用链式结构存储数据的共同记账的解决方案。在实际业务场景中,由业务链联盟方各自创建并维护其区块链成员节点系统、共同组建联盟业务链。业务链联盟方通过联盟业务链上成员节点彼此之间的共识机制及维护的成员节点上的相同账本实现业务处理流程。
区块链上每一笔交易都需要经过联盟业务链上所有成员节点的共识,每一次共识都需要多次交互,耗时也更久。
发明内容
鉴于上述问题,本公开提供了用于提高交易处理性能的应用于区块链中验证节点的交易处理方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种应用于区块链中验证节点的交易处理方法,区块链包括多个验证节点,交易处理方法包括:响应于接收到多个验证节点中第一验证节点广播的交易共识请求,确定接收交易共识请求的第一时间信息,交易共识请求携带有生成交易共识请求的第二时间信息;获取与第一验证节点之间的时间差信息;以及在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求超时的情况下,丢弃共识交易请求。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理方法还包括:响应于接收到多个验证节点中第二验证节点广播的时钟同步共识请求,对时钟同步共识请求进行共识验证,该时钟同步共识请求携带有第二验证节点的第三时间信息;以及在对时钟同步共识请求的共识验证成功的情况下,根据接收时钟同步共识请求的时间信息和第三时间信息更新与第二验证节点之前的时间差信息。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理方法还包括周期性执行的以下操作:确定针对第一当前时间信息的区块数据;确定针对区块数据的第一哈希值和区块高度;将区块数据、第一哈希值和区块高度封装为时钟同步共识请求;以及向区块链中的验证节点广播时钟同步共识请求。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理方法还包括:在根据第一共识算法确定对时钟同步共识请求的共识验证失败的情况下,确定时钟同步共识请求的重发次数;以及在重发次数小于预定次数的情况下,向区块链中的验证节点重新广播时钟同步共识请求。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理方法还包括:在将区块数据、第一哈希值和区块高度封装为时钟同步共识请求之前,将区块数据、第一哈希值和区块高度构成的目标数组存储至第一预定存储空间;以及在根据第一共识算法确定对时钟同步共识请求的共识验证成功的情况下,删除第一预定存储空间存储的目标数组。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理方法还包括:在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求未超时的情况下:响应于交易共识请求,采用第二共识算法对针对第一验证节点发起的交易请求进行共识验证。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理方法还包括:响应于接收到交易请求,获取第二当前时间信息;根据第二当前时间信息、交易请求和节点编号生成针对交易请求的交易共识请求;以及向区块链中的验证节点广播交易共识请求。
根据本公开的实施例,上述获取第二当前时间信息包括:在确定交易请求所针对的交易不是重复交易的情况下,获取第二当前时间信息。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理方法还包括:响应于接收到交易请求,生成针对交易请求的第二哈希值;将第二哈希值与交易请求以键值对的形式存储至第二预定存储空间;以及在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求超时的情况下,删除第二预定存储空间中存储的针对第二哈希值和交易请求的键值对。
根据本公开的实施例,在第一时间信息指示的时刻与第二时间信息指示的时刻之间的第一时间段长度,与时间差信息指示的第二时间段长度之间的差值大于预定长度的情况下,确定交易共识请求超时。
本公开的第二方面提供了一种应用于区块链中验证节点的交易处理装置,该区块链包括多个验证节点,该交易处理装置包括:时间信息确定模块,用于响应于接收到多个验证节点中第一验证节点广播的交易共识请求,确定接收交易共识请求的第一时间信息,交易共识请求携带有生成交易共识请求的第二时间信息;时间差获取模块,用于获取与第一验证节点之间的时间差信息;以及请求丢弃模块,用于在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求超时的情况下,丢弃共识交易请求。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述的应用于区块链中验证节点的交易处理方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述的应用于区块链中验证节点的交易处理方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的应用于区块链中验证节点的交易处理方法。
本公开实施例通过根据时间差信息及交易共识请求的生成时间和接收时间来确定交易共识请求是否超时,并在确定交易共识请求超时的情况下直接丢弃接收的交易共识请求,而不再对交易共识请求进行共识验证,相较于相关技术,可以在一定程度上提高区块链系统的处理效率,避免资源浪费。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的应用于区块链中验证节点的交易处理方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的应用于区块链中验证节点的交易处理方法的流程图;
图3示意性示出了根据本公开另一实施例的应用于区块链中验证节点的交易处理方法的流程图;
图4示意性示出了根据本公开实施例的应用于区块链中验证节点的交易处理方法的原理示意图;
图5示意性示出了根据本公开又一实施例的应用于区块链中验证节点的交易处理方法的流程图;
图6示意性示出了根据本公开另一实施例的应用于区块链中验证节点的交易处理方法的原理示意图;
图7示意性示出了根据本公开实施例的适于执行应用于区块链中验证节点的交易处理方法的验证节点的结构示意图;
图8示意性示出了根据本公开实施例的应用于区块链中验证节点的交易处理装置的结构框图;以及
图9示意性示出了根据本公开实施例的适于实现应用于区块链中验证节点的交易处理方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种应用于区块链中验证节点的交易处理方法,其中,区块链包括多个验证节点,该多个验证节点中的任一验证节点可以响应于接收到多个验证节点中第一验证节点广播的交易共识请求,确定接收交易共识请求的第一时间信息,该交易共识请求携带有生成交易共识请求的第二时间信息。随后该任一验证节点可以获取与第一验证节点之间的时间差信息。最后在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求超时的情况下,丢弃共识交易请求。
图1示意性示出了根据本公开实施例的应用于区块链中验证节点的交易处理方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,该应用场景100中例如可以包括终端111~终端116构成的区块链系统110。终端111~终端116彼此之间可以通过网络通信。其中,网络例如可以为有线或无线通信链路等。
根据本公开的实施例,终端111~终端116中的每个终端为区块链系统110中一个验证节点,每个验证节点从一个创世状态开始,依次处理达成共识的区块内的交易,驱动该每个验证节点的状态按照与其他验证节点相同的操作序列不断变化。使得所有验证节点在执行完成交易后所处的状态完全一致。该完全一致的状态称为世界状态。根据实际需求,终端111~终端116例如可以部署在不同的机房、不同的城市甚至不同的时区。
根据本公开的实施例,终端111~终端116在处理交易时,例如可以采用共识机制。该共识机制是指:通过特殊节点的投票,在很短的时间内完成对交易的验证和确认。对于一笔交易,若利益不相干的若干个验证节点能够达成共识,则认为区块链系统110中的所有验证节点对此均可以达成共识。
在一实施例中,可以将处理交易的规则通过智能合约(Smart Contract)发布至区块链系统110中的每个验证节点。通过该方式,可以使得区块链系统110具有公开透明、不可篡改等特点。其中,智能合约例如可以采用静态类型的编程语言(Solidity)来实现。
根据本公开的实施例,该区块链系统例如可以为联盟链系统,作为验证节点的各终端由联盟认可的成员创建并维护。新成员的加入需要联盟链系统中所有的成员共同决定。
根据本公开的实施例,如图1所示,该应用场景100例如还可以包括电子设备120、130、140。每个电子设备与区块链系统110中的至少一个验证节点通信连接,用于发起交易请求。在任一电子设备发起交易请求时,与该任一电子设备通信连接的至少一个验证节点中被任一电子设备指定的验证节点为主节点,该主节点用于根据交易请求生成交易共识请求,并广播给区块链系统110中的所有验证节点。在所有验证节点接收到该交易共识请求后,可以根据交易共识请求对交易请求所针对的交易进行共识验证。在验证通过的情况下,区块链系统110中的各验证节点根据交易共识请求对交易请求所针对的交易进行处理,完成一次记账或数据更新。
示例性地,电子设备120、130、140例如可以为具有处理功能的各种电子设备,包括但不限于服务器、台式计算机、膝上型便携计算机、平板电脑或智能手机等等。
需要说明的是,本公开提供的应用于区块链中验证节点的交易处理方法可以由区块链系统中的任意一个验证节点来执行。相应地,公开提供的应用于区块链中验证节点的交易处理装置可以设置在区块链系统中的任意一个验证节点中。
可以理解的是,图1描述的终端、电子设备的个数和类型仅作为示例以利于理解本公开。根据实际需求,可以具有任意个数和类型的终端、电子设备。
以下将基于图1描述的场景,通过图2~图6对公开实施例的应用于区块链中验证节点的交易处理方法进行详细描述。
图2示意性示出了根据本公开实施例的应用于区块链中验证节点的交易处理方法的流程图。
如图2所示,该实施例的交易处理方法200可以包括操作S210~操作S230,该交易处理方法可以由区块链系统中的任意一个验证节点执行。
在操作S210,响应于接收到多个验证节点中第一验证节点广播的交易共识请求,确定接收交易共识请求的第一时间信息,该交易共识请求携带有生成交易共识请求的第二时间信息。
根据本公开的实施例,任意一个验证节点可以在接收到交易共识请求时,获取该任意一个验证节点的当前系统时间,将该当前系统时间作为第一时间信息。第一验证节点为区块链系统中用于根据交易请求生成交易共识请求的验证节点。
根据本公开的实施例,第二时间信息例如可以指示第一验证节点在生成交易共识请求时的系统时间。
在操作S220,获取与第一验证节点之间的时间差信息。
根据本公开的实施例,在区块链系统中存在位于不同时区的验证节点时,每个验证节点可以维护有针对与其他验证节点之间的时间差信息的时间差列表。该时间差列表可以包括其他验证节点的节点编号与当前验证节点与节点编号对应的其他验证节点之间的时间差信息之间的映射关系。
示例性地,交易共识请求中例如可以包括有第一验证节点的节点编号。可以根据交易共识请求中的节点编号查询时间差列表,查询到与该第一验证节点的节点编号具有映射关系的时间差信息,作为与第一验证节点之间的时间差信息。
根据本公开的实施例,在区块链系统中加入新的验证节点时,该新的验证节点例如可以通过网络向区块链系统中的其他节点广播其时间信息,在广播时间信息时携带该新的验证节点的编号。其他验证节点在接收到该新的验证节点广播的时间信息后,可以根据该接收的时间信息与自身系统的时间信息确定与新的验证节点之间的时间差信息,并构建该时间差信息与新的验证节点的编号之间的映射关系,将该构建的映射关系添加至时间差列表。
在操作S230,在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求超时的情况下,丢弃共识交易请求。
根据本公开的实施例,可以根据在交易共识请求由第一验证节点发送后,当前验证节点接收到交易共识请求所需的传输时长来确定交易共识请求是否超时。例如,若所需的传输时长大于预定长度,则确定该交易共识请求超时。
示例性地,当前验证节点接收到交易共识请求时的当前系统时间为第一时间信息,第二时间信息指示第一验证节点在生成交易共识请求时的系统时间。因此,在第一验证节点与当前验证节点之间的时间差为零的情况下,第一时间信息指示的时间(具体由时刻表示)与第二时间信息指示的时间(具体由时刻表示)之间的时间段长度为传输时长。
示例性地,在当前验证节点与第一验证节点之间的时间差不为零的情况下,该实施例可以先计算第一时间信息指示的时刻与第二时间信息指示的时刻之间的第一时间段的长度。然后计算该第一时间段的长度与时间差信息指示的第二时间段长度之间的差值。最后判断该差值是否大于预定长度。在该差值大于预定长度的情况下,确定交易共识请求超时。
可以理解的是,预定长度可以根据实际需求进行设定。例如,该预定长度可以为在区块链系统中各验证节点处于正常工作状态,且彼此之间通信连接的网路通讯正常的情况下,各验证节点接收到交易共识请求所需的最大时长。或者,预定长度可以为该最大时长与预定值之和。其中,预定值例如可以为10s、30s等较小的值。该预定值可以为区块链系统所允许的信息传输延时长度。
该实施例通过根据时间差信息及交易共识请求的生成时间和接收时间来确定交易共识请求是否超时,并在确定交易共识请求超时的情况下直接丢弃接收的交易共识请求,而不再对交易共识请求进行共识验证,可以有效提高区块链系统的处理效率,避免资源浪费。
根据本公开的实施例,在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求不超时的情况下,当前验证节点可以根据该交易共识请求对针对第一验证节点发起的交易请求进行共识验证。具体即为对与第一验证节点通信连接的电子设备发起的交易请求进行共识验证。
示例性地,可以采用区块链领域中通用的共识机制进行交易共识请求所针对的交易请求的共识验证。共识机制例如可以包括工作量证明机制(Proofofwork,pow)、权益证明机制(Proofof Stake,POS)、实用拜占庭容错机制(Practical Byzantine FaultTolerance,PBFT)、授权拜占庭容错机制(delegated Byzantine Fault Tolerance,dBFT)等。
在一实施例中,可以采用PBFT算法来对交易请求进行共识验证。该PBFT算法为一种状态机副本复制算法。该PBFT算法的工作原理如下:第一验证节点在接收到交易请求后,对交易请求进行验证,验证通过后向区块链系统中的所有验证节点发起pre-prepare消息(即发送交易共识请求)。该所有验证节点在接收到pre-prepare消息后,第一步是进行校验,包括校验数据的顺序是否正确,操作的先后有序性是否合理及交易是否有效(例如交易是否有签名等)。所有验证节点在验证交易无误后,将该pre-prepare消息写到本地磁盘中,然后广播prepare消息,同时自己也进入prepare阶段。随后,所有验证节点统计接收到的针对该交易共识请求的prepare消息个数,当统计结果为接收到超过2f个节点发送的prepare消息,则表明区块链系统中的大部分验证节点已经完成了持久化,并使得自己进入commit阶段。随后广播commit消息,并且统计接收到的commit消息的数量。当接收到超过2f个验证节点发出的commit消息时,根据交易共识请求写入数据,运用自己的状态机,更新稳态检查点(stable checkpoint),并缓存交易请求,将请求结果反馈给发起交易请求的电子设备。在电子设备统计反馈的验证节点超过f个时,表示交易已经被区块链系统中的大部分验证节点确认,确定交易成功。其中,f表示区块链系统可支持的容错验证节点个数,该f的取值可以根据实际需求进行设定,本公开对此不作限定。其中,区块链系统中验证节点的个数可以为(3f+1)个,或者为大于(3f+1)的任意个数。
图3示意性示出了根据本公开另一实施例的应用于区块链中验证节点的交易处理方法的流程图。
根据本公开的实施例,区块链系统中的各个验证节点例如还可以定期向其他验证节点发送自己实时的时间信息,以便于其他验证节点根据接收的时间信息对维护的时间差列表进行更新。以此可以避免在区块链系统中某个验证节点的时间信息发生变化时,其他验证节点因未更新时间差导致的对交易共识请求是否超时的判断结果不准确的情况。并因此实现区块链系统中不同验证节点间的时钟同步,实现验证节点之间通讯超时的准确处理。
如图3所示,该实施例的应用于区块链中验证节点的交易处理方法300除了前文描述的操作S210~操作S230外,还可以包括操作S340和操作S350。
在操作S340,响应于接收到多个验证节点中第二验证节点广播的时钟同步共识请求,对时钟同步共识请求进行共识验证,时钟同步共识请求携带有第二验证节点的第三时间信息。
根据本公开的实施例,该操作S340例如可以采用与针对交易请求进行共识验证的算法类似的算法来对时钟同步共识请求进行共识验证。其中,第二验证节点可以为区块链系统中除了当前验证节点外的任意一个验证节点。第三时间信息例如可以为第二验证节点发送时钟同步共识请求时的系统时间。
在操作S350,在对时钟同步共识请求的共识验证成功的情况下,根据接收时钟同步共识请求的时间信息和第三时间信息更新与第二验证节点之间的时间差信息。
根据本公开的实施例,当前验证节点例如可以在接收到时钟同步共识请求时,先采用与前文操作S210描述的类似的方法来确定接收时钟同步共识请求时的时间信息。然后再对时钟同步共识请求进行共识验证。在确认共识验证成功的情况下,计算接收时钟同步共识请求时的时间信息指示的时间与第三时间信息指示的时间之间的时间段长度。将该时间段长度作为当前验证节点与第二验证节点之间的最新时间差信息,以替换已存储的与第二验证节点之间的时间差信息。
示例性地,为了便于对时间差信息进行更新,时钟同步共识请求例如可以携带有第二验证节点的节点编号,在替换已存储的与第二验证节点之间的时间差信息时,根据节点编号查找时间差列表中与第二验证节点之间的时间差信息,以作为被替换的时间差信息。
根据本公开的实施例,区块链系统中的每个验证节点例如可以定期的发送时钟同步共识请求。区块链系统可以引入验证节点间时钟同步智能合约来实现验证节点间的时间信息交互,通过心跳包发送机制定时发起时钟同步共识请求,从而使得每个验证节点上都保存有与区块链系统上所有验证节点的最新时间差数据。其中,由于时钟同步智能合约也是运行在区块链上的,因此具有去中心化及防篡改的特点,从而可以保证超时计算的真实有效。在此基础上,每个验证节点例如可以周期性的根据系统当前时间信息发起时钟同步共识请求。以下将结合图4对验证节点发起同步共识请求的原理进行详细描述。
图4示意性示出了根据本公开实施例的应用于区块链中验证节点的交易处理方法的原理示意图。
如图4所示,该实施例400中,应用于区块链中验证节点的交易处理方法例如还可以包括由当前验证节点定期向区块链中的所有验证节点广播时钟同步共识请求的操作。具体地,区块链系统中的当前验证节点可以定期获取当前时间信息410。根据某一时刻获取的第一当前时间信息和当前验证节点的节点编号420来确定针对第一当前时间信息的区块数据430。随后根据区块数据430生成针对区块数据的第一哈希值440,并设定该区块数据430的区块高度450为预设高度。随后将该区块数据430、第一哈希值440和区块高度450封装为时钟同步共识请求460。最后向区块链系统470中的所有验证节点广播封装得到的时钟同步共识请求460。
根据本公开的实施例,例如可以先获取当前验证节点的时间戳,然后将节点编号和当前验证节点的时间戳封装为区块数据,将区块高度设定为1。然后将区块数据转换为二进制数据,通过算法将该二进制数据映射为固定长度的二进制值,将映射得到的固定长度的二进制值作为针对区块数据的第一哈希值。其中,第一哈希值的长度例如可以根据实际需求进行设定,例如该长度为256位。随后,将区块数据、第一哈希值和区块高度封装为区块链系统通信所采用协议的报文,该封装得到的报文即为时钟同步共识请求。
根据本公开的实施例,在向区块链中所有节点广播时钟同步共识请求后,可以采用第一共识算法对时钟同步共识请求进行共识验证。该实施例中,区块链系统中的每个验证节点例如可以维护针对时钟同步共识请求的重发次数。该重发次数的初始值为0,每个验证节点针对同一时间信息每发送一次时钟同步共识请求,该重发次数的值加1。
如图4所示,该实施例在采用第一共识算法确定时钟同步共识请求的共识验证失败的情况下,可以先获取本地维护的针对该次发送的时钟同步共识请求的重发次数480。然后执行操作S410,判断该重发次数是否小于预定次数。若小于预定次数,则向区块链中的所有验证节点重新广播时钟同步共识请求。否则,结束此次时钟同步共识请求。其中,预定次数可以根据实际需求进行设定,例如,该预定次数可以为3,本公开对此不做限定。第一共识算法例如可以与前文描述的对交易进行共识验证的算法相同或类似,在此不再赘述。该实施例通过根据重发次数确定是否对时钟同步共识请求进行重发,可以避免在区块链系统中网络不稳定所导致的无法实时更新时间差信息的情况,并因此可以进一步提高各验证节点维护的时间差列表的准确性,提高确定交易共识请求是否超时的准确性。
示例性地,在采用第一共识算法确定时钟同步共识请求的共识验证成功的情况下,当前验证节点可以将区块数据、第一哈希值和区块序号作为最新区块数据进行持久化,并将重发次数置为初始值0。
根据本公开的实施例,在对第一哈希值、区块高度和区块数据进行封装之前,该实施例还可以将区块数据、第一哈希值和区块高度构成数组,并将该数组存储至第一预定存储空间490。该第一预定存储空间490例如可以为当前验证节点的磁盘中的任意存储空间。以此可以避免在封装时钟同步共识请求及发送时钟同步共识请求的过程中数据的丢失。
相应地,在当前验证节点根据第一共识算法确定对时钟同步共识请求的共识验证成功的情况下,可以将第一预定存储空间中存储的区块数据、第一哈希值和区块序号作为最新区块数据进行持久化。随后删除第一预定存储空间490存储的由区块数据、第一哈希值和区块高度构成的数组。
图5示意性示出了根据本公开又一实施例的应用于区块链中验证节点的交易处理方法的流程图。
根据本公开的实施例,在与当前验证节点通信连接的电子设备以该当前验证节点为主节点发送交易请求时,该当前验证节点还可以根据交易请求向区块链中所有验证节点发送交易共识请求。
如图5所示,该实施例的应用于区块链中验证节点的交易处理方法500除了前文描述的操作S210~操作S230外,例如还可以包括操作S540~操作S560。
在操作S540,响应于接收到交易请求,获取第二当前时间信息。
根据本公开的实施例,该操作S540获取第二当前时间信息的方法与前文描述的操作S210确定第一时间信息的方法类似。该第二当前时间信息指示接收到交易请求时当前验证节点的系统时间。
根据本公开的实施例,交易请求例如可以为前文描述的电子设备发送的数据添加请求、数据修改请求或数据删除请求等。
在操作S550,根据第二当前时间信息、交易请求和节点编号生成针对交易请求的交易共识请求。
在操作S560,向区块链中的验证节点广播交易共识请求。
根据本公开的实施例,可以采用与前文描述的将区块数据、第一哈希值和区块高度封装为时钟同步共识请求的方法类似的方法,来将第二当前时间信息、交易请求和节点编号封装为交易共识请求。在此不再赘述。
可以理解的是,在封装为区块链系统通信所采用协议的报文时,例如可以交易请求作为报文内容,将第二当前时间信息作为报文的时间戳,将节点编号作为报文的标识位的取值。
在得到交易共识请求后,可将交易共识请求广播给区块链中的所有验证节点,以便于所有验证节点经由前文描述的操作S210~操作S230对交易共识请求进行超时判断,并在判断交易共识请求不超时的情况下对交易请求进行共识验证,在判断交易共识请求超时的情况下丢弃该交易共识请求。
根据本公开的实施例,在获取第二当前时间信息之前,例如可以响应于接收到交易请求,对交易请求信息判重操作,以确定该交易请求所请求的交易是否为重复交易。具体地,验证节点可以维护有其接收的交易请求所请求交易的标识符,该标识符与交易一一对应。相应地,电子设备在发送交易请求时,可以将交易请求所请求交易的标识符作为携带信息一并发送给验证节点。验证节点在接收到交易请求时,可以先判定其维护的标识符中是否包括交易请求所携带的标识符。若包括,则确定该交易请求所请求的交易(即交易请求所针对的交易)为重复交易,否则确定交易请求所针对的交易不是重复交易。该实施例可以仅在确定交易请求所针对的交易不是重复交易的情况下,获取第二当前时间信息,并执行向区块链中所有验证节点发送针对该交易请求的交易共识请求。通过此方式,可以避免验证节点对交易请求所针对交易的重复处理,并因此可以在一定程度上保证交易处理的准确性。
图6示意性示出了根据本公开另一实施例的应用于区块链中验证节点的交易处理方法的原理示意图。
根据本公开的实施例,在接收到交易请求后,该实施例还可以对交易请求进行存储,以避免在后续处理过程中交易请求被丢失。
如图6所述,该实施例600在接收到交易请求610后,可以响应于接收到交易请求,生成针对交易请求610的第二哈希值620。具体即为对交易请求610进行计算,得到第二哈希值620。计算第二哈希值的方法与前文描述的计算第一哈希值的方法类似,在此不再赘述。
在得到第二哈希值620后,该实施例可以将第二哈希值620作为键值对中键的取值,将交易请求610作为键值对中值的取值,将第二哈希值620与交易请求610以键值对的形式存储至第二预定存储空间630。其中,第二预定存储空间630可以为当前验证节点的磁盘中的任意存储空间。该第二预定存储空间630与前文描述的第一预定存储空间可以属于磁盘中的不同存储分区。
相应地,在前述根据当前验证节点与第一验证节点之间的时间差信息640、第一时间信息650和第二时间信息660得到交易共识请求超时670的判定结果时,当前验证节点可以将第二预定存储空间630中存储的针对第二哈希值和交易请求的键值对。以此避免超时交易请求相关的信息对存储空间的长期占用,提高存储空间的利用率。
基于以上应用于区块链中验证节点的交易处理方法,本公开还提供了一种用于执行该交易处理方法的交易节点。以下将结合图7对该交易节点的结构进行详细描述。
图7示意性示出了根据本公开实施例的适于执行应用于区块链中验证节点的交易处理方法的验证节点的结构示意图。
如图7所示,验证节点700可以设置有收发装置710、交易路由装置720、时钟同步共识执行装置730和交易共识执行装置740。
示例性地,该验证节点700可以为作为业务链的区块链系统中的任意一个节点。业务链是根据前述电子设备所运行的业务系统的上链业务需求组建得到的。区块链系统中的每个验证节点均属于业务链的成员节点。每个验证节点都部署有进行节点间时钟同步的智能合约及与业务系统进行业务交互的业务智能合约。其中,时钟同步的智能合约通过定时器配置及驱动,每个验证节点配置相同的时间间隔,通过心跳包的方式发起时钟同步共识请求。其中,业务系统是发起交易请求的系统。该业务系统可以向业务链上通信连接的验证节点发起业务交易请求,并接收验证节点的交易请求处理返回信息,以完成交易请求处理的闭环处理逻辑。
根据本公开的实施例,如图7所示,收发装置710可以包括交易请求收发模块711和心跳定时器控制模块712。
交易请求收发模块711用于根据交易证书对接收的交易请求进行验密,检测业务智能合约是否已经正常部署且运行在当前验证节点上。检测无误后对交易请求所针对的交易是否为重复提交交易进行判定。在判定交易请求不是重复提交交易时,则将交易请求转发至交易路由装置720。
心跳定时器控制模块712在验证节点700启动时会加载设置的时钟同步定时时间间隔配置,同时生成定时任务。按设定的时间间隔生成时钟同步的定时心跳包触发请求,并将该心跳包触发请求提交至交易路由装置720。
交易路由装置720根据接收的请求进行请求类型判断。其中,交易请求和心跳包触发请求携带有不同的标识信息。交易路由装置720可以根据接收的请求中携带的标识信息对请求类型进行判断。在判断接收的请求为交易请求时,则向交易请求添加时间戳和节点编号后发送给交易共识执行装置740。在判断接收的请求为心跳包触发请求时,则将心跳包触发请求转发给时钟同步共识执行装置730。
根据本公开的实施例,时钟同步共识执行装置730可以包括时钟同步心跳包发送模块731、时钟同步心跳包共识模块732和时间差计算模块733。
时钟同步心跳包发送模块731用于根据心跳包触发请求生成时钟同步共识请求。具体用于获取验证节点700的当前时间戳,将当前时间戳和共识请求封装为时钟同步智能合约共识请求信息,并将该时钟同步智能合约共识请求信息广播到业务链中的所有验证节点中。
时钟同步心跳包共识模块732是时钟同步共识执行装置730的核心模块,用于使用PBFT算法对接收到的时钟同步共识请求进行三段式共识过程,第一阶段为pre-prepare共识,第二阶段为prepare共识,第三阶段为commit共识,三个阶段顺序执行。在当前阶段累计收到(2f+1)个其他验证节点的一致确认消息后,当前阶段的共识完成并进入下一阶段。三个阶段的共识全部完成后表示该时钟同步共识请求合法,则将共识通过的时间戳写入区块进行持久化背书。
时间差计算模块733用于记录验证节点700与业务链上其他验证节点的时间差数据,在每次完成对时钟同步共识请求的共识验证,并共识验证成功的情况下,该模块会根据本次时钟同步共识请求中节点编号及共识通过的时间戳,更新验证节点700与节点编号对应的验证节点间的时间差数据。
根据本公开的实施例,交易共识执行装置740可以包括交易共识模块741和交易超时校验模块742。
交易共识模块741用于对交易请求参数进行校验并进行交易共识处理,负责校验交易请求参数及来源等信息,将交易请求区块的哈希值和交易共识请求保存到本地磁盘中。将区块序号加1,并将交易共识请求广播到业务链中的所有验证节点。该交易共识模块741同时可接收业务链中其他验证节点发起的交易共识请求。
根据本公开的实施例,接收到交易共识请求后,先经由交易超时校验模块742对交易共识请求进行超时判断,如果交易已超时则记录日志后丢弃。如果交易未超时则使用PBFT算法对交易进行三段式共识处理,第一阶段为pre-prepare共识,第二阶段为prepare共识,第三阶段为commit共识,三个阶段顺序执行。三个阶段的共识全部完成后表示该交易共识请求所针对的交易合法,按业务智能合约逻辑处理交易,并将处理后的数据写入区块进行持久化。
交易超时校验模块742用于根据时间差计算模块733中记录的验证节点700与业务链上所有其他验证节点的时间差数据,并根据当前交易共识请求中的节点编号及交易请求时间戳进行时间差计算。例如,若验证节点700的编号为VP0,验证节点700接收到交易共识请求所携带的时间戳为TimeStamp,交易共识请求中的节点编号为VP1,验证节点700接收到交易共识请求时的时间戳为nowtimeStamp,当前节点VP0与交易请求节点VP1间的时间差为timeDiff。则可以确定交易耗时△T=nowTimeStamp-timeStamp-timeDiff。将得到的交易耗时与业务链中业务智能合约设置的交易共识超时时间阈值T进行比较,若交易耗时△T大于超时时间阈值T,则表示当前交易共识请求已超时,若交易耗时△T小于等于超时时间阈值T,则表示当前交易共识请求未超时。
可以理解的是,该实施例的验证节点700的结构仅作为示例以利于理解本公开,根据实际需求,该验证节点700可以具有任意结构,本公开对该验证节点700的具体结构不做限定。
通过以上应用于区块链中验证节点的交易处理方法的设置及验证节点的结构设置,本公开可以基于智能合约的执行保证每个验证节点上保存有与所有其他验证节点的时间差数据,保证过程安全可溯。再者,区块链系统中的验证节点间的时钟同步基于时钟同步智能合约实现,通过共享时间戳实时更新时间差的模式判断超时,可以使得超时的判断不受区块链中验证节点所部署的机房、城市或时区的影响,支持区块链系统跨区域跨时区的灵活部署。最后,通过根据验证节点中维护的交易时间差,对每个验证节点发起的交易共识请求进行超时判断,及时丢弃超时失效交易,可以避免因处理失效交易引起的系统资源浪费,提升区块链系统的整体处理性能。
基于上述应用于区块链中验证节点的交易处理方法,本公开还提供了一种应用于区块链中验证节点的交易处理装置。以下将结合图8对该装置进行详细描述。
图8示意性示出了根据本公开实施例的应用于区块链中验证节点的交易处理装置的结构框图。
如图8所示,该实施例的应用于区块链中验证节点的交易处理装置800例如可以包括时间信息确定模块810、时间差获取模块820和请求丢弃模块830。
时间信息确定模块810用于响应于接收到多个验证节点中第一验证节点广播的交易共识请求,确定接收交易共识请求的第一时间信息,该交易共识请求携带有生成交易共识请求的第二时间信息。在一实施例中,时间信息确定模块810可以用于执行前文描述的操作S210,在此不再赘述。
时间差获取模块820用于获取与第一验证节点之间的时间差信息。在一实施例中,时间差获取模块820可以用于执行前文描述的操作S220,在此不再赘述。
请求丢弃模块830用于在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求超时的情况下,丢弃共识交易请求。在一实施例中,请求丢弃模块830可以用于执行前文描述的操作S230,在此不再赘述。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理装置800还可以包括第一共识验证模块和信息更新模块。第一共识验证模块用于响应于接收到多个验证节点中第二验证节点广播的时钟同步共识请求,对时钟同步共识请求进行共识验证,该时钟同步共识请求携带有第二验证节点的第三时间信息。信息更新模块用于在对时钟同步共识请求的共识验证成功的情况下,根据接收时钟同步共识请求的时间信息和第三时间信息更新与第二验证节点之间的时间差信息。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理装置800还可以包括区块数据确定模块、区块信息确定模块、信息封装模块和第一请求广播模块。区块数据确定模块用于周期性地确定针对第一当前时间信息的区块数据,区块信息确定模块用于确定针对区块数据的第一哈希值和区块高度,信息封装模块用于将区块数据、第一哈希值和区块高度封装为时钟同步共识请求,第一请求广播模块用于向区块链中的验证节点广播时钟同步共识请求。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理装置800还可以包括重发次数确定模块,用于在根据第一共识算法确定对时钟同步共识请求的共识验证失败的情况下,确定时钟同步共识请求的重发次数。第一请求广播模块还用于在重发次数小于预定次数的情况下,向区块链中的验证节点重新广播时钟同步共识请求。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理装置800还可以包括数组存储模块和数组删除模块,数组存储模块用于在信息封装模块将区块数据、第一哈希值和区块高度封装为时钟同步共识请求之前,将区块数据、第一哈希值和区块高度构成的目标数组存储至第一预定存储空间。数组删除模块用于在第一共识验证模块根据第一共识算法确定对时钟同步共识请求的共识验证成功的情况下,删除第一预定存储空间存储的目标数组。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理装置800还可以包括第二共识验证模块,用于在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求未超时的情况下,响应于交易共识请求,采用第二共识算法对针对第一验证节点发起的交易请求进行共识验证。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理装置800还可以包括时间信息获取模块、共识请求生成模块和第二请求广播模块。时间信息获取模块用于响应于接收到交易请求,获取第二当前时间信息。共识请求生成模块用于根据第二当前时间信息、交易请求和节点编号生成针对交易请求的交易共识请求。第二请求广播模块用于向区块链中的验证节点广播交易共识请求。
根据本公开的实施例,时间信息获取模块用于在确定交易请求所针对的交易不是重复交易的情况下,获取第二当前时间信息。
根据本公开的实施例,上述应用于区块链中验证节点的交易处理装置800还可以包括哈希值生成模块、数值存储模块和数值删除模块。哈希值生成模块用于响应于接收到交易请求,生成针对交易请求的第二哈希值。数值存储模块用于将第二哈希值与交易请求以键值对的形式存储至第二预定存储空间。数值删除模块用于在根据时间差信息、第一时间信息和第二时间信息确定交易共识请求超时的情况下,删除第二预定存储空间中存储的针对第二哈希值和交易请求的键值对。
根据本公开的实施例,在第一时间信息指示的时刻与第二时间信息指示的时刻之间的第一时间段长度,与时间差信息指示的第二时间段长度之间的差值大于预定长度的情况下,确定交易共识请求超时。
根据本公开的实施例,应用于区块链中验证节点的交易处理装置800中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,应用于区块链中验证节点的交易处理装置800包括的多个模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,应用于区块链中验证节点的交易处理装置800包括的多个模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于实现应用于区块链中验证节点的交易处理方法的电子设备的方框图。
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (13)
1.一种应用于区块链中验证节点的交易处理方法,其中,所述区块链包括多个验证节点,所述方法包括:
响应于接收到所述多个验证节点中第一验证节点广播的交易共识请求,确定接收所述交易共识请求的第一时间信息,所述交易共识请求携带有生成所述交易共识请求的第二时间信息;
获取与所述第一验证节点之间的时间差信息;以及
在根据所述时间差信息、所述第一时间信息和所述第二时间信息确定所述交易共识请求超时的情况下,丢弃所述交易共识请求。
2.根据权利要求1所述的方法,还包括:
响应于接收到所述多个验证节点中第二验证节点广播的时钟同步共识请求,对所述时钟同步共识请求进行共识验证,所述时钟同步共识请求携带有所述第二验证节点的第三时间信息;以及
在对所述时钟同步共识请求的共识验证成功的情况下,根据接收所述时钟同步共识请求的时间信息和所述第三时间信息更新与所述第二验证节点之间的时间差信息。
3.根据权利要求2所述的方法,还包括周期性执行的以下操作:
确定针对第一当前时间信息的区块数据;
确定针对所述区块数据的第一哈希值和区块高度;
将所述区块数据、所述第一哈希值和所述区块高度封装为时钟同步共识请求;以及
向所述区块链中的验证节点广播所述时钟同步共识请求。
4.根据权利要求3所述的方法,还包括:
在根据第一共识算法确定对所述时钟同步共识请求的共识验证失败的情况下,确定所述时钟同步共识请求的重发次数;以及
在所述重发次数小于预定次数的情况下,向所述区块链中的验证节点重新广播所述时钟同步共识请求。
5.根据权利要求3或4所述的方法,还包括:
在将所述区块数据、所述第一哈希值和所述区块高度封装为时钟同步共识请求之前:将所述区块数据、所述第一哈希值和所述区块高度构成的目标数组存储至第一预定存储空间;以及
在根据第一共识算法确定对所述时钟同步共识请求的共识验证成功的情况下,删除所述第一预定存储空间存储的所述目标数组。
6.根据权利要求1所述的方法,还包括在根据所述时间差信息、所述第一时间信息和所述第二时间信息确定所述交易共识请求未超时的情况下:
响应于所述交易共识请求,采用第二共识算法对针对所述第一验证节点发起的交易请求进行共识验证。
7.根据权利要求1所述的方法,还包括:
响应于接收到交易请求,获取第二当前时间信息;
根据所述第二当前时间信息、所述交易请求和节点编号生成针对所述交易请求的交易共识请求;以及
向所述区块链中的验证节点广播所述交易共识请求。
8.根据权利要求7所述的方法,其中,获取第二当前时间信息包括:
在确定所述交易请求所针对的交易不是重复交易的情况下,获取所述第二当前时间信息。
9.根据权利要求7所述的方法,还包括:
响应于接收到交易请求,生成针对所述交易请求的第二哈希值;
将所述第二哈希值与所述交易请求以键值对的形式存储至第二预定存储空间;以及
在根据所述时间差信息、所述第一时间信息和所述第二时间信息确定所述交易共识请求超时的情况下,删除所述第二预定存储空间中存储的针对所述第二哈希值和所述交易请求的键值对。
10.根据权利要求1所述的方法,其中,
在所述第一时间信息指示的时刻与所述第二时间信息指示的时刻之间的第一时间段长度,与所述时间差信息指示的第二时间段长度之间的差值大于预定长度的情况下,确定所述交易共识请求超时。
11.一种应用于区块链中验证节点的交易处理装置,其中,所述区块链包括多个验证节点,所述装置包括:
时间信息确定模块,用于响应于接收到所述多个验证节点中第一验证节点广播的交易共识请求,确定接收所述交易共识请求的第一时间信息,所述交易共识请求携带有生成所述交易共识请求的第二时间信息;
时间差获取模块,用于获取与所述第一验证节点之间的时间差信息;以及
请求丢弃模块,用于在根据所述时间差信息、所述第一时间信息和所述第二时间信息确定所述交易共识请求超时的情况下,丢弃所述交易共识请求。
12.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~10中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110059225.4A CN112767151B (zh) | 2021-01-15 | 2021-01-15 | 应用于区块链中验证节点的交易处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110059225.4A CN112767151B (zh) | 2021-01-15 | 2021-01-15 | 应用于区块链中验证节点的交易处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112767151A CN112767151A (zh) | 2021-05-07 |
CN112767151B true CN112767151B (zh) | 2024-02-09 |
Family
ID=75702251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110059225.4A Active CN112767151B (zh) | 2021-01-15 | 2021-01-15 | 应用于区块链中验证节点的交易处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112767151B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505343A (zh) * | 2021-07-14 | 2021-10-15 | 上海点融信息科技有限责任公司 | 用于确定区块链的出块时间的方法、装置及可读存储介质 |
CN114401064B (zh) * | 2021-12-06 | 2023-10-31 | 西安电子科技大学 | 信任管理时间同步方法、系统、计算机设备、介质及终端 |
CN117035785B (zh) * | 2023-08-09 | 2024-05-14 | 云海链控股股份有限公司 | 一种区块链共识方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
CN109919768A (zh) * | 2019-03-12 | 2019-06-21 | 网易(杭州)网络有限公司 | 区块生成方法、装置、介质和计算设备 |
CN111339110A (zh) * | 2020-02-25 | 2020-06-26 | 中国工商银行股份有限公司 | 基于区块链的交易备份方法及系统 |
CN111681011A (zh) * | 2020-06-16 | 2020-09-18 | 中国工商银行股份有限公司 | 数据处理方法、区块链系统、计算机系统和介质 |
CN111951005A (zh) * | 2020-07-31 | 2020-11-17 | 中国工商银行股份有限公司 | 一种基于区块链的资金存管方法、装置及系统 |
-
2021
- 2021-01-15 CN CN202110059225.4A patent/CN112767151B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
CN109919768A (zh) * | 2019-03-12 | 2019-06-21 | 网易(杭州)网络有限公司 | 区块生成方法、装置、介质和计算设备 |
CN111339110A (zh) * | 2020-02-25 | 2020-06-26 | 中国工商银行股份有限公司 | 基于区块链的交易备份方法及系统 |
CN111681011A (zh) * | 2020-06-16 | 2020-09-18 | 中国工商银行股份有限公司 | 数据处理方法、区块链系统、计算机系统和介质 |
CN111951005A (zh) * | 2020-07-31 | 2020-11-17 | 中国工商银行股份有限公司 | 一种基于区块链的资金存管方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112767151A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112767151B (zh) | 应用于区块链中验证节点的交易处理方法和装置 | |
Suankaewmanee et al. | Performance analysis and application of mobile blockchain | |
US11133939B2 (en) | Private blockchain transaction management and termination | |
US11080691B2 (en) | Fork-tolerant consensus protocol | |
CN110597839B (zh) | 交易数据处理方法、装置、设备以及存储介质 | |
EP3545665B1 (en) | System and method for detecting replay attack | |
CN108804706B (zh) | 一种区块链数据处理方法、装置、设备及存储介质 | |
CN112073269B (zh) | 区块链网络测试方法、装置、服务器及存储介质 | |
US20210304201A1 (en) | Transaction verification method and apparatus, storage medium, and electronic device | |
US20230273912A1 (en) | Data processing method and apparatus for blockchain network, computer device, and computer-readable storage medium | |
WO2021031473A1 (zh) | 基于多资产模型的区块链资产处理方法及相关设备 | |
US20200202312A1 (en) | Method and system for selectively using network coding for propagating transactions in a blockchain network | |
CN111614761B (zh) | 区块链消息传输方法、装置、计算机以及可读存储介质 | |
CN109088722B (zh) | 区块链节点演进方法及区块链节点 | |
CN109194493B (zh) | 一种信息管理系统、方法及装置 | |
US20230259930A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
WO2023020242A1 (zh) | 基于区块链的数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
KR20220074971A (ko) | 블록체인 기반 데이터 프로세싱 방법, 장치 및 디바이스, 그리고 판독가능 저장 매체 | |
CN117251889B (zh) | 区块链共识方法、相关装置和介质 | |
CN116070285A (zh) | 基于拜占庭容错的异步共识方法、装置、服务器和介质 | |
US20230336368A1 (en) | Block chain-based data processing method and related apparatus | |
CN112860805A (zh) | 一种区块链数据交互方法及系统 | |
WO2021196091A1 (zh) | 文件存在性的证明方法、系统、服务器及存储介质 | |
US20230089235A1 (en) | Transaction processing method and apparatus, medium, and electronic device | |
CN116962449B (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 |