CN112541825A - 基于区块链的交易处理方法及装置、电子设备 - Google Patents
基于区块链的交易处理方法及装置、电子设备 Download PDFInfo
- Publication number
- CN112541825A CN112541825A CN202011463198.9A CN202011463198A CN112541825A CN 112541825 A CN112541825 A CN 112541825A CN 202011463198 A CN202011463198 A CN 202011463198A CN 112541825 A CN112541825 A CN 112541825A
- Authority
- CN
- China
- Prior art keywords
- transaction
- transaction information
- local cache
- block
- timestamp
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 230000002085 persistent effect Effects 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000015654 memory Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000002688 persistence Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于区块链的交易处理方法及装置、电子设备,该方法包括:根据最新共识区块的区块时间戳,移除本地缓存中未来时间戳小于所述区块时间戳的交易记录;将移除的所述交易记录存储在持久哈希表中;将所述最新共识区块的交易记录存储在本地缓存中;当接收到客户端发送的交易信息时,判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中。上述实施例提供的技术方案,可以避免重复交易,又可以避免交易遗漏。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种基于区块链的交易处理方法及装置、电子设备、计算机可读存储介质。
背景技术
区块链是指一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。
一个区块记录的就是一份账单,账单中存储着若干条交易记录,是买卖双方具体活动的最有力的证明,例如我们在淘宝上的购买记录,就是我们的消费账单。人们每天的消费记录是不断增长的,不可能永远放在一个区块里,所以,随着买卖记录的不断增加,就需要不断产生新的区块来存储这些数据。
如果A要和B达成一笔交易,A需要将交易信息发送到区块链节点,区块链节点可以对交易信息进行打包,产生新的区块。为避免交易重复打包,现有区块链节点通过设定条件窗口,不满足条件窗口的交易不会被打包,但是这种情况会导致某笔交易确实没有被执行过,但是因不满足条件窗口被去除,以后都无法被共识了,导致交易遗漏。
发明内容
本申请实施例提供了一种基于区块链的交易处理方法,用以同时避免交易遗漏和重复交易的产生
本申请实施例提供了一种基于区块链的交易处理方法,所述方法包括:
根据最新共识区块的区块时间戳,移除本地缓存中未来时间戳小于所述区块时间戳的交易记录;
将移除的所述交易记录存储在持久哈希表中;
将所述最新共识区块的交易记录存储在本地缓存中;
当接收到客户端发送的交易信息时,判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中。
在一实施例中,所述判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中,包括
根据所述交易信息的唯一标识,判断所述本地缓存中是否存在相同标识的交易记录;
如果所述本地缓存中不存在相同标识的交易记录,判断所述交易信息的未来时间戳是否大于等于当前***时间戳;
如果所述交易信息的未来时间戳小于当前***时间戳,判断所述交易信息是否存在所述持久哈希表中;
如果所述交易信息不存在所述持久哈希表中,将所述交易信息加入待共识队列中。
在一实施例中,在所述判断所述本地缓存中是否存在相同标识的交易记录之后,所述方法还包括:
如果所述本地缓存中存在相同标识的交易记录,向所述客户端返回交易正在处理的响应信息。
在一实施例中,在所述判断所述交易信息的未来时间戳是否大于等于当前***时间戳之后,所述方法还包括:
如果所述交易信息的未来时间戳大于等于当前***时间戳,再次检测所述本地缓存中是否已存在相同标识的交易记录;
如果再次检查得到所述本地缓存中不存在相同标识的交易记录,将所述交易信息加入待共识队列中。
在一实施例中,所述再次检测所述本地缓存中是否已存在相同标识的交易记录之后,所述方法还包括:
如果再次检查得到所述本地缓存中存在相同标识的交易记录,向所述客户端返回交易正在处理的响应信息。
在一实施例中,在所述判断所述交易信息是否存在所述持久哈希表中之后,所述方法还包括:
如果所述交易信息存在所述持久哈希表中,停止对所述交易信息的执行。
在一实施例中,在所述判断所述交易信息的未来时间戳是否大于等于当前***时间戳之前,所述方法还包括:
根据所述最新共识区块的区块时间戳和最大未来时间窗口,生成所述交易信息的未来时间戳。
本申请实施例还提供了一种基于区块链的交易处理装置,包括:
记录移除模块,用于根据最新共识区块的区块时间戳,移除本地缓存中未来时间戳小于所述区块时间戳的交易记录;
持久化存储模块,用于将移除的所述交易记录存储在持久哈希表中;
缓存模块,用于将所述最新共识区块的交易记录存储在本地缓存中;
交易查重模块,用于当接收到客户端发送的交易信息时,判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中。
本申请实施例还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述基于区块链的交易处理方法。
本申请实施例还提供了一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述基于区块链的交易处理方法。
上述实施例提供的技术方案,通过持久哈希表存储历史共识成功的区块,通过本地缓存存储最新共识成功的区块,通过判断交易信息是否存在本地缓存和持久哈希表中,如果均不存在,可以认为交易信息未被打包共识过,从而加入待共识队列中,由此可以避免重复交易,又可以避免交易遗漏。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为本申请一实施例提供的基于区块链的交易处理方法的应用场景示意图;
图2是本申请实施例提供的电子设备的框架示意图;
图3是本申请实施例提供的基于区块链的交易处理方法的流程示意图;
图4是图3对应实施例中步骤S340的细节流程图;
图5是本申请实施例提供的判断交易信息是否已执行的详细流程示意图;
图6是本申请实施例提供的基于区块链的交易处理装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本申请实施例提供的基于区块链的交易处理方法的应用场景示意图。如图1所示,该应用场景包括多个客户端11以及多个区块链节点12。区块链节点12是指区块链网络中的计算机、手机,矿机和服务器等等。客户端11可以是运行软件应用的计算机、智能手机等。客户端11与区块链节点12之间,以及多个区块链节点12之间通过网络连接。软件应用可以是购物类软件应用,转账类软件应用等。区块链节点12之间采用P2P(PeertoPeer,对等网络)网络架构。即每一个区块链节点12彼此对等,各个节点共同提供服务,不存在任何特殊节点。在一实施例中,多个区块链节点12可以是联盟链的成员,共识机制可以采用权益证明或PBTF(实用拜占庭容错)等共识算法,其共识过程由预先选好的节点控制。
按照以往的交易防重放机制,区块链节点在打包交易信息X之后,如果接收到比交易信息X的时间更早的交易记录Y,会认为此交易记录Y是已经执行过的,不参与打包。但是这笔交易记录Y确实没有被执行过,因此会存在交易遗漏。
本申请实施例中,区块链节点12根据最新共识区块的区块时间戳,移除本地缓存中未来时间戳小于区块时间戳的交易记录;将移除的交易记录存储在持久哈希表中;将最新共识区块的交易记录存储在本地缓存中。由此持久哈希表存储了已执行的交易记录,本地缓存中存储了最新共识区块的交易记录。
客户端11可以向区块链网络(包含多个区块链节点12)广播交易信息。当区块链节点12接收到客户端11发送的交易信息时,可以判断交易信息是否存在本地缓存和持久哈希表中。由此可以实现交易信息是否重放的判断,如果均不存在,将交易信息加入待共识队列中。由此,对于没有执行过的交易信息,不会遗漏,可以加入待共识队列中,由指定的区块链节点12进行打包共识。
图2是本申请实施例提供的电子设备的框架示意图。该电子设备可以作为区块链节点12,该电子设备100可以用于执行本申请实施例提供的基于区块链的交易处理方法。如图2所示,该电子设备100包括:一个或多个处理器102、一个或多个存储处理器102可执行指令的存储器104。其中,所述处理器102被配置为执行本申请下述实施例提供的基于区块链的交易处理方法。
所述处理器102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备100中的其它组件的数据进行处理,还可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的区块链的交易处理方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
在一实施例中,图2所示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线***112和/或其它形式的连接机构(未示出)互连。应当注意,图2所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置110可以采集对象的图像,并且将所采集的图像存储在所述存储器104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。
在一实施例中,用于实现本申请实施例的区块链的交易处理方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器102、存储器104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
在一实施例中,用于实现本申请实施例的区块链的交易处理方法的示例电子设备100可以被实现为诸如计算机、服务器、矿机。
图3是本申请实施例提供的基于区块链的交易处理方法的流程示意图,该方法可以应用于区块链节点。如图3所示,该方法包括以下步骤S310-步骤S340。
步骤S310:根据最新共识区块的区块时间戳,移除本地缓存中未来时间戳小于所述区块时间戳的交易记录。
在区块链技术中,多笔交易可以打包成一个区块进行存储,后续产生的多笔交易打包成另一个区块。多个区块链节点可以对打包的区块进行共识。最新共识区块是指最新一个共识成功的区块。区块时间戳是指最新一个共识成功的区块的生成时间。举例来说,区块链网络可以包括区块链节点A、B、C、D,共四个节点。本申请实施例以区块链节点A举例来说,区块链节点A可以接收出块节点(区块链网络中的其中一个节点)打包的区块以及区块时间戳。区块链节点A也可以进行区块的打包并生成区块时间戳,将打包的区块发送到其他节点进行共识。区块链节点A在将最新共识区块n上链阶段,可以删除本地缓存中未来时间戳小于区块时间戳的交易记录。以区块链节点A为例,本地缓存是指区块链节点A的内存。
交易记录可以包括交易金额、转账账户等信息。客户端发送交易记录到区块链节点时,区块链节点会为交易记录生成一个时间戳,称为未来时间戳(future Timestamp)。未来时间戳是客户端发送交易记录时,此时最后一个区块的生成时间戳加最大未来窗口的值(即future Timestamp=latest BlockTimestamp+MaxFutureTimeWindow)。举例来说,最大未来窗口时间可以是1800000毫秒,即半个小时。交易记录可以包括交易金额、转账账户等信息。
当有一个新的区块共识成功时,区块链节点根据最新共识区块的区块时间戳,删除本地缓存中未来时间戳小于区块时间戳的交易记录,由此本地缓存中不存在时间在区块生成时间之前的交易记录,即本地缓存中比较早期的交易记录被删除。
步骤S320:将移除的所述交易记录存储在持久哈希表中。
持久哈希表用于存储已完成的交易记录。从本地缓存中移除的交易记录可以先放入Flush Persist Queue(持久刷新队列)中,之后再将Flush Persist Queue中的所有交易记录存储在Persist Hash Table(持久哈希表)中。
步骤S330:将所述最新共识区块的交易记录存储在本地缓存中。
由此,本地缓存中始终存储的是最新共识成功的区块的交易记录。而持久哈希表中存储的是最新共识成功的区块之前,历史产生区块的交易记录。持久哈希表可以存储在本地磁盘中,读取本地磁盘的速度相对读取内存而言,较慢。
步骤S340:当接收到客户端发送的交易信息时,判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中。
针对区块链节点A而言,交易信息可以由客户端发送到区块链节点A,也可以由客户端发送到区块链节点B,再由区块链节点B转发到其他各个节点,由此区块链节点A可以接收到客户端发送的交易信息。为进行区分,当前接收到的交易数据称为交易信息。持久哈希表和本地缓存中存储的交易数据称为交易记录。
在一实施例中,可以根据交易信息的唯一标识(如哈希值),判断本地缓存和持久哈希表中是否存在相同哈希值的交易记录,如果本地缓存和持久哈希表中均不存在相同哈希值的交易记录,则可以认为客户端发送的交易信息没有被打包共识过,故可以将此交易信息加入待共识队列中。区块链节点可以从待共识队列中按序提取多条交易信息进行打包共识。
上述实施例提供的技术方案,通过持久哈希表存储历史共识成功的区块,通过本地缓存存储最新共识成功的区块,通过判断交易信息是否存在本地缓存和持久哈希表中,如果均不存在,可以认为交易信息未被打包共识过,从而加入待共识队列中,由此可以避免重复交易,又可以避免交易遗漏。
在一实施例中,如图4所示,上述步骤S340可以包括以下步骤S341-步骤S344。
步骤S341:根据所述交易信息的唯一标识,判断所述本地缓存中是否存在相同标识的交易记录。
相同的交易信息有且仅有一个相同的标识,交易信息不同,则标识不同。唯一标识可以是通过哈希算法计算得到的交易信息的哈希值。区块链节点根据交易信息的哈希值,可以判断本地缓存中是否存在此哈希值的交易记录。
步骤S342:如果所述本地缓存中不存在相同标识的交易记录,判断所述交易信息的未来时间戳是否大于等于当前***时间戳。
交易信息的未来时间戳,是交易信息发送到区块链节点时,区块链节点根据当前最新共识区块的区块时间戳和最大未来时间窗口生成的。故在判断交易信息的未来时间戳是否大于等于当前***时间戳之前,在客户端将交易信息发送到区块链节点时,区块链节点为交易信息生成未来时间戳。当前***时间戳是指区块链节点的***时间。如果区块链节点判断本地缓存中不存在与交易信息的唯一标识相同的交易记录,可以继续判断交易信息的未来时间戳是否大于等于当前***时间戳。
步骤S343:如果所述交易信息的未来时间戳小于当前***时间戳,判断所述交易信息是否存在所述持久哈希表中。
同样的,可以根据交易信息的唯一标识,判断此唯一标识是否存在持久哈希表中。
步骤S344:如果所述交易信息不存在所述持久哈希表中,将所述交易信息加入待共识队列中。
图5是本申请实施例提供的判断交易信息是否已执行的详细流程示意图,如图5所示:
步骤S501:根据所述交易信息的唯一标识,判断所述本地缓存中是否存在相同标识的交易记录。如果是,执行步骤S502;如果否,执行步骤S503;
步骤S502:向所述客户端返回交易正在处理的响应信息。
步骤S503:判断所述交易信息的未来时间戳是否大于等于当前***时间戳。如果是,执行步骤S504;如果否,执行步骤S505;
步骤S504:再次检测所述本地缓存中是否已存在相同标识的交易记录;
如果是,执行步骤S502。如果否,执行步骤S506。
步骤S505:判断所述交易信息是否存在所述持久哈希表中。如果存在,执行步骤S507;如果不存在,执行步骤S506;
步骤S506:将所述交易信息加入待共识队列中。
步骤S507:停止对所述交易信息的执行。可以认为该交易信息属于重复交易,可以直接抛弃该交易信息,不做出处理。
下述为本申请装置实施例,可以用于执行本申请上述基于区块链的交易处理方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请基于区块链的交易处理方法实施例。
图6为本申请一实施例示出的基于区块链的交易处理装置的框图,如图6所示,该装置包括:
记录移除模块610,用于根据最新共识区块的区块时间戳,移除本地缓存中未来时间戳小于所述区块时间戳的交易记录;
持久化存储模块620,用于将移除的所述交易记录存储在持久哈希表中;
缓存模块630,用于将所述最新共识区块的交易记录存储在本地缓存中;
交易查重模块640,用于当接收到客户端发送的交易信息时,判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中。
上述装置中各个模块的功能和作用的实现过程具体详见上述基于区块链的交易处理方法中对应步骤的实现过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种基于区块链的交易处理方法,其特征在于,所述方法包括:
根据最新共识区块的区块时间戳,移除本地缓存中未来时间戳小于所述区块时间戳的交易记录;
将移除的所述交易记录存储在持久哈希表中;
将所述最新共识区块的交易记录存储在本地缓存中;
当接收到客户端发送的交易信息时,判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中。
2.根据权利要求1所述的方法,其特征在于,所述判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中,包括
根据所述交易信息的唯一标识,判断所述本地缓存中是否存在相同标识的交易记录;
如果所述本地缓存中不存在相同标识的交易记录,判断所述交易信息的未来时间戳是否大于等于当前***时间戳;
如果所述交易信息的未来时间戳小于当前***时间戳,判断所述交易信息是否存在所述持久哈希表中;
如果所述交易信息不存在所述持久哈希表中,将所述交易信息加入待共识队列中。
3.根据权利要求2所述的方法,其特征在于,在所述判断所述本地缓存中是否存在相同标识的交易记录之后,所述方法还包括:
如果所述本地缓存中存在相同标识的交易记录,向所述客户端返回交易正在处理的响应信息。
4.根据权利要求2所述的方法,其特征在于,在所述判断所述交易信息的未来时间戳是否大于等于当前***时间戳之后,所述方法还包括:
如果所述交易信息的未来时间戳大于等于当前***时间戳,再次检测所述本地缓存中是否已存在相同标识的交易记录;
如果再次检查得到所述本地缓存中不存在相同标识的交易记录,将所述交易信息加入待共识队列中。
5.根据权利要求4所述的方法,其特征在于,所述再次检测所述本地缓存中是否已存在相同标识的交易记录之后,所述方法还包括:
如果再次检查得到所述本地缓存中存在相同标识的交易记录,向所述客户端返回交易正在处理的响应信息。
6.根据权利要求2所述的方法,其特征在于,在所述判断所述交易信息是否存在所述持久哈希表中之后,所述方法还包括:
如果所述交易信息存在所述持久哈希表中,停止对所述交易信息的执行。
7.根据权利要求1所述的方法,在所述判断所述交易信息的未来时间戳是否大于等于当前***时间戳之前,所述方法还包括:
根据所述最新共识区块的区块时间戳和最大未来时间窗口,生成所述交易信息的未来时间戳。
8.一种基于区块链的交易处理装置,其特征在于,包括:
记录移除模块,用于根据最新共识区块的区块时间戳,移除本地缓存中未来时间戳小于所述区块时间戳的交易记录;
持久化存储模块,用于将移除的所述交易记录存储在持久哈希表中;
缓存模块,用于将所述最新共识区块的交易记录存储在本地缓存中;
交易查重模块,用于当接收到客户端发送的交易信息时,判断所述交易信息是否存在本地缓存和持久哈希表中,如果均不存在,将所述交易信息加入待共识队列中。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-7任意一项所述的基于区块链的交易处理方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-7任意一项所述的基于区块链的交易处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011463198.9A CN112541825A (zh) | 2020-12-09 | 2020-12-09 | 基于区块链的交易处理方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011463198.9A CN112541825A (zh) | 2020-12-09 | 2020-12-09 | 基于区块链的交易处理方法及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112541825A true CN112541825A (zh) | 2021-03-23 |
Family
ID=75020101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011463198.9A Pending CN112541825A (zh) | 2020-12-09 | 2020-12-09 | 基于区块链的交易处理方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112541825A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860712A (zh) * | 2021-04-13 | 2021-05-28 | 深圳前海移联科技有限公司 | 一种基于区块链的交易数据库构建方法、***及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017204943A1 (en) * | 2016-05-24 | 2017-11-30 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permissioned blockchains using audit guarantees |
CN110008738A (zh) * | 2019-02-21 | 2019-07-12 | 网易(杭州)网络有限公司 | 用于区块链合约数据的缓存方法、装置、介质和计算设备 |
CN110569305A (zh) * | 2019-08-27 | 2019-12-13 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN110647582A (zh) * | 2019-09-17 | 2020-01-03 | 腾讯科技(深圳)有限公司 | 区块链网络共识校验的方法、装置、存储介质和计算机设备 |
CN110708171A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
US20200076625A1 (en) * | 2018-08-30 | 2020-03-05 | International Business Machines Corporation | High precision timestamps in blockchain |
CN111066046A (zh) * | 2019-04-26 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 抗重放攻击认证协议 |
CN111183446A (zh) * | 2019-09-02 | 2020-05-19 | 阿里巴巴集团控股有限公司 | 管理基于区块链的中心化账本*** |
CN111600720A (zh) * | 2020-05-20 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN111782644A (zh) * | 2020-07-27 | 2020-10-16 | 江苏工程职业技术学院 | 一种基于区块链技术的科研数据管理控制***及方法 |
-
2020
- 2020-12-09 CN CN202011463198.9A patent/CN112541825A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017204943A1 (en) * | 2016-05-24 | 2017-11-30 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permissioned blockchains using audit guarantees |
US20200076625A1 (en) * | 2018-08-30 | 2020-03-05 | International Business Machines Corporation | High precision timestamps in blockchain |
CN110008738A (zh) * | 2019-02-21 | 2019-07-12 | 网易(杭州)网络有限公司 | 用于区块链合约数据的缓存方法、装置、介质和计算设备 |
CN111066046A (zh) * | 2019-04-26 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 抗重放攻击认证协议 |
CN110569305A (zh) * | 2019-08-27 | 2019-12-13 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN111183446A (zh) * | 2019-09-02 | 2020-05-19 | 阿里巴巴集团控股有限公司 | 管理基于区块链的中心化账本*** |
CN110647582A (zh) * | 2019-09-17 | 2020-01-03 | 腾讯科技(深圳)有限公司 | 区块链网络共识校验的方法、装置、存储介质和计算机设备 |
CN110708171A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
CN111600720A (zh) * | 2020-05-20 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN111782644A (zh) * | 2020-07-27 | 2020-10-16 | 江苏工程职业技术学院 | 一种基于区块链技术的科研数据管理控制***及方法 |
Non-Patent Citations (1)
Title |
---|
刘伟;蔺宏宇;: "区块链技术原理及基于区块链技术的知识产权服务浅析", 产权导刊, no. 11, pages 65 - 69 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860712A (zh) * | 2021-04-13 | 2021-05-28 | 深圳前海移联科技有限公司 | 一种基于区块链的交易数据库构建方法、***及电子设备 |
CN112860712B (zh) * | 2021-04-13 | 2024-02-09 | 深圳前海移联科技有限公司 | 一种基于区块链的交易数据库构建方法、***及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11824996B2 (en) | Parachain data synchronization method, device and storage medium | |
JP6882474B2 (ja) | リプレイ攻撃の検出のためのシステム及び方法 | |
CN110569311B (zh) | 一种数据库的数据同步方法、设备和计算机存储介质 | |
US8055633B2 (en) | Method, system and computer program product for duplicate detection | |
WO2018179586A1 (ja) | 解析システム、解析方法及びプログラム | |
CN111444196B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN110971655A (zh) | 离线客户端重放和同步 | |
CN107896170B (zh) | 保险应用***的监控方法及装置 | |
US10031948B1 (en) | Idempotence service | |
CN108667921B (zh) | 一种基于网络旁路的银行业务推荐信息生成方法及*** | |
US9727394B2 (en) | Establishing causality order of computer trace records | |
CN109284331B (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
CN111639132B (zh) | 日志同步方法及设备 | |
CN107798039A (zh) | 一种数据同步方法和装置 | |
CN117278434A (zh) | 流量回放方法、装置、电子设备 | |
CN111444192A (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN112541825A (zh) | 基于区块链的交易处理方法及装置、电子设备 | |
CN110597461B (zh) | 块链式账本中的数据存储方法、装置及设备 | |
CN109359109B (zh) | 一种基于分布式流计算的数据处理方法及*** | |
CN107688978B (zh) | 用于检测重复订单信息的方法及装置 | |
CN110442439B (zh) | 任务进程处理方法、装置和计算机设备 | |
CN110545296A (zh) | 一种日志数据获取方法、装置及其设备 | |
CN115564429A (zh) | 预付费交易监管的***及相关方法和区块链 | |
CN111274255B (zh) | 业务数据监控方法及***、监控架构、设备、存储介质 | |
CN110266610B (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 |