CN112132583A - 区块链的交易处理方法、装置、电子设备及可读存储介质 - Google Patents
区块链的交易处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112132583A CN112132583A CN202010817651.5A CN202010817651A CN112132583A CN 112132583 A CN112132583 A CN 112132583A CN 202010817651 A CN202010817651 A CN 202010817651A CN 112132583 A CN112132583 A CN 112132583A
- Authority
- CN
- China
- Prior art keywords
- transaction
- information
- transaction information
- target
- stored
- 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
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
- 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
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Abstract
本申请实施例提供了一种区块链的交易处理方法、装置、电子设备及可读存储介质。该方法包括:获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;若存在账户余额为负值的情况,则从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息;基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。基于本方案,通过在第一交易中存在不能被执行的交易时,从缓存节点获取第二交易的交易信息,实现了将第一交易与第二交易共同进行打包。由于打包时补入了第二交易,有利于第一交易的正常执行,并且有利于对交易的打包以及交易的正常出块。
Description
技术领域
本申请涉及区块链技术领域,具体而言,本申请涉及一种区块链的交易处理方法、装置、电子设备及可读存储介质。
背景技术
区块链在将交易进行打包进区块时,需要对交易进行验证。目前的一种处理方式为:先对交易进行验证,验证通过后再将交易打包进区块。这种方式的处理效率较低,不能满足高并发环境中的使用需求。
目前的另一种处理方式为:先将对交易进行打包,而后再对交易进行验证。这种方式虽然能够适用于高并发环境中的并行处理,并且具有较高的处理效率,但交易中可能存在因被执行后账户余额为负值而导致不能被执行的一类交易,由于是在对交易进行验证之前先进行打包,因此无法将这类交易验证出来,而这类交易的存在可能会导致交易打包的失败,影响交易的正常出块。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种区块链的交易处理方法,该方法包括:
获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;
若存在账户余额为负值的情况,则从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息;
基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。
可选地,目标交易为对应单一账户且被执行后单一账户的账户金额增加的交易。
可选地,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息,包括:
确定账户余额为负值的账户的优先级;
基于优先级从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
可选地,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息,包括:
基于预设的数量限定条件,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
可选地,基于第一交易的交易信息以及第二交易的交易信息执行交易,包括:
将第一交易以及第二交易进行合并,得到交易集;
基于交易集中交易的交易信息执行交易。
可选地,基于交易集中交易的交易信息执行交易,包括:
基于交易集中交易的交易信息,并按照交易顺序执行交易,交易顺序中第二交易的排序在第一交易之前。
第二方面,本申请实施例提供了另一种区块链的交易处理方法,该方法包括:
当接收到区块链中的打包节点发送的交易信息获取请求时,从缓存节点存储的目标交易的交易信息中确定第二交易的交易信息;
将第二交易的交易信息返回给打包节点,以使打包节点基于第二交易的交易信息进行区块的打包操作。
可选地,上述方法还包括:
接收区块链中代理节点转发的目标交易的交易信息,并确定目标交易的交易信息是否已被存储;
若未被存储,则存储目标交易的交易信息,并将目标交易的交易信息在所有的缓存节点中同步。
可选地,上述方法还包括以下至少一项:
在接收到新增区块后,确定新增区块对应的已执行交易,将目标交易中存在的已执行交易对应的交易信息删除;
若存储的目标交易在超过预设时长后仍未被执行,则将存储的目标交易删除。
第三方面,本申请实施例提供了一种区块链的交易处理装置,该装置包括:
模拟交易模块,用于获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;
交易信息获取模块,用于在存在账户余额为负值的情况时,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息;
打包模块,用于基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。
可选地,目标交易为对应单一账户且被执行后单一账户的账户金额增加的交易。
可选地,交易信息获取模块在从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息时,具体用于:
确定账户余额为负值的账户的优先级;
基于优先级从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
可选地,交易信息获取模块在从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息时,具体用于:
基于预设的数量限定条件,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
可选地,打包模块在基于第一交易的交易信息以及第二交易的交易信息执行交易时,具体用于:
将第一交易以及第二交易进行合并,得到交易集;
基于交易集中交易的交易信息执行交易。
可选地,打包模块在基于交易集中交易的交易信息执行交易时,具体用于:
基于交易集中交易的交易信息,并按照交易顺序执行交易,交易顺序中第二交易的排序在第一交易之前。
第四方面,本申请实施例提供了另一种区块链的交易处理装置,该装置包括:
交易信息确定模块,用于在接收到区块链中的打包节点发送的交易信息获取请求时,从缓存节点存储的目标交易的交易信息中确定第二交易的交易信息;
交易信息发送模块,用于将第二交易的交易信息返回给打包节点,以使打包节点基于第二交易的交易信息进行区块的打包操作。
可选地,上述装置还包括交易信息接收模块,交易信息接收模块具体用于:
接收区块链中代理节点转发的目标交易的交易信息,并确定目标交易的交易信息是否已被存储;
若未被存储,则存储目标交易的交易信息,并将目标交易的交易信息在所有的缓存节点中同步。
可选地,上述装置还包括交易信息删除模块,交易信息删除模块具体用于以下至少一项:
在接收到新增区块后,确定新增区块对应的已执行交易,将目标交易中存在的已执行交易对应的交易信息删除;
若存储的目标交易在超过预设时长后仍未被执行,则将存储的目标交易删除。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式或本申请的第二方面的任一实施方式中所示的区块链的交易处理方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式或本申请的第二方面的任一实施方式中所示的区块链的交易处理方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施提供的方案,通过获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;若存在账户余额为负值,则从区块链中的缓存节点中所存储的目标交易的交易信息获取第二交易的交易信息;基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。基于本方案,通过在第一交易中存在不能被执行的交易时,从缓存节点获取第二交易的交易信息,实现了将第一交易与第二交易共同进行打包。由于打包时补入了第二交易,有利于第一交易的正常执行,并且有利于对交易的打包以及交易的正常出块。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种区块链的交易处理方法的流程示意图;
图2为本申请实施例提供的一种对交易进行模拟计算的流程示意图;
图3为本申请实施例提供的另一种区块链的交易处理方法的流程示意图;
图4为本申请实施例提供的一种区块链的交易处理装置的结构示意图;
图5为本申请实施例提供的另一种区块链的交易处理装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种区块链的交易处理方法的流程示意图,该方法应用于区块链中的打包节点,如图1所示,该方法主要可以包括:
步骤S110:获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;
步骤S120:若存在账户余额为负值的情况,则从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息;
步骤S130:基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。
本申请实施例中,打包节点为区块链中进行对交易进行打包的节点。第一交易可以为由多个交易构成的初始交易集,初始交易集中的交易可以按照接收到交易的时间排序。交易信息可以包括账户名,交易类型以及交易金额等。
本申请实施中,可以由打包节点根据第一交易的交易信息进行交易的模拟计算,具体而言,可以按照各第一交易的交易顺序依次计算出各笔交易被执行后对应账户的账户情况。例如,账户A向账户B转账10元,经过模拟计算可以得到:支出方账户A,支出金额10元;收款方账户B,收款金额10元。
图2中示出了本申请实施例提供的一种对交易进行模拟计算的流程图,如图2中所示,初始化账户集合为空集,即首先对账户集合进行初始化,使得账户集合为空。输入交易,即输入待执行的第一交易。检查交易涉及账户是否已初始化,即检查各第一交易涉及的账户进行已经初始化,初始的账户余额是否为0。对于已经初始化的账户,可以直接对其进行模拟执行交易;对于未被初始化的账户,可以对其进行初始化,使得账户余额为0,而后对其进行模拟执行交易。可以按照交易顺序,依次对各笔第一交易可以分别执行上述模拟计算操作,并将模拟计算的结果输出。
在实际使用中,在对多个第一交易进行模拟计算后,可以计算出一个表格。该表格统计了交易涉及账户的最后支出或收入情况。
本申请实施中,通过进行模拟计算,可以确定各笔交易被执行后对应账户的账户余额。若不存在账户余额为负值的情况,可以认为被打包的各笔第一交易均能够正常执行,后续可以直接对各第一交易进行打包操作。若存在账户余额为负值的情况,则其对应的第一交易无法正常进行,这时如果直接对各第一交易进行打包操作,则可能会因存在无法执行的第一交易造成打包的失败。
本申请实施中,可以在存在无法正常执行的第一交易时向缓存节点中请求第二交易,将第二交易补充进交易集中,以提高交易集中交易执行的成功率。
缓存节点中可以将目标交易的交易信息进行缓存,目标交易可以为一些特定的交易,这类交易可以被成功执行,并且在被执行后有利于其他交易的成功执行,具体而言,可以为对应单一账户且被执行后单一账户的账户金额增加的交易。例如,对用户C的存款交易,无论账户C的账户余额为多少,该存款交易都可以被执行,并且在该存款交易被执行后,账户C的账户余额增加,有利于账户C的支取交易以及账户C向其他账户的转账交易的正常执行。
在实施使用中,目标交易也可以为根据用户的使用需求需要优先执行的特定类型的交易。
本申请实施例中,缓存节点中可以不存储账本数据,而仅存储目标交易的交易信息,对区块链系统的资源占用较低,并且在向缓存节点查询交易信息时,由于不涉及对存储于本地的账本数据的查询,查询效率较高。
缓存节点中可以将各目标交易的交易信息按照涉及的账户作为索引进行分类,以便于对账户对应的交易的调取。
区块链中可以设置多个缓存节点,例如为2-3个,各缓存节点之间通过gossip协议,将目标交易的交易信息进行同步,同步效率高,维护代价低。
本申请实施例中,在获取到第二交易的交易信息之后,可以基于第一交易的交易信息以及第二交易的交易信息执行交易,即将第一交易与第二交易共同打包,而后可以对打包后的交易进行验证以及出块。由于在打包时补入了第二交易,有利于第一交易的正常执行,并且由于适用于高并发环境中的并行处理,具有较高的处理效率。
本申请实施提供的方法,通过获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;若存在账户余额为负值,则从区块链中的缓存节点中所存储的目标交易的交易信息获取第二交易的交易信息;基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。基于本方案,通过在第一交易中存在不能被执行的交易时,从缓存节点获取第二交易的交易信息,实现了将第一交易与第二交易共同进行打包。由于打包时补入了第二交易,有利于第一交易的正常执行,并且有利于对交易的打包以及交易的正常出块。
本申请实施例的一种可选方式中,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息,包括:
确定账户余额为负值的账户的优先级;
基于优先级从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
本申请实施例中,可以确定出账户余额为负值的账户,这类账户可能会存在支出时账户余额不足的情况,可以从缓存节点中请求这类账户对应的目标交易作为第二交易,使得在第二交易被执行后,这类账户的账户余额增加,有利于支出类交易的执行。
本申请实施例中,向缓存节点请求第二交易的交易信息时,可以每次请求中可以包含多个账户对应的第二交易,缓存节点中不存在对应账户的目标交易时,返回值可以为空。
本申请实施例中,可以确定账户的优先级,优先补入优先级较高的账户的第二交易。具体而言,可以基于交易笔数和/或账户余额来确定账户余额为负值的账户的优先级,例如,将交易笔数最多的账户的设置为优先级较高,或者将账户余额的负值最低的账户设置为优先级较高。
本申请实施例的一种可选方式中,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息,包括:
基于预设的数量限定条件,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
本申请实施例中,为了避免补充的第二交易超出打包节点的区块容量,可以设定数量限定条件,具体而言,可以对打包节点的区块容量设置阈值,当打包节点被补入第二交易后其区块容量不小于阈值时,打包节点可以不继续请求第二交易。
当然,在实际使用中也可以考虑传输带宽,数量限定条件可以为在每次请求第二交易的交易信息时,指定缓存节点返回的第二交易的交易信息的数据量不超出传输带宽。
本申请实施例的一种可选方式中,基于第一交易的交易信息以及第二交易的交易信息执行交易,包括:
将第一交易以及第二交易进行合并,得到交易集;
基于交易集中交易的交易信息执行交易。
本申请实施例中,可以将第一交易以及第二交易进行合并,得到交易集。由于打包节点中可能已经存在了第二交易,因此在第一交易以及第二交易进行合并时,可以将重复的交易合并为一个。根据合并后得到的交易集,可以进行打包操作,计算所生成区块的区块头中的具体区块参数,从而生成最终的区块。
本申请实施例的一种可选方式中,基于交易集中交易的交易信息执行交易,包括:
基于交易集中交易的交易信息,并按照交易顺序执行交易,交易顺序中第二交易的排序在第一交易之前。
本申请实施例,由于第二交易的执行有利于第一交易的正常执行,因此可以在交易集的交易顺序中,指定第二交易的排序在第一交易之前,即先执行第二交易,再执行第一交易。
本申请实施例中,在部署区块链网络时,区块链网络中的每个节点可以只连接一个共识节点,各共识节点之间可以互相通信。区块链网络中的每个节点连接一个缓存节点,各缓存节点之间可以互相通信,每个共识节点可以连接一个缓存节点。
图3示出了本申请实施例提供的另一种区块链的交易处理方法的流程示意图,该方法应用于区块链中的缓存节点,如图3所示,该方法主要可以包括:
步骤S210:当接收到区块链中的打包节点发送的交易信息获取请求时,从缓存节点存储的目标交易的交易信息中确定第二交易的交易信息;
步骤S220:将第二交易的交易信息返回给打包节点,以使打包节点基于第二交易的交易信息进行区块的打包操作。
本申请实施例中,打包节点可以对待执行的第一交易进行模拟计算,确定出各笔待执行的第一交易被执行后对应账户的账户情况,并在存在账户余额为负值的情况时,向缓存节点发起交易信息的获取请求。
交易信息的获取请求中可以携带有欲获取第二交易的交易信息对应的账户信息等。缓存节点可以在接收到打包节点发送的交易信息获取请求时,从存储的目标交易的交易信息读取第二交易的交易信息,并将第二交易的交易信息返回给打包节点。
本申请实施例中,打包节点在获取到第二交易的交易信息之后,可以将第一交易与第二交易共同打包,而后可以对打包后的交易进行验证以及出块。由于在打包时补入了第二交易,有利于第一交易的正常执行,并且由于适用于高并发环境中的并行处理,具有较高的处理效率。
本申请实施提供的方法,通过在接收到区块链中的打包节点发送的交易信息获取请求时,从存储的目标交易的交易信息中读取第二交易的交易信息,并将第二交易的交易信息返回给打包节点。基于本方案,通过在第一交易中存在不能被执行的交易时,从缓存节点获取第二交易的交易信息,实现了将第一交易与第二交易共同进行打包。由于打包时补入了第二交易,有利于第一交易的正常执行,并且有利于对交易的打包以及交易的正常出块。
本申请实施例的一种可选方式中,上述方法还包括:
接收区块链中代理节点转发的目标交易的交易信息,并确定目标交易的交易信息是否已被存储;
若未被存储,则存储目标交易的交易信息,并将目标交易的交易信息在所有的缓存节点中同步。
本申请实施例中,用户可以通过终端设备可以向区块链中对应的代理节点发送交易,代理节点可以在确定接收到的交易属于目标交易时,将目标交易的交易信息发送给缓存节点进行缓存。
由于目标交易会在区块链的其他节点中进行同步,因此可能存在多个代理节点均向缓存节点发送目标交易的交易信息的情况,因此,缓存节点可以在接收到目标交易的交易信息时,确定接收到目标交易的交易信息是否已被存储,如果已经被存储,则丢弃接收到的目标交易的交易信息;如果未被存储,则存储接收到的目标交易的交易信息,并将接收到的目标交易的交易信息在所有的缓存节点中同步。
交易信息在所有的缓存节点中的同步可以通过gossip协议进行。
缓存节点在被部署于联盟链中时,由于联盟链中各节点的可信度较高,可以不对目标交易的交易类型以及合法性进行验证,以提升系统性能。
本申请实施例的一种可选方式中,上述方法还包括以下至少一项:
在接收到新增区块后,确定新增区块对应的已执行交易,将目标交易中存在的已执行交易对应的交易信息删除;
若存储的目标交易在超过预设时长后仍未被执行,则将存储的目标交易删除。
本申请实施例中,目标交易的交易信息可以被存储于缓存节点的消息缓存池,为了保证缓存节点的性能,可以对消息缓存池中缓存的交易信息进行及时清理。
具体而言,可以在接收到新生成的新增区块后,解析新增区块的交易数据,并根据各笔交易数据的特征值(如交易摘要、交易索引等),确定已被执行过的已执行交易,从而将目标交易中存在的已执行交易对应的交易信息在消息缓存池中删除。
在实际使用中,部分的目标交易可能会因为某些故障导致无法被执行,可以根据区块高度以及时间戳等信息确定目标交易在消息缓存池中存在的时间,如果超过预设时长后仍未被执行,可以认为该目标交易可能发生了故障,不会被执行,因此可以将其在消息缓存池中删除。
基于与图1中所示的方法相同的原理,图4示出了本申请实施例提供的一种区块链的交易处理装置的结构示意图,如图4所示,该区块链的交易处理装置30可以包括:
模拟交易模块310,用于获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;
交易信息获取模块320,用于在存在账户余额为负值的情况时,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息;
打包模块330,用于基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。
本申请实施提供的装置,通过获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;若存在账户余额为负值,则从区块链中的缓存节点中所存储的目标交易的交易信息获取第二交易的交易信息;基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。基于本方案,通过在第一交易中存在不能被执行的交易时,从缓存节点获取第二交易的交易信息,实现了将第一交易与第二交易共同进行打包。由于打包时补入了第二交易,有利于第一交易的正常执行,并且有利于对交易的打包以及交易的正常出块。
可选地,目标交易为对应单一账户且被执行后单一账户的账户金额增加的交易。
可选地,交易信息获取模块在从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息时,具体用于:
确定账户余额为负值的账户的优先级;
基于优先级从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
可选地,交易信息获取模块在从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息时,具体用于:
基于预设的数量限定条件,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
可选地,打包模块在基于第一交易的交易信息以及第二交易的交易信息执行交易时,具体用于:
将第一交易以及第二交易进行合并,得到交易集;
基于交易集中交易的交易信息执行交易。
可选地,打包模块在基于交易集中交易的交易信息执行交易时,具体用于:
基于交易集中交易的交易信息,并按照交易顺序执行交易,交易顺序中第二交易的排序在第一交易之前。
可以理解的是,本实施例中的区块链的交易处理装置的上述各模块具有实现图1中所示的实施例中的区块链的交易处理方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述区块链的交易处理装置的各模块的功能描述具体可以参见图1中所示实施例中的区块链的交易处理方法的对应描述,在此不再赘述。
基于与图3中所示的方法相同的原理,图5示出了本申请实施例提供的一种区块链的交易处理装置的结构示意图,如图5所示,该区块链的交易处理装置40可以包括:
交易信息确定模块410,用于在接收到区块链中的打包节点发送的交易信息获取请求时,从缓存节点存储的目标交易的交易信息中确定第二交易的交易信息;
交易信息发送模块420,用于将第二交易的交易信息返回给打包节点,以使打包节点基于第二交易的交易信息进行区块的打包操作。
本申请实施提供的装置,通过在接收到区块链中的打包节点发送的交易信息获取请求时,从存储的目标交易的交易信息中读取第二交易的交易信息,并将第二交易的交易信息返回给打包节点。基于本方案,通过在第一交易中存在不能被执行的交易时,从缓存节点获取第二交易的交易信息,实现了将第一交易与第二交易共同进行打包。由于打包时补入了第二交易,有利于第一交易的正常执行,并且有利于对交易的打包以及交易的正常出块。
可选地,上述装置还包括交易信息接收模块,交易信息接收模块具体用于:
接收区块链中代理节点转发的目标交易的交易信息,并确定目标交易的交易信息是否已被存储;
若未被存储,则存储目标交易的交易信息,并将目标交易的交易信息在所有的缓存节点中同步。
可选地,上述装置还包括交易信息删除模块,交易信息删除模块具体用于以下至少一项:
在接收到新增区块后,确定新增区块对应的已执行交易,将目标交易中存在的已执行交易对应的交易信息删除;
若存储的目标交易在超过预设时长后仍未被执行,则将存储的目标交易删除。
可以理解的是,本实施例中的区块链的交易处理装置的上述各模块具有实现图3中所示的实施例中的区块链的交易处理方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述区块链的交易处理装置的各模块的功能描述具体可以参见图3中所示实施例中的区块链的交易处理方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的区块链的交易处理方法。
作为一个示例,图6示出了本申请实施例所适用的一种电子设备的结构示意图,如图6所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的区块链的交易处理方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,通过获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;若存在账户余额为负值,则从区块链中的缓存节点中所存储的目标交易的交易信息获取第二交易的交易信息;基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。基于本方案,通过在第一交易中存在不能被执行的交易时,从缓存节点获取第二交易的交易信息,实现了将第一交易与第二交易共同进行打包。由于打包时补入了第二交易,有利于第一交易的正常执行,并且有利于对交易的打包以及交易的正常出块。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的区块链的交易处理方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,通过获取待执行的至少一个第一交易,基于第一交易的交易信息确定各第一交易被执行后对应账户的账户余额;若存在账户余额为负值,则从区块链中的缓存节点中所存储的目标交易的交易信息获取第二交易的交易信息;基于第一交易的交易信息以及第二交易的交易信息执行交易,并将得到的交易结果打包成区块。基于本方案,通过在第一交易中存在不能被执行的交易时,从缓存节点获取第二交易的交易信息,实现了将第一交易与第二交易共同进行打包。由于打包时补入了第二交易,有利于第一交易的正常执行,并且有利于对交易的打包以及交易的正常出块。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种区块链的交易处理方法,应用于区块链中的打包节点,其特征在于,包括:
获取待执行的至少一个第一交易,基于所述第一交易的交易信息确定各所述第一交易被执行后对应账户的账户余额;
若存在所述账户余额为负值的情况,则从所述区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息;
基于所述第一交易的交易信息以及所述第二交易的交易信息执行交易,并将得到的交易结果打包成区块。
2.根据权利要求1所述的方法,其特征在于,所述目标交易为对应单一账户且被执行后所述单一账户的账户金额增加的交易。
3.根据权利要求1所述的方法,其特征在于,所述从所述区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息,包括:
确定所述账户余额为负值的账户的优先级;
基于所述优先级从所述区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
4.根据权利要求1所述的方法,其特征在于,所述从所述区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息,包括:
基于预设的数量限定条件,从所述区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述基于所述第一交易的交易信息以及所述第二交易的交易信息执行交易,包括:
将所述第一交易以及所述第二交易进行合并,得到交易集;
基于所述交易集中交易的交易信息执行交易。
6.根据权利要求5所述的方法,其特征在于,所述基于所述交易集中交易的交易信息执行交易,包括:
基于所述交易集中交易的交易信息,并按照交易顺序执行交易,所述交易顺序中所述第二交易的排序在所述第一交易之前。
7.一种区块链的交易处理方法,应用于区块链中的缓存节点,其特征在于,包括:
当接收到所述区块链中的打包节点发送的交易信息获取请求时,从所述缓存节点存储的目标交易的交易信息中确定第二交易的交易信息;
将所述第二交易的交易信息返回给所述打包节点,以使所述打包节点基于所述第二交易的交易信息进行区块的打包操作。
8.根据权利要求7所述的方法,其特征在于,还包括:
接收区块链中代理节点转发的所述目标交易的交易信息,并确定所述目标交易的交易信息是否已被存储;
若未被存储,则存储所述目标交易的交易信息,并将所述目标交易的交易信息在所有的缓存节点中同步。
9.根据权利要求7或8所述的方法,其特征在于,还包括以下至少一项:
在接收到新增区块后,确定所述新增区块对应的已执行交易,将所述目标交易中存在的已执行交易对应的交易信息删除;
若存储的所述目标交易在超过预设时长后仍未被执行,则将存储的所述目标交易删除。
10.一种区块链的交易处理装置,其特征在于,包括:
模拟交易模块,用于获取待执行的至少一个第一交易,基于所述第一交易的交易信息确定各所述第一交易被执行后对应账户的账户余额;
交易信息获取模块,用于在存在所述账户余额为负值的情况时,从区块链中的缓存节点所存储的目标交易的交易信息中获取第二交易的交易信息;
打包模块,用于基于所述第一交易的交易信息以及所述第二交易的交易信息执行交易,并将得到的交易结果打包成区块。
11.一种区块链的交易处理装置,其特征在于,包括:
交易信息确定模块,用于在接收到区块链中的打包节点发送的交易信息获取请求时,从缓存节点存储的目标交易的交易信息中确定第二交易的交易信息;
交易信息发送模块,用于将所述第二交易的交易信息返回给所述打包节点,以使所述打包节点基于所述第二交易的交易信息进行区块的打包操作。
12.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-9中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010817651.5A CN112132583A (zh) | 2020-08-14 | 2020-08-14 | 区块链的交易处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010817651.5A CN112132583A (zh) | 2020-08-14 | 2020-08-14 | 区块链的交易处理方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112132583A true CN112132583A (zh) | 2020-12-25 |
Family
ID=73851644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010817651.5A Pending CN112132583A (zh) | 2020-08-14 | 2020-08-14 | 区块链的交易处理方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112132583A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222574A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链系统的汇款方法及装置 |
-
2020
- 2020-08-14 CN CN202010817651.5A patent/CN112132583A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222574A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链系统的汇款方法及装置 |
CN113222574B (zh) * | 2021-05-11 | 2023-07-25 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链系统的汇款方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113094396B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
CN110287196B (zh) | 区块存储方法、平行链交易获取方法、设备和存储介质 | |
CN111274252A (zh) | 一种区块链的数据上链方法、装置、存储介质和服务器 | |
CN110659905B (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN108108252A (zh) | 一种全局唯一id生成方法、系统及存储介质 | |
CN104579765A (zh) | 一种集群系统的容灾方法和装置 | |
CN112184436B (zh) | 数据同步方法、电子设备及可读存储介质 | |
CN113067875A (zh) | 基于微服务网关动态流控的访问方法和装置以及设备 | |
CN110321219A (zh) | 一种事务请求的并行执行方法、装置、设备和介质 | |
CN111666289A (zh) | 数据的存储与查询方法、装置、电子设备及可读存储介质 | |
CN112132583A (zh) | 区块链的交易处理方法、装置、电子设备及可读存储介质 | |
CN113535226B (zh) | 应用下载方法、终端、服务器、计算机设备以及存储介质 | |
CN110222034A (zh) | 一种数据库维护方法及装置 | |
CN111125168B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111274017B (zh) | 一种资源的处理方法、装置、电子设备及存储介质 | |
CN111913815A (zh) | 调用请求的处理方法、装置、电子设备及可读存储介质 | |
CN116886798A (zh) | 业务报文处理方法、装置、电子设备及介质 | |
CN109889418B (zh) | 基于can总线的数据传输方法和装置 | |
CN112905542A (zh) | 一种文件处理方法、装置、服务器、设备及存储介质 | |
CN111639129B (zh) | 交易处理方法、装置、电子设备及计算机可读存储介质 | |
CN111884932B (zh) | 一种链路确定方法、装置、设备和计算机可读存储介质 | |
CN112988405B (zh) | 微服务自动降级方法、装置及计算设备 | |
CN116542668A (zh) | 一种基于区块链的数据处理方法、设备及可读存储介质 | |
CN110059109A (zh) | 数据查询的装置、方法及存储介质 | |
CN113342275B (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 |