区块链交易处理系统和方法技术方案

技术编号:29419572 阅读:22 留言:0更新日期:2021-07-23 23:14
本文公开了用于处理区块链交易的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:接收M个区块链交易,并且使用第一线程池的K个线程并行执行所述M个区块链交易中的N个区块链交易。第二线程池专用于访问存储在存储系统中的区块链数据。对于分配给K个线程中的每个线程的区块链交易,每个区块链交易使用一个或多个协程,使得区块链交易通过使用协程被异步地执行。生成区块链区块以包含M个区块链交易,并将该区块链区块添加到存储系统所存储的区块链中。

【技术实现步骤摘要】
【国外来华专利技术】区块链交易处理系统和方法
本文涉及处理区块链交易。
技术介绍
随着区块链技术的快速发展,区块链技术的应用或服务场景不断扩展,例如,在司法认证、可追溯性、发票、供应链金融等方面。各种区块链服务生成的数据量也在快速增长。大规模区块链数据(例如,针对大规模账户生成的数据、针对单个账户的大量状态数据、以及针对单个区块链的大量区块数据)的处理和存储需要大量的计算机资源,例如运算/计算资源、存储资源和网络资源。此外,数据规模的增长,尤其是在区块链系统已长期运行之后,进一步增加了对计算资源的需求。这样,需要一种更有效的处理区块链数据和处理区块链交易的方式,以满足各种区块链应用不断增长的需求。
技术实现思路
主题所描述的实施例可以单独地或组合地包括一个或多个特征。例如,在一个实施例中,一种用于处理区块链交易的方法包括:接收要由区块链网络节点执行的M个区块链交易,其中,M是大于1的整数。当执行所述M个区块链交易时,所述区块链网络节点从所述M个区块链交易中识别出N个区块链交易,其中N小于或等于M。将所述N个区块链交易分配为由第一线程池的K个线程并行执行,其中,将所述N个区块链交易中的相应NK个区块链交易分配给相应的第K线程。然后,通过所述K个线程并行执行所述N个区块链交易。通过所述K个线程并行执行所述N个区块链交易包括:对于N个区块链交易中的分配给第一线程池中的第一线程的N1个区块链交易,识别P1个协程,其中P1大于或等于N1。通过异步地执行P1个协程来执行所述N1个区块链交易。异步地执行所述P1个协程包括使用第二线程池访问存储在存储子系统中的区块链数据。在执行所述M个区块链交易后,生成包含M个区块链交易的区块链区块,并将所述区块链区块添加到存储子系统内的区块链中。在一些实施例中,这些一般和具体方面可以使用系统、方法或计算机程序或系统、方法和计算机程序的任何组合来实现。前述和其他描述的实施例可各自可选地包括以下方面中的一个或多个。在一些实施例中,异步地执行所述P1个协程包括使用第二线程池访问存储在所述存储系统中的区块链数据,其中,所述第二线程池不同于所述第一线程池。在一些实施例中,所述第二线程池专用于所述存储系统。在一些实施例中,访问存储在所述存储系统中的区块链数据包括以下一项或多项:读取存储在所述存储系统所存储的所述区块链中的数据;以及将新数据写入所述区块链。所述区块链数据包括区块数据、状态数据、索引数据或流数据中的一个或多个。在一些实施例中,所述M个区块链交易中的一个或多个与所述N个区块链交易同步地执行。在一些实施例中,基于所述N1个区块链交易识别要异步执行的P1个协程包括:针对所述N1个区块链交易中的每个区块链交易,识别要异步执行的一个或多个协程。在一些实施例中,所述N1个区块链交易包括一系列操作。所述一系列操作包括第一操作和在所述第一操作之后的第二操作。所述第一操作包括访问所述存储子系统的输入/输出(I/O)操作。在一些实施例中,所述I/O操作包括异步GET请求或异步PUT请求中的至少一个。在一些实施例中,所述P1个协程包括第一协程和第二协程。通过异步地执行所述P1个协程来执行所述N1个区块链交易包括:使用所述第一协程执行所述第一操作;且与所述第一操作异步地执行所述第二操作。与所述第一操作异步地执行所述第二操作包括在接收到所述第一操作的执行结果之前使用所述第二协程执行所述第二操作。在一些实施例中,在接收到所述第一操作的执行结果之前使用所述第二协程执行所述第二操作包括:保存所述第一操作的第一操作上下文,所述第一操作上下文包括所述第一操作的寄存器数据、堆栈指针或程序计数器中的至少一个;及执行从所述第一操作的第一操作上下文到所述第二操作的第二操作上下文的上下文切换。在一些实施例中,所述第一协程包括与所述第一操作的回调函数相对应的回调标识。与所述第一操作异步地执行所述第二操作还包括:接收由所述第一操作的所述回调函数返回的值;保存所述第二操作的第二操作上下文;恢复所述第一操作的第一操作上下文;以及基于由所述第一操作的所述回调函数返回的所述值,恢复所述第一操作的执行。应当理解的是,根据本文所述的方法可以包括本文描述的各个方面和特征的任何组合。即,根据本文所述的方法不限于本文具体描述的各个方面和特征的组合,而是还包括所提供的各个方面和特征的任何组合。本文的一个或多个实施例的细节将在说明书附图和以下描述中阐述。本文的其它特征和优点通过说明书和附图以及权利要求书将显现。附图说明图1是示出可用于执行本文实施例的环境的示例的图。图2是示出根据本文实施例的架构的示例的图。图3是示出根据本文实施例的用于处理区块链交易的系统的示例的图。图4是示出根据本文实施例的存储内核的示例的图。图5是示出可以根据本文实施例执行的用于处理区块链交易的过程的示例的图。图6是示出可以根据本文实施例执行的用于访问存储在存储系统中的区块链数据的过程的示例的图。图7是示出可以根据本文实施例执行的处理区块链交易的过程的示例的流程图。图8是示出根据本文实施例的设备的模块的示例的图。在各个附图中相同的附图标记和名称表示相同的元件。具体实施方式本文描述了用于处理区块链交易的技术。区块链交易(也简称为交易)可包括要由区块链网络中的区块链节点执行的数据、指令或操作。区块链交易可以例如由客户端设备或区块链网络的参与系统生成。区块链节点可以接收区块链交易,对区块链交易执行共识处理,并在达成共识后,通过将区块链交易保存到区块链的区块中以进行持久存储来发布区块链交易。处理区块链交易可能需要大量的运算资源,包括计算资源(例如,中央处理单元(CPU)资源)和输入/输出(I/O)资源(例如,存储资源和网络资源),尤其是随着区块链系统的规模增加、区块链系统的运行时间延长和/或区块链系统中维护的区块链的长度增加。本文中描述的技术可以例如通过利用多个区块链交易的并行和并发处理来提高多个维度上的多个区块链交易的处理效率。例如,可以将多个区块链交易中的每一个或者多个区块链交易中的每个子集分配为由多个线程中相应的一个线程并行地执行,从而实现多个区块链交易的并行处理。作为另一示例,区块链交易或区块链交易的操作可以在接收到先前区块链交易或区块链交易的先前操作的执行结果之前执行,以实现异步或并发处理,而不会损害或以其他方式改变区块链交易和/或区块链交易的操作的执行结果。本文中描述的技术产生了几种技术效果。在一些实施例中,通过适当地配置区块链系统并战略性地调度多个区块链交易,以实现多个区块链交易的并行和并发处理,所描述的技术可以在不增加可用计算资源的情况下显著提高多个区块链交易的处理效率(例如,以每秒交易(TPS)量来衡量)。在区块链交易的处理中,尽管区块链的区块是同步生成或串行生成的,但是某些区块链交易和/或一个或多个区块链交易的某些I/O操作可以异步和/或并行地处理或执行,例如,取决于区块链交易和/本文档来自技高网...

【技术保护点】
1.一种计算机实现的用于区块链网络的区块链网络节点处理区块链交易的方法,所述方法包括:/n接收要由所述区块链网络节点执行的M个区块链交易,其中,所述区块链网络节点与在区块链中存储区块链数据的存储系统关联;/n所述区块链网络节点执行所述M个区块链交易,其中执行所述M个区块链交易包括:/n从所述M个区块链交易中识别出要异步执行的N个区块链交易,其中N小于或等于M;/n将所述N个区块链交易分配为由K个线程的第一线程池并行执行,其中,将所述N个区块链交易中的相应N

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于区块链网络的区块链网络节点处理区块链交易的方法,所述方法包括:
接收要由所述区块链网络节点执行的M个区块链交易,其中,所述区块链网络节点与在区块链中存储区块链数据的存储系统关联;
所述区块链网络节点执行所述M个区块链交易,其中执行所述M个区块链交易包括:
从所述M个区块链交易中识别出要异步执行的N个区块链交易,其中N小于或等于M;
将所述N个区块链交易分配为由K个线程的第一线程池并行执行,其中,将所述N个区块链交易中的相应NK个区块链交易分配给相应的第K线程;
通过所述K个线程并行执行所述N个区块链交易,其中:
对于N个区块链交易中的分配给所述第一线程池中第一线程的N1个区块链交易,
基于所述N1个区块链交易识别要异步执行的P1个协程,其中P1大于或等于N1;和
通过异步地执行所述P1个协程来执行所述N1个区块链交易;
在执行所述M个区块链交易后,生成包含所述M个区块链交易的区块链区块;以及
将所述区块链区块添加到与所述区块链网络节点关联的所述存储系统内的所述区块链中。


2.根据权利要求1所述的计算机实现的方法,其中,异步地执行所述P1个协程包括:
使用第二线程池访问存储在所述存储系统中的区块链数据,其中,所述第二线程池不同于所述第一线程池。


3.根据权利要求2所述的计算机实现的方法,其中,所述第二线程池专用于所述存储系统。


4.根据权利要求2所述的计算机实现的方法,其中,
访问存储在所述存储系统中的区块链数据包括以下一项或多项:
读取存储在所述存储系统所存储的所述区块链中的数据;以及
将新数据写入所述区块链,以及
所述区块链数据包括区块数据、状态数据、索引数据或流数据中的一个或多个。


5.根据前述任一项权利要求所述的计算机实现的方法,其中,所述M个区块链交易中的一个或多个与所述N个区块链交易同步地执行。


6.根据前述任一项权利要求所述的计算机实现的方法,其中,基于所述N1个区块链交易识别要异步执行的P1个协程包括:
针对所述N1个区块链交易中的每个交易,识别要异...

【专利技术属性】
技术研发人员:田世坤
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1