CN112039987B - 区块链中区块的处理方法、装置、节点设备及存储介质 - Google Patents
区块链中区块的处理方法、装置、节点设备及存储介质 Download PDFInfo
- Publication number
- CN112039987B CN112039987B CN202010893037.7A CN202010893037A CN112039987B CN 112039987 B CN112039987 B CN 112039987B CN 202010893037 A CN202010893037 A CN 202010893037A CN 112039987 B CN112039987 B CN 112039987B
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- sequencing
- node
- transactions
- 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
Images
Classifications
-
- 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
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种区块链中区块的处理方法、装置、节点设备及存储介质,应用于区块链技术领域,该方法包括:获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。本申请实施例即使是在交易事务较多或者并发较高的情况下,生成区块的实时性也不会受到影响,有利于避免区块链中出现较高的交易延时。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链中区块的处理方法、装置、节点设备及存储介质。
背景技术
区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。区块链中通常需要将交易事务打包生成区块,而联盟链中主要就是由排序节点将交易事务打包成块,排序节点实时响应交易事务请求,将一定量的交易事务打包生成区块,然后将其发送给数据节点处理。但是在数据节点提交的交易事务较多或者并发较高的情况下,排序节点生成区块的实时性将受到影响,此时往往会出现较高的交易延时。
发明内容
针对上述问题,本申请提供了一种区块链中区块的处理方法、装置、节点设备及存储介质,有利于避免区块链中出现较高的交易延时。
为实现上述目的,本申请实施例第一方面提供了种区块链中区块的处理方法,应用于区块链网络中主从架构的主排序节点,该方法包括:
获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
结合第一方面,在一种可能的实施方式中,所述通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块,包括:
通过所述第一协程从缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序;
根据所述交易事务的数量或总大小将所述交易事务打包生成区块。
结合第一方面,在一种可能的实施方式中,所述根据所述交易事务的数量或总大小将所述交易事务打包生成区块,包括:
通过所述第一协程将消费得到的所述交易事务存放在预设的第一缓存区;
当所述第一缓存区中所述交易事务的数量或总大小达到预设值时,将所述第一缓存区中的所述交易事务打包生成区块。
结合第一方面,在一种可能的实施方式中,所述方法还包括:
当所述缓存通道中所述交易事务的存量为空时,向排序服务发送一切块指令;
当所述第一协程从所述缓存通道消费到所述切块指令时,将所述第一缓存区中的所述交易事务打包生成区块。
结合第一方面,在一种可能的实施方式中,在所述通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块之前,所述方法还包括:
通过所述第一协程将所述交易事务缓存在应用通道对应的所述缓存通道中;所述主排序节点在启动时为区块链网络中每个应用通道创建了一一对应的所述缓存通道。
结合第一方面,在一种可能的实施方式中,所述主排序节点在启动时还为区块链网络中每个应用通道开启了第二协程;所述方法还包括:
通过所述第一协程将打包生成的区块存放在预设的第二缓存区;
通过所述第二协程获取所述第二缓存区中存放的区块的数量;
当所述第二缓存区中存放的区块的数量达到预设区块数量时,将所述第二缓存区中存放的所有区块写入本地账本。
本申请实施例第二方面提供了一种区块链中区块的处理装置,该装置包括:
请求获取模块,用于获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
区块生成模块,用于通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
区块派发模块,用于在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
本申请实施例第三方面提供了一种节点设备,该节点设备包括输入设备和输出设备,还包括处理器,适于实现一条或多条指令;以及,计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如下步骤:
获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
本申请实施例第四方面提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如下步骤:
获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
本申请的上述方案至少包括以下有益效果:与现有技术相比,本申请实施例中区块链网络的排序节点采用主从架构,主排序节点通过获取背书数据节点发起的交易事务请求;然后通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;最后在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。这样主排序节点将打包区块的任务交由第一协程处理,通过与从排序节点之间的长连接,将区块派发的任务交给从排序节点处理,即使是在交易事务较多或者并发较高的情况下,生成区块的实时性也不会受到影响,有利于避免区块链中出现较高的交易延时。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种网络系统架构的示意图;
图2为本申请实施例提供的一种排序节点主从架构的示例图;
图3为本申请实施例提供的一种区块链中区块的处理方法的流程示意图;
图4为本申请实施例提供的一种将交易事务打包为区块的示例图;
图5为本申请实施例提供的另一种区块链中区块的处理方法的流程示意图;
图6为本申请实施例提供的一种区块链中区块的处理装置的结构示意图;
图7为本申请实施例提供的另一种区块链中区块的处理装置的结构示意图;
图8为本申请实施例提供的另一种区块链中区块的处理装置的结构示意图;
图9为本申请实施例提供的一种节点设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。
本申请实施例提供一种区块链中区块的处理方案,可基于图1所示的网络系统架构实施,请参见图1,该网络系统具体可以是区块链网络,该区块链网络中可以包括多个节点,例如:节点1,节点2,节点3,…,节点N-1,节点N,各节点之间通过点对点传输机制进行通信,当其中一个节点发起交易时,其他节点可通过共识算法对交易事务进行共识排序,并生成区块,并可将包括交易事务的区块存储在本地账本,其中,共识算法可以是基于背书模型的共识机制,也可以是raft共识机制,等等。进一步的,该区块链网络中的区块链可以是联盟链,且上述多个节点中包括排序节点(adapter节点)和数据节点(peer节点),如图2所示,排序节点采用主从架构的形式,分为主排序节点和从排序节点,在一些实施例中,主排序节点与从排序节点可以是并行的关系,例如:若图1中节点1(对应组织A)是主排序节点,则节点2(对应组织B)、节点3可以是从排序节点,在一些实施例中,主排序节点与从排序节点可以是垂直关系,例如:若图1中节点1(对应组织A)是主排序节点,而从排序节点可以是组织A中的节点1a、节点1b、节点1c等。主排序节点通过交易获取接口获取背书数据节点提交的交易事务,然后对交易事务进行共识排序,将其打包为区块,再将生成的区块的信息通过区块分发接口派发至从排序节点,由从排序节点将主排序节点生成的区块派发至背书数据节点。其中,该区块链网络的底层架构提供高性能的内核模块,该内核模块可支持主排序节点执行上述区块链中区块的处理方案。
基于图1所示的网络系统架构,以下结合其他附图对本申请实施例提供的区块链中区块的处理方法进行详细阐述。
请参加图3,图3为本申请实施例提供的一种区块链中区块的处理方法的流程示意图,该区块链中区块的处理方法应用于区块链中主从架构的主排序节点,如图3所示,包括步骤S31-S33:
S31,获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务。
本申请具体实施例中,背书数据节点即背书策略中定义的对特定类型的交易进行背书的数据节点,Hyperledger Fabric项目中,背书策略定义了在交易被加入账本前,哪些节点需要就交易结果达成一致,而这些节点就是背书数据节点,例如:节点A、B、C需要对类型为V的交易进行背书,则节点A、B、C为背书数据节点。每个背书数据节点通过预设的请求机制向排序节点发起交易事务请求,该交易事务请求用于请求排序节点将交易事务打包生成区块,其中,请求机制可以是长轮询、长连接等,具体不作限定。
S32,通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块。
本申请具体实施例中,交易通常是在一个应用通道中进行的,即区块链网络中的一条区块链,主排序节点在启动时会为每个应用通道开启一个第一协程,由第一协程去执行消费交易事务,打包生成区块的操作,第一协程按照先进先出的原则对交易事务进行共识排序,然后按照预设区块生成条件将交易事务打包成一个或多个区块。
在一种可能的实施方式中,所述通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块之前,所述方法还包括:
通过所述第一协程将所述交易事务缓存在应用通道对应的所述缓存通道中。主排序节点在启动时会为每个应用通道创建一个缓存通道,即每个应用通道均有与之一一对应的缓存通道,缓存通道用于存放应用通道内获取到的所有交易事务。
在一种可能的实施方式中,所述通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块,包括:
通过所述第一协程从所述缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序;
根据所述交易事务的数量或总大小将所述交易事务打包生成区块。
本申请具体实施例中,如图4所示,第一协程将共识排序后的交易事务存放于一预设缓存区,即第一缓存区,第一缓存区用于存放需要打包成区块的交易事务,为区块的生成做准备,每当第一缓存区中存放的交易事务的数量达到预设数量时,例如:95笔,或者每当第一缓存区中存放的交易事务的总大小达到预设大小时,例如:1M、1GB等,将第一缓存区中的交易事务打包以生成区块,每个区块包括区块头、交易事务、交易验证结果以及一些附加信息(图中并未示出)。
在一种可能的实施方式中,所述方法还包括:
当所述缓存通道中所述交易事务的存量为空时,向排序服务发送一切块指令;
当所述第一协程从所述缓存通道消费到所述切块指令时,将所述第一缓存区中的所述交易事务打包生成区块。
本申请具体实施例中,第一协程不断从缓存通道消费交易事务,在背书数据节点提交交易事务的速度达不到第一协程消费交易事务的速度时,或者背书数据节点在一定时间内未提交交易事务时,缓存通道内的交易事务存量会存在为空的情况,此时主排序节点通过第一协程向排序服务发送一切块指令,缓存通道内的交易事务存量一直为空的情况下,第一协程消费到的将会是切块指令,此时第一协程立即将第一缓存区中先前存放的交易事务打包生成区块,无需等到交易事务的数量和总大小达到区块预设值,以保证生成区块的时效。
S33,在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
本申请具体实施例中,由图2可知,主排序节点下通常包括有至少一个从排序节点,从排序节点为背书数据节点提供区块派发服务,起着替主排序节点分散网络通讯压力的作用,同时,还能提高主排序节点处理交易事务的速度,主排序节点实时将区块信息派发给从排序节点有利于保持主从排序节点区块最终高度的一致性。背书数据节点在向主排序节点发起交易事务请求后,会进入区块生成的等待阶段,主排序节点接收到交易事务,同时,从排序节点会实时向主排序节点请求区块派发,主排序节点进行交易事务处理并生成对应的区块后,会主动并实时的向从排序节点派发区块内容,从排序节点接收到区块内容后,再进行区块的存档的同时将区块内容派发给所有请求了实时区块内容的背书数据节点,背书数据节点收到区块内容后再进行区块内交易的背书策略验证、数据版本验证等工作。例如:主排序节点将最新生成的高度为100的区块发送给从排序节点1和从排序节点2,从排序节点1再将派发而来的区块信息派发给背书数据节点1、2、3、4,从排序节点2将派发而来的区块信息派发给背书节点5、6、7、8,等等,区块派发指令中包括生成的区块,从排序节点在获取到区块后及时将区块派发至背书数据节点,由背书数据节点执行派发的区块,同时,从排序节点还将获取到的区块写入本地账本进行存储。
在一种可能的实施方式中,主排序节点在启动时还为区块链网络中每个应用通道开启了第二协程;所述方法还包括:
通过所述第一协程将打包生成的区块存放在预设的第二缓存区;
通过所述第二协程获取所述第二缓存区中存放的区块的数量;
当所述第二缓存区中存放的区块的数量达到预设区块数量时,将所述第二缓存区中存放的所有区块写入本地账本。
本申请具体实施例中,第二协程用于将第一协程生成的区块写入主排序节点的本地账本。第一协程将生成的区块缓存至另一缓存区,即第二缓存区,通过第二协程对第二缓存区中的区块数量进行实时监控,当该缓存区中的区块数量达到预设区块数量(例如:10个区块、50个区块,等等)时,将该缓存区中的所有区块写入本地账本,以避免过多的磁盘输入输出对区块链系统性能造成影响。
可以看出,本申请实施例通过获取背书数据节点发起的交易事务请求;然后通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;最后在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。这样主排序节点将打包区块的任务交由第一协程处理,通过与从排序节点之间的长连接,将区块派发的任务交给从排序节点处理,即使是在交易事务较多或者并发较高的情况下,生成区块的实时性也不会受到影响,有利于避免区块链中出现较高的交易延时。
请参见图5,图5本申请实施例提供的另一种区块链中区块的处理方法的流程示意图,如图5所示,包括步骤S51-S54:
S51,获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
S52,通过第一协程从缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序;
S53,根据所述交易事务的数量或总大小将所述交易事务打包生成区块;
S54,在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
其中,步骤S51-S54的具体实施方式在图3所示的实施例中已有相关说明,为避免重复,此处不再赘述。
基于上述区块链中区块的处理方法实施例的描述,请参见图6,图6为本申请实施例提供的一种区块链中区块的处理装置的结构示意图,如图6所示,该装置包括:
请求获取模块61,用于获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
区块生成模块62,用于通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
区块派发模块63,用于在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
在一种可能的实施方式中,在通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块方面,所述区块生成模块62具体用于:
通过所述第一协程从缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序;
根据所述交易事务的数量或总大小将所述交易事务打包生成区块。
在一种可能的实施方式中,在根据所述交易事务的数量或总大小将所述交易事务打包生成区块方面,所述区块生成模块62具体用于:
通过所述第一协程将消费得到的所述交易事务存放在预设的第一缓存区;
当所述第一缓存区中所述交易事务的数量或总大小达到预设值时,将所述第一缓存区中的所述交易事务打包生成区块。
在一种可能的实施方式中,所述区块生成模块62还用于:
当所述缓存通道中所述交易事务的存量为空时,向排序服务发送一切块指令;
当所述第一协程从所述缓存通道消费到所述切块指令时,将所述第一缓存区中的所述交易事务打包生成区块。
在一种可能的实施方式中,如图7所示,所述装置还包括:交易事务缓存模块64;
所述交易事务缓存模块64,用于通过所述第一协程将所述交易事务缓存在应用通道对应的所述缓存通道中;区块链网络中每个应用通道均有一一对应的所述缓存通道。
在一种可能的实施方式中,区块链网络中每个应用通道均开启有第二协程;如图8所示,所述装置还包括:区块缓存模块65、区块监测模块66以及区块写入模块67;
所述区块缓存模块65,用于通过所述第一协程将打包生成的区块存放在预设的第二缓存区;
所述区块监测模块66,用于通过所述第二协程获取所述第二缓存区中存放的区块的数量;
所述区块写入模块67,用于当所述第二缓存区中存放的区块的数量达到预设区块数量时,将所述第二缓存区中存放的所有区块写入本地账本。
根据本申请的一个实施例,图6-图8所示的区块链中区块的处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链中区块的处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图3或图5中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6-图8中所示的区块链中区块的处理装置设备,以及来实现本申请实施例的区块链中区块的处理方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
基于上述方法实施例和装置实施例的描述,本申请实施例还提供一种节点设备。请参见图9,该节点设备至少包括处理器901、输入设备902、输出设备903以及计算机存储介质904。其中,节点设备内的处理器901、输入设备902、输出设备903以及计算机存储介质904可通过总线或其他方式连接。
计算机存储介质904可以存储在节点设备的存储器中,所述计算机存储介质904用于存储计算机程序,所述计算机程序包括程序指令,所述处理器901用于执行所述计算机存储介质904存储的程序指令。处理器901(或称CPU(Central Processing Unit,中央处理器))是节点设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例提供的节点设备的处理器901可以用于进行一系列区块链中区块的处理:
获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
再一个实施例中,处理器901执行所述通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块,包括:
通过所述第一协程从缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序;
根据所述交易事务的数量或总大小将所述交易事务打包生成区块。
再一个实施例中,处理器901执行所述根据所述交易事务的数量或总大小将所述交易事务打包生成区块,包括:
通过所述第一协程将消费得到的所述交易事务存放在预设的第一缓存区;
当所述第一缓存区中所述交易事务的数量或总大小达到预设值时,将所述第一缓存区中的所述交易事务打包生成区块。
再一个实施例中,处理器901还用于:当所述缓存通道中所述交易事务的存量为空时,向排序服务发送一切块指令;当所述第一协程从所述缓存通道消费到所述切块指令时,将所述第一缓存区中的所述交易事务打包生成区块。
再一个实施例中,在所述通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块之前,处理器901还用于:
通过所述第一协程将所述交易事务缓存在应用通道对应的所述缓存通道中;所述主排序节点在启动时为区块链网络中每个应用通道创建了一一对应的所述缓存通道。
再一个实施例中,所述主排序节点在启动时还为区块链网络中每个应用通道开启了第二协程;处理器901还用于:
通过所述第一协程将打包生成的区块存放在预设的第二缓存区;
通过所述第二协程获取所述第二缓存区中存放的区块的数量;
当所述第二缓存区中存放的区块的数量达到预设区块数量时,将所述第二缓存区中存放的所有区块写入本地账本。
示例性的,上述节点设备可以是服务器、云服务器、计算机主机、服务器集群等,节点设备可包括但不仅限于处理器901、输入设备902、输出设备903以及计算机存储介质904。本领域技术人员可以理解,所述示意图仅仅是节点设备的示例,并不构成对节点设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
需要说明的是,由于节点设备的处理器901执行计算机程序时实现上述的区块链中区块的处理方法中的步骤,因此上述区块链中区块的处理方法的实施例均适用于该节点设备,且均能达到相同或相似的有益效果。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是节点设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器901加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器901的计算机存储介质。在一个实施例中,可由处理器901加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关区块链中区块的处理方法的相应步骤;具体实现中,计算机存储介质中的一条或多条指令由处理器901加载并执行如下步骤:
获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
通过所述第一协程从缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序;
根据所述交易事务的数量或总大小将所述交易事务打包生成区块。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
通过所述第一协程将消费得到的所述交易事务存放在预设的第一缓存区;
当所述第一缓存区中所述交易事务的数量或总大小达到预设值时,将所述第一缓存区中的所述交易事务打包生成区块。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
当所述缓存通道中所述交易事务的存量为空时,向排序服务发送一切块指令;
当所述第一协程从所述缓存通道消费到所述切块指令时,将所述第一缓存区中的所述交易事务打包生成区块。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
通过所述第一协程将所述交易事务缓存在应用通道对应的所述缓存通道中;所述主排序节点在启动时为区块链网络中每个应用通道创建了一一对应的所述缓存通道。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
通过所述第一协程将打包生成的区块存放在预设的第二缓存区;
通过所述第二协程获取所述第二缓存区中存放的区块的数量;
当所述第二缓存区中存放的区块的数量达到预设区块数量时,将所述第二缓存区中存放的所有区块写入本地账本。
示例性的,计算机存储介质的计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,由于计算机存储介质的计算机程序被处理器执行时实现上述的区块链中区块的处理方法中的步骤,因此上述区块链中区块的处理方法的所有实施例均适用于该计算机存储介质,且均能达到相同或相似的有益效果。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种区块链中区块的处理方法,其特征在于,应用于区块链网络中主从架构的主排序节点,所述方法包括:
获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块;
所述通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块,包括:
通过所述第一协程从应用通道对应的缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序,所述第一协程与所述应用通道一一对应;
根据所述交易事务的数量或总大小将所述交易事务打包生成区块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述交易事务的数量或总大小将所述交易事务打包生成区块,包括:
通过所述第一协程将消费得到的所述交易事务存放在预设的第一缓存区;
当所述第一缓存区中所述交易事务的数量或总大小达到预设值时,将所述第一缓存区中的所述交易事务打包生成区块。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述缓存通道中所述交易事务的存量为空时,向排序服务发送一切块指令;
当所述第一协程从所述缓存通道消费到所述切块指令时,将所述第一缓存区中的所述交易事务打包生成区块。
4.根据权利要求1所述的方法,其特征在于,在所述通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块之前,所述方法还包括:
通过所述第一协程将所述交易事务缓存在应用通道对应的所述缓存通道中;所述主排序节点在启动时为区块链网络中每个应用通道创建了一一对应的所述缓存通道。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述主排序节点在启动时还为区块链网络中每个应用通道开启了第二协程;所述方法还包括:
通过所述第一协程将打包生成的区块存放在预设的第二缓存区;
通过所述第二协程获取所述第二缓存区中存放的区块的数量;
当所述第二缓存区中存放的区块的数量达到预设区块数量时,将所述第二缓存区中存放的所有区块写入本地账本。
6.一种区块链中区块的处理装置,其特征在于,所述装置包括:
请求获取模块,用于获取背书数据节点发起的交易事务请求,所述交易事务请求中包括待打包的交易事务;
区块生成模块,用于通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块;
区块派发模块,用于在获取到从排序节点发送的区块派发请求的情况下,通过与所述从排序节点之间的长连接,实时将区块信息派发给所述从排序节点,使得所述从排序节点实时向所述背书数据节点下发生成的区块;
在通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块方面,所述区块生成模块具体用于:
通过所述第一协程从应用通道对应的缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序,所述第一协程与所述应用通道一一对应;
根据所述交易事务的数量或总大小将所述交易事务打包生成区块。
7.根据权利要求6所述的装置,其特征在于,在通过第一协程对所述交易事务进行共识排序,在所述交易事务达到预设区块生成条件的情况下,将所述交易事务打包生成区块方面,所述区块生成模块具体用于:
通过所述第一协程从缓存通道中消费所述交易事务,对消费得到的所述交易事务进行共识排序;
根据所述交易事务的数量或总大小将所述交易事务打包生成区块。
8.一种节点设备,包括输入设备和输出设备,其特征在于,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-5任一项所述的方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1-5任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010893037.7A CN112039987B (zh) | 2020-08-28 | 2020-08-28 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
PCT/CN2021/097232 WO2022041899A1 (zh) | 2020-08-28 | 2021-05-31 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010893037.7A CN112039987B (zh) | 2020-08-28 | 2020-08-28 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112039987A CN112039987A (zh) | 2020-12-04 |
CN112039987B true CN112039987B (zh) | 2022-05-20 |
Family
ID=73587532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010893037.7A Active CN112039987B (zh) | 2020-08-28 | 2020-08-28 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112039987B (zh) |
WO (1) | WO2022041899A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039987B (zh) * | 2020-08-28 | 2022-05-20 | 平安科技(深圳)有限公司 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
CN111988432A (zh) * | 2020-09-03 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 区块链交易事务处理方法、装置、电子设备及存储介质 |
US20220311595A1 (en) * | 2021-03-24 | 2022-09-29 | International Business Machines Corporation | Reducing transaction aborts in execute-order-validate blockchain models |
CN113110883B (zh) * | 2021-06-11 | 2021-10-15 | 北京百度网讯科技有限公司 | 区块链系统的启动方法、装置、设备和存储介质 |
CN113254168B (zh) * | 2021-06-11 | 2021-10-15 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN114254050B (zh) * | 2022-03-02 | 2022-06-07 | 恒生电子股份有限公司 | 区块链网络共识预加载方法、装置、设备及存储介质 |
CN114979148B (zh) * | 2022-06-16 | 2023-07-14 | 中国联合网络通信集团有限公司 | 数据传输方法、装置及计算机可读存储介质 |
CN117670330B (zh) * | 2024-02-01 | 2024-05-24 | 中国信息通信研究院 | 基于区块链的交易处理方法和装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107241279A (zh) * | 2017-06-22 | 2017-10-10 | 北京天德科技有限公司 | 一种基于多级缓冲队列的区块链交易限流方法 |
CN109285006A (zh) * | 2018-09-20 | 2019-01-29 | 中链科技有限公司 | 一种区块链数据的并行验证处理方法及装置 |
CN110309230A (zh) * | 2019-05-22 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 基于区块链的区块生成方法、装置、设备及存储介质 |
CN110634068A (zh) * | 2018-06-21 | 2019-12-31 | 北京果仁宝软件技术有限责任公司 | 基于联盟链的征信数据处理方法及系统 |
CN111078323A (zh) * | 2019-10-12 | 2020-04-28 | 平安科技(深圳)有限公司 | 基于协程的数据处理方法、装置、计算机设备及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120179540A1 (en) * | 2011-01-12 | 2012-07-12 | Samuel Michaels | Method of finding commonalities within a database |
CN107704269A (zh) * | 2017-10-16 | 2018-02-16 | 中国银行股份有限公司 | 一种基于区块链生成区块的方法以及系统 |
CN107819749A (zh) * | 2017-10-26 | 2018-03-20 | 平安科技(深圳)有限公司 | 基于以太坊的区块链系统和交易数据处理方法 |
CN107992356B (zh) * | 2017-12-13 | 2021-09-14 | 深圳壹账通智能科技有限公司 | 区块链事务区块处理方法、电子装置及可读存储介质 |
CN108667928B (zh) * | 2018-05-08 | 2021-01-08 | 杭州云象网络技术有限公司 | 一种基于区块链状态机组网运作的数据同步方法 |
CN108984645B (zh) * | 2018-06-25 | 2021-02-02 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备及存储介质 |
CN109146490B (zh) * | 2018-10-11 | 2023-04-07 | 北京京东尚科信息技术有限公司 | 区块生成方法、装置和系统 |
CN109451036B (zh) * | 2018-12-04 | 2021-07-16 | 北京创世智链信息技术研究院 | 一种区块链安全通信方法、服务节点及系统 |
CN111314393B (zh) * | 2018-12-11 | 2023-04-18 | 京东科技控股股份有限公司 | 基于区块链的数据处理方法、装置及设备 |
CN111047319B (zh) * | 2019-09-03 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 区块链网络的交易处理方法及区块链网络 |
CN110933108B (zh) * | 2019-09-26 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN111352705B (zh) * | 2020-02-25 | 2023-10-31 | 百度在线网络技术(北京)有限公司 | 一种区块链的事务处理方法、装置、设备和介质 |
CN112039987B (zh) * | 2020-08-28 | 2022-05-20 | 平安科技(深圳)有限公司 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
-
2020
- 2020-08-28 CN CN202010893037.7A patent/CN112039987B/zh active Active
-
2021
- 2021-05-31 WO PCT/CN2021/097232 patent/WO2022041899A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107241279A (zh) * | 2017-06-22 | 2017-10-10 | 北京天德科技有限公司 | 一种基于多级缓冲队列的区块链交易限流方法 |
CN110634068A (zh) * | 2018-06-21 | 2019-12-31 | 北京果仁宝软件技术有限责任公司 | 基于联盟链的征信数据处理方法及系统 |
CN109285006A (zh) * | 2018-09-20 | 2019-01-29 | 中链科技有限公司 | 一种区块链数据的并行验证处理方法及装置 |
CN110309230A (zh) * | 2019-05-22 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 基于区块链的区块生成方法、装置、设备及存储介质 |
CN111078323A (zh) * | 2019-10-12 | 2020-04-28 | 平安科技(深圳)有限公司 | 基于协程的数据处理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
面向隐私保护的区块链共享存储与激励机制研究;段梦杰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20200215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112039987A (zh) | 2020-12-04 |
WO2022041899A1 (zh) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039987B (zh) | 区块链中区块的处理方法、装置、节点设备及存储介质 | |
US20220391260A1 (en) | Method and Apparatus for Creating Container, Device, Medium, and Program Product | |
US9367359B2 (en) | Optimized resource management for map/reduce computing | |
CN101652750B (zh) | 数据处理装置、分散处理系统、数据处理方法 | |
US10970805B2 (en) | Graphics processing unit operation | |
CN112667414A (zh) | 基于消息队列的消息消费方法、装置、计算机设备及介质 | |
US10810220B2 (en) | Platform and software framework for data intensive applications in the cloud | |
CN109614227B (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
US20170220944A1 (en) | Best trade-off point on an elbow curve for optimal resource provisioning and performance efficiency | |
US8578388B2 (en) | Optimizing the performance of hybrid CPU systems based upon the thread type of applications to be run on the CPUs | |
CN105550039A (zh) | 一种基于Redhat Linux系统下网卡性能调优的实现方法 | |
EP4010848A1 (en) | Parameter caching for neural network accelerators | |
KR101765725B1 (ko) | 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법 | |
CN106202152B (zh) | 一种云平台的数据处理方法及系统 | |
US20200371827A1 (en) | Method, Apparatus, Device and Medium for Processing Data | |
JP6839673B2 (ja) | アプリケーション分割装置、方法およびプログラム | |
CN109783201A (zh) | 数据交换方法及其系统 | |
CN110807058B (zh) | 一种导出数据的方法和系统 | |
CN115378937B (zh) | 任务的分布式并发方法、装置、设备和可读存储介质 | |
CN111988432A (zh) | 区块链交易事务处理方法、装置、电子设备及存储介质 | |
CN115221111A (zh) | 处理器数据运算方法、处理器、设备及存储介质 | |
CN107807608A (zh) | 数据处理方法、数据处理系统及存储介质 | |
US9626231B2 (en) | Database dispatcher | |
Thomadakis et al. | Runtime support for CPU-GPU high-performance computing on distributed memory platforms | |
Rellermeyer et al. | The coming age of pervasive data processing |
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 |