CN110163609A - 一种区块链中数据处理方法及装置 - Google Patents

一种区块链中数据处理方法及装置 Download PDF

Info

Publication number
CN110163609A
CN110163609A CN201910452003.1A CN201910452003A CN110163609A CN 110163609 A CN110163609 A CN 110163609A CN 201910452003 A CN201910452003 A CN 201910452003A CN 110163609 A CN110163609 A CN 110163609A
Authority
CN
China
Prior art keywords
submodule
queue
node
transaction data
buffer queue
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.)
Granted
Application number
CN201910452003.1A
Other languages
English (en)
Other versions
CN110163609B (zh
Inventor
李陈希
石翔
李辉忠
张开翔
范瑞彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201910452003.1A priority Critical patent/CN110163609B/zh
Publication of CN110163609A publication Critical patent/CN110163609A/zh
Priority to PCT/CN2020/083843 priority patent/WO2020238429A1/zh
Application granted granted Critical
Publication of CN110163609B publication Critical patent/CN110163609B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例涉及科技金融(Fintech)领域,尤其涉及一种区块链(Block chain)中数据处理方法及装置。本发明实施例适用于具有多个子模块的节点;不同子模块对应于交易数据的不同处理阶段;包括:接收区块链系统中广播的多个交易数据;将多个交易数据在所述多个子模块中并行处理;对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:第n子模块从第n‑1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至第n子模块的缓存队列的队尾;第n+1子模块从第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至第n+1子模块的缓存队列的队尾。

Description

一种区块链中数据处理方法及装置
技术领域
本发明涉及科技金融(Fintech)领域,尤其涉及一种区块链中数据处理方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Finteh)转变,区块链(Block chain)技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
目前区块链中节点完成交易后,会在整个网络中进行广播,当区块链其它节点收到交易后,需依次对交易进行处理。其中,对于每个交易的处理过程是串行的,因此,无法有效利用当前多核处理器架构的性能优势,导致节点在网络中接收交易时的吞吐率较低。尤其当区块链系统中交易的数量较大时,这种处理交易的方式耗时较长,会导致新交易来不及被节点处理,进而影响区块链系统的整体性能表现。
发明内容
本申请提供一种区块链中数据处理方法及装置,用以加快节点对数据的处理速度,提升交易吞吐率。
本发明实施例提供的一种区块链中数据处理方法,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段;所述方法包括:
接收区块链系统中广播的多个交易数据;
将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:
第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;
第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。
一种可选的实施例中,还包括:
通过管理器接口对新增的子模块进行注册和存储;
接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块;
接收到节点退出指令后,通过管理器接口停止所述节点中的所有子模块。
一种可选的实施例中,所述接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块之后,还包括:
所述多个子模块将各自的缓存队列清空。
一种可选的实施例中,所述多个子模块包括输入子模块,解码子模块、验证子模块和输出子模块;
所述输入子模块,用于获取交易数据的交易编码,并将所述交易编码添加至所述输入子模块的缓存队列的队尾;
所述解码子模块,用于从所述输入子模块的缓存队列的队首获取交易编码,并将所述交易编码反序列化解码得到交易对象;将所述交易对象存入节点内存中,并将所述交易对象的内存地址添加至所述解码子模块的缓存队列的队尾;
所述验证子模块,用于从所述解码子模块的缓存队列的队首获取内存地址;根据所述内存地址从所述节点内存中获取交易对象,并对所述交易对象中的签名进行验证;若验证通过,则将所述内存地址添加至所述验证子模块的缓存队列的队尾;若验证不通过,则在所述验证子模块的缓存队列的队尾添加一个特殊符号;
所述输出子模块,用于从所述验证子模块的缓存队列的队首获取内存地址;若确定所述内存地址不为所述特殊符号后,根据所述内存地址从所述节点内存中获取交易对象,并将所述交易对象写入存储模块。
本发明实施例还提供一种区块链中数据处理装置,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段;包括:
接收单元,用于接收区块链系统中广播的多个交易数据;
处理单元,用于将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:
第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;
第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。
一种可选的实施例中,还包括管理单元,用于:
通过管理器接口对新增的子模块进行注册和存储;
接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块;
接收到节点退出指令后,通过管理器接口停止所述节点中的所有子模块。
一种可选的实施例中,所述处理单元,还用于:
在管理器接口启动所述节点中的所有子模块之后,将子模块的缓存队列清空。
一种可选的实施例中,所述多个子模块包括输入子模块,解码子模块、验证子模块和输出子模块;
所述输入子模块,用于获取交易数据的交易编码,并将所述交易编码添加至所述输入子模块的缓存队列的队尾;
所述解码子模块,用于从所述输入子模块的缓存队列的队首获取交易编码,并将所述交易编码反序列化解码得到交易对象;将所述交易对象存入节点内存中,并将所述交易对象的内存地址添加至所述解码子模块的缓存队列的队尾;
所述验证子模块,用于从所述解码子模块的缓存队列的队首获取内存地址;根据所述内存地址从所述节点内存中获取交易对象,并对所述交易对象中的签名进行验证;若验证通过,则将所述内存地址添加至所述验证子模块的缓存队列的队尾;若验证不通过,则在所述验证子模块的缓存队列的队尾添加一个特殊符号;
所述输出子模块,用于从所述验证子模块的缓存队列的队首获取内存地址;若确定所述内存地址不为所述特殊符号后,根据所述内存地址从所述节点内存中获取交易对象,并将所述交易对象写入存储模块。
本发明实施例还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上所述的方法。
本发明实施例中,节点具有多个子模块,不同子模块对应于交易数据的不同处理阶段。节点接收区块链系统中广播的多个交易消息,并将多个交易数据在多个子模块中并行处理。其中,第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至第n子模块的缓存队列的队尾。同时,第n+1子模块从第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至第n+1子模块的缓存队列的队尾。这样,同一时间,不同的子模块可以同时处理交易数据,从而在节点接收到多个交易数据的情况下,提高了节点的计算速度和处理能力,提升了节点的交易吞吐率,改善了区块链系统的整体性能表现。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中区块链中数据处理方法的流程示意图;
图2为本发明实施例提供的一种区块链中数据处理方法的流程示意图;
图3为本发明具体实施例中节点内的子模块结构示意图;
图4为本发明具体实施例中输入子模块的数据处理方法的流程示意图;
图5为本发明具体实施例中解码子模块的数据处理方法的流程示意图;
图6为本发明具体实施例中验证子模块的数据处理方法的流程示意图;
图7为本发明具体实施例中输出子模块的数据处理方法的流程示意图;
图8为本发明实施例提供的一种区块链中数据处理装置的结构示意图;
图9为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了便于理解,下面对本发明实施例中可能涉及的名词进行定义和解释。
区块链:区块链是一种由多个节点共同维护的及信任的分布式存储系统。区块链底层是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的哈希值,通过这种方式组成链式的数据结构。一个区块由块头和块体组成,其中块头定义包括该区块高度、上一个区块的哈希值(prevHash)等重要字段,而块体主要存储交易数据。区块链利用密码学的方式保证数据传输和访问的安全,并利用链式结构保证链上数据不可被篡改。
节点:区块链中每一个参与者就是一个节点。一个节点是指一个具有唯一身份的参与者,该节点具有参与区块链账本维护的能力,节点之间通过网络互相通信。
交易:交易是区块链系统中最重要的组成部分,代表一方向另一方发起了一个事务请求,可以用于转移资产、改变帐户状态或系统配置。交易生成后需要在区块链系统的节点之间广播转发,只有系统中的节点对该交易达成共识后,交易所代表的事务才能生效。
序列化及反序列化:序列化是将内存中的对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将会被转换为一串连续的二进制串,而反序列化则是通过从存储区中读取序列化过程产生的二进制串,在内存中重新创建该对象。
数字签名技术:数字签名(又称公钥数字签名、电子签章等)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
并行计算:与串行计算使用单一的计算资源的模式不同,并行计算是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。
流水线技术:流水线技术是一种把一个重复的过程拆解成若干的子模块、子模块之间在不同的计算资源上并行执行的计算方法。流水线技术是一种时间并行技术,可以充分利用计算资源提高计算效率。若子模块由硬件实现则称为硬流水线;若子模块由软件实现则称为软流水线。
现有技术中区块链中的节点一般是基于串行计算模式处理交易数据,其具体的流程如图1所示,包括:
步骤S101:区块链中节点1根据用户的请求构造出交易。
步骤S102:节点1将该交易序列化为一段连续的二进制交易序列化编码。
步骤S103:节点1运算得到该交易发起者的数字签名,并将数字签名附在交易编码上,以提供交易合法性证明,并防止他人伪造交易。
步骤S104:节点1将交易数据在整个区块链网络中进行广播。
步骤S105:区块链中其它节点收到交易数据后,如节点2收到交易数据,首先对交易数据进行反序列化,以在节点2的内存中恢复出交易数据的原始内容。
步骤S106:节点2对交易数据中数字签名进行验证,以检查交易数据是否被伪造。若验证不通过,则丢弃该交易数据,验证通过执行后续步骤。
步骤S107:将交易数据存入存储设备中。
现有技术中的上述步骤为依次进行,即节点依次对交易数据进行反序列化、签名验证、写入存储设备的处理。由于整个过程是串行处理,因此,当节点接收到多个交易数据时,同一时间只能处理一个交易数据,从而导致节点处理交易数据的速度较慢,接收交易数据的吞吐率较低,影响了区块链系统的整体性能表现。
为了解决上述现有技术中的问题,本发明实施例提供了一种区块链中数据处理方法,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段。如图2所示,本发明实施例提供的区块链中数据处理方法包括以下步骤:
步骤201、接收区块链系统中广播的多个交易数据。
步骤202、将所述多个交易数据在所述多个子模块中并行处理。
其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:
第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;
第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。
本发明实施例中,节点具有多个子模块,不同子模块对应于交易数据的不同处理阶段。节点接收区块链系统中广播的多个交易消息,并将多个交易数据在多个子模块中并行处理。其中,第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至第n子模块的缓存队列的队尾。同时,第n+1子模块从第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至第n+1子模块的缓存队列的队尾。这样,同一时间,不同的子模块可以同时处理交易数据,从而在节点接收到多个交易数据的情况下,提高了节点的计算速度和处理能力,提升了节点的交易吞吐率,改善了区块链系统的整体性能表现。
具体来说,节点中的第一子模块接收到广播的交易数据后,将该交易数据存储至第一子模块的缓存队列的队尾。第二子模块从第一子模块的缓存队列的队尾取出交易数据后,对交易数据进行处理,并将处理后的交易数据存储至第二子模块的缓存队列的队尾。同理,每一个子模块都从前一个子模块的缓存队列的队尾取出交易数据,对交易数据进行处理,并将处理后的数据存储至自身缓存队列的队尾。直至最后一个子模块对交易数据处理后,将交易数据写入存储设备中进行存储。
上述处理过程中,对于同一个交易数据,节点中不同的子模块依次对交易数据进行处理。当交易数据的个数为多个时,节点中不同的子模块可以并行执行对交易数据的处理,即同一时间可以有多个子模块同时处理交易数据,不同的子模块处理不同的交易数据。
下面以区块链中的某节点收到四笔有效交易为例子详细描述处理过程,其中这四笔交易按照到达节点的顺序分别命名为交易1、交易2、交易3以及交易4,节点中包括3个子模块,分别为第一子模块、第二子模块和第三子模块,不同子模块对应于处理交易数据的不同阶段。本发明实施例中通过流水线的形式并行处理交易数据,处理过程中的时序如表1所示:
表1
每个时间段的详细处理流程如下:
(1)T1时间段:第一子模块读取交易1,并对交易1进行第一阶段的处理。
(2)T2时间段:第二子模块从第一子模块的缓存队列中读取交易1,对交易1进行第二阶段的处理;第一子模块读取交易2,并对交易2进行第一阶段的处理。
(3)T3时间段:第三子模块从第二子模块的缓存队列中读取交易1,对交易1进行第三阶段的处理;第二子模块从第一子模块的缓存队列中读取交易2,对交易2进行第二阶段的处理;第一子模块读取交易3,并对交易3进行第一阶段的处理。
(4)T4时间段:第三子模块从第二子模块的缓存队列中读取交易2,对交易2进行第三阶段的处理;第二子模块从第一子模块的缓存队列中读取交易3,对交易3进行第二阶段的处理;第一子模块读取交易4,并对交易4进行第一阶段的处理。
(5)T5时间段:第三子模块从第二子模块的缓存队列中读取交易3,对交易3进行第三阶段的处理;第二子模块从第一子模块的缓存队列中读取交易4,对交易4进行第二阶段的处理。
(6)T6时间段:第三子模块从第二子模块的缓存队列中读取交易4,对交易4进行第三阶段的处理。
这样,每个交易数据在节点中均经过三个子模块的处理,同一时间段可以有多个子模块同时处理不同的交易数据,从而在交易数据较多的情况下,可以减少多个交易数据的处理时间,提高处理效率。
一种可选的实施例中,上述多个子模块可以包括输入子模块,解码子模块、验证子模块和输出子模块。
所述输入子模块,用于获取交易数据的交易编码,并将所述交易编码添加至所述输入子模块的缓存队列的队尾;
所述解码子模块,用于从所述输入子模块的缓存队列的队首获取交易编码,并将所述交易编码反序列化解码得到交易对象;将所述交易对象存入节点内存中,并将所述交易对象的内存地址添加至所述解码子模块的缓存队列的队尾;
所述验证子模块,用于从所述解码子模块的缓存队列的队首获取内存地址;根据所述内存地址从所述节点内存中获取交易对象,并对所述交易对象中的签名进行验证;若验证通过,则将所述内存地址添加至所述验证子模块的缓存队列的队尾;若验证不通过,则在所述验证子模块的缓存队列的队尾添加一个特殊符号;
所述输出子模块,用于从所述验证子模块的缓存队列的队首获取内存地址;若确定所述内存地址不为所述特殊符号后,根据所述内存地址从所述节点内存中获取交易对象,并将所述交易对象写入存储模块。
上述输入子模块,解码子模块、验证子模块和输出子模块,对应于处理交易数据的软流水线的不同阶段。在处理多个交易数据的过程中,不同数量的子模块可以同时运行。例如,当验证子模块对交易数据的数字签名进行验证时,解码子模块可以对另一个交易数据的编码进行反序列化处理。不同子模块并行处理多个交易数据,从而可以提高整个节点对多个交易数据的处理速度,提升节点的交易处理效率。
需要说明的是,本发明实施例的节点中包含的子模块不限于上述四个子模块,可以依据功能和要求增加或减少子模块的数量。例如,若安全性需求较低时可以无需将交易数据进行数字签名和验签,此时节点中可以不包含验证子模块。又如,若需要对交易数据进行共识运算时,节点中可以增加共识子模块。本发明实施例中的子模块仅为举例,不做限制。
为了管理节点中的多个子模块,本发明实施例提供了流水线管理器,管理器通过接口对节点中的子模块注册、启动所有子模块、停止子模块等进行管理。本发明实施例还包括:
通过管理器接口对新增的子模块进行注册和存储;
接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块;
接收到节点退出指令后,通过管理器接口停止所述节点中的所有子模块。
具体来说,管理器提供的接口如下:
各子模块接收到管理器发送的启动指令后进行初始化,为了便于后续处理交易数据,所述接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块之后,还包括:
所述多个子模块将各自的缓存队列清空。
也就是说,每个子模块初始化时,会将自身所持有的缓存队列清空,以等待后续交易数据的到来。
对应于每个子模块,也是通过接口来管理该子模块的运行、停止、依赖关系等。具体实施过程中,子模块接口提供了每个子模块要运行的任务、指定依赖模块、启动及停止等功能。每个子模块均会持有一个可以并行读写的无锁队列容器,用于缓存每个子模块的输出,同时也是流水线中对应的下一个子模块的输入。子模块接口可以在自身缓存队列的队尾插入一个任意元素,也可以在上一子模块的缓存队列的队首取出一个元素。
本发明实施例中,当一个子模块被其他子模块依赖时,其他子模块会尝试读取该子模块的输出内容,因此提供了一个尝试读取无锁队列缓存的接口,接口如下:
bool tryPop(T*t);
其中t为一个类型为T的内存对象的地址。当缓存队列不为空时,该接口会取出队列缓存头部的元素并写入位于t的内存块,并返回true;当缓存队列为空时,该接口会直接返回false以表示当前没有可用的输出。
综上,子模块提供的接口如下:
为了更清楚地理解本发明,下面以具体实施例对上述流程进行详细描述。具体实施例的节点如图3所示,其中,处理交易数据的处理模块包括四个子模块,按照对同一个交易数据的处理流水,四个子模块分别为输入子模块,解码子模块、验证子模块和输出子模块。其中输出子模块与存储模块相连,用于将处理完成的交易数据写入存储模块中。存储模块可以为节点中的模块,也可以为外接设备等。
输入子模块的处理步骤如图4所示,包括:
步骤S401:节点流水线初始化时,输入子模块将自身的缓存队列清空。
步骤S402:输入子模块持续监听整个节点是否为运行状态,若是,则执行步骤403,否则结束运行。
步骤S403:输入子模块持续监听区块链网络中是否有交易广播,若是,则执行步骤404,否则执行步骤402。
步骤S404:输入子模块从网络中获取交易的序列化编码。
步骤S405:输入子模块将交易的序列化编码放入输入子模块的缓存队列的尾部。
解码子模块的处理步骤如图5所示,包括:
步骤S501:节点流水线初始化时,解码子模块将自身的缓存队列清空。
步骤S502:解码子模块持续监听整个节点是否为运行状态,若是,则执行步骤503,否则结束运行。
步骤S503:解码子模块持续监听输入子模块的缓存队列是否为空,若是,则执行步骤502,否则执行步骤504。
步骤S504:解码子模块从输入子模块的缓存队列的头部取出交易的序列化编码。
步骤S505:解码子模块按照协议对交易的序列化编码进行反序列化,在节点内存中构造出一个交易对象。
步骤S506:解码子模块将交易对象的内存地址添加至解码子模块的缓存队列的尾部。
验证子模块的处理步骤如图6所示,包括:
步骤S601:节点流水线初始化时,验证子模块将自身的缓存队列清空。
步骤S602:验证子模块持续监听整个节点是否为运行状态,若是,则执行步骤603,否则结束运行。
步骤S603:验证子模块持续监听解码子模块的缓存队列是否为空,若是,则执行步骤602,否则执行步骤604。
步骤S604:验证子模块从解码子模块的缓存队列的头部取出交易对象的内存地址。
步骤S605:验证子模块根据内存地址,访问内存中该地址对应的交易对象,对交易对象内的数字签名进行验证。如果验证通过执行步骤606,否则执行步骤607。
步骤S606:验证子模块将交易对象的内存地址添加至验证子模块的缓存队列的尾部。
步骤S607:验证子模块将一个特殊符号,如0,添加至验证子模块的缓存队列的尾部。
输出子模块的处理步骤如图7所示,包括:
步骤S701:节点流水线初始化时,输出子模块将自身的缓存队列清空。
步骤S702:输出子模块持续监听整个节点是否为运行状态,若是,则执行步骤703,否则结束运行。
步骤S703:输出子模块持续监听验证子模块的缓存队列是否为空,若是,则执行步骤702,否则执行步骤704。
步骤S704:输出子模块从验证子模块的缓存队列的头部取出交易对象的内存地址。
步骤S705:输出子模块判断交易对象的内存地址是否为0,若是,则放弃后续流程,继续执行步骤702,否则执行步骤706。
步骤S706:输出子模块根据交易对象的内存地址,从节点内存中找到交易对象,并将交易对象写入存储模块中。
本发明实施例还提供了一种区块链中数据处理装置,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段。如图8所示,包括:
接收单元801,用于接收区块链系统中广播的多个交易数据;
处理单元802,用于将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:
第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;
第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。
可选的,还包括管理单元803,用于:
通过管理器接口对新增的子模块进行注册和存储;
接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块;
接收到节点退出指令后,通过管理器接口停止所述节点中的所有子模块。
可选的,所述处理单元802,还用于:
在管理器接口启动所述节点中的所有子模块之后,将子模块的缓存队列清空。
可选的,所述多个子模块包括输入子模块,解码子模块、验证子模块和输出子模块;
所述输入子模块,用于获取交易数据的交易编码,并将所述交易编码添加至所述输入子模块的缓存队列的队尾;
所述解码子模块,用于从所述输入子模块的缓存队列的队首获取交易编码,并将所述交易编码反序列化解码得到交易对象;将所述交易对象存入节点内存中,并将所述交易对象的内存地址添加至所述解码子模块的缓存队列的队尾;
所述验证子模块,用于从所述解码子模块的缓存队列的队首获取内存地址;根据所述内存地址从所述节点内存中获取交易对象,并对所述交易对象中的签名进行验证;若验证通过,则将所述内存地址添加至所述验证子模块的缓存队列的队尾;若验证不通过,则在所述验证子模块的缓存队列的队尾添加一个特殊符号;
所述输出子模块,用于从所述验证子模块的缓存队列的队首获取内存地址;若确定所述内存地址不为所述特殊符号后,根据所述内存地址从所述节点内存中获取交易对象,并将所述交易对象写入存储模块。
基于相同的原理,本发明还提供一种电子设备,如图9所示,包括:
包括处理器901、存储器902、收发机903、总线接口904,其中处理器901、存储器902与收发机903之间通过总线接口904连接;
所述处理器901,用于读取所述存储器902中的程序,执行下列方法:
接收区块链系统中广播的多个交易数据;
将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:
第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;
第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

Claims (10)

1.一种区块链中数据处理方法,其特征在于,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段;所述方法包括:
接收区块链系统中广播的多个交易数据;
将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:
第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;
第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。
2.如权利要求1所述的方法,其特征在于,还包括:
通过管理器接口对新增的子模块进行注册和存储;
接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块;
接收到节点退出指令后,通过管理器接口停止所述节点中的所有子模块。
3.如权利要求2所述的方法,其特征在于,所述接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块之后,还包括:
所述多个子模块将各自的缓存队列清空。
4.如权利要求1所述的方法,其特征在于,所述多个子模块包括输入子模块,解码子模块、验证子模块和输出子模块;
所述输入子模块,用于获取交易数据的交易编码,并将所述交易编码添加至所述输入子模块的缓存队列的队尾;
所述解码子模块,用于从所述输入子模块的缓存队列的队首获取交易编码,并将所述交易编码反序列化解码得到交易对象;将所述交易对象存入节点内存中,并将所述交易对象的内存地址添加至所述解码子模块的缓存队列的队尾;
所述验证子模块,用于从所述解码子模块的缓存队列的队首获取内存地址;根据所述内存地址从所述节点内存中获取交易对象,并对所述交易对象中的签名进行验证;若验证通过,则将所述内存地址添加至所述验证子模块的缓存队列的队尾;若验证不通过,则在所述验证子模块的缓存队列的队尾添加一个特殊符号;
所述输出子模块,用于从所述验证子模块的缓存队列的队首获取内存地址;若确定所述内存地址不为所述特殊符号后,根据所述内存地址从所述节点内存中获取交易对象,并将所述交易对象写入存储模块。
5.一种区块链中数据处理装置,其特征在于,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段;包括:
接收单元,用于接收区块链系统中广播的多个交易数据;
处理单元,用于将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:
第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;
第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。
6.如权利要求5所述的装置,其特征在于,还包括管理单元,用于:
通过管理器接口对新增的子模块进行注册和存储;
接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块;
接收到节点退出指令后,通过管理器接口停止所述节点中的所有子模块。
7.如权利要求6所述的装置,其特征在于,所述处理单元,还用于:
在管理器接口启动所述节点中的所有子模块之后,将子模块的缓存队列清空。
8.如权利要求5所述的装置,其特征在于,所述多个子模块包括输入子模块,解码子模块、验证子模块和输出子模块;
所述输入子模块,用于获取交易数据的交易编码,并将所述交易编码添加至所述输入子模块的缓存队列的队尾;
所述解码子模块,用于从所述输入子模块的缓存队列的队首获取交易编码,并将所述交易编码反序列化解码得到交易对象;将所述交易对象存入节点内存中,并将所述交易对象的内存地址添加至所述解码子模块的缓存队列的队尾;
所述验证子模块,用于从所述解码子模块的缓存队列的队首获取内存地址;根据所述内存地址从所述节点内存中获取交易对象,并对所述交易对象中的签名进行验证;若验证通过,则将所述内存地址添加至所述验证子模块的缓存队列的队尾;若验证不通过,则在所述验证子模块的缓存队列的队尾添加一个特殊符号;
所述输出子模块,用于从所述验证子模块的缓存队列的队首获取内存地址;若确定所述内存地址不为所述特殊符号后,根据所述内存地址从所述节点内存中获取交易对象,并将所述交易对象写入存储模块。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1~4任一所述方法。
CN201910452003.1A 2019-05-28 2019-05-28 一种区块链中数据处理方法及装置 Active CN110163609B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910452003.1A CN110163609B (zh) 2019-05-28 2019-05-28 一种区块链中数据处理方法及装置
PCT/CN2020/083843 WO2020238429A1 (zh) 2019-05-28 2020-04-08 一种区块链中数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910452003.1A CN110163609B (zh) 2019-05-28 2019-05-28 一种区块链中数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN110163609A true CN110163609A (zh) 2019-08-23
CN110163609B CN110163609B (zh) 2024-02-27

Family

ID=67629628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910452003.1A Active CN110163609B (zh) 2019-05-28 2019-05-28 一种区块链中数据处理方法及装置

Country Status (2)

Country Link
CN (1) CN110163609B (zh)
WO (1) WO2020238429A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110474846A (zh) * 2019-09-18 2019-11-19 中国银联股份有限公司 一种区块链中区块传播的方法及装置
CN110648124A (zh) * 2019-08-30 2020-01-03 阿里巴巴集团控股有限公司 在区块链中并发执行交易的方法和装置
CN110689344A (zh) * 2019-08-30 2020-01-14 阿里巴巴集团控股有限公司 在区块链中并发执行交易的方法和装置
CN111415259A (zh) * 2020-03-26 2020-07-14 杭州复杂美科技有限公司 交易排队方法、设备和存储介质
WO2020238429A1 (zh) * 2019-05-28 2020-12-03 深圳前海微众银行股份有限公司 一种区块链中数据处理方法及装置
WO2021042714A1 (zh) * 2019-09-02 2021-03-11 北京海益同展信息科技有限公司 用于生成信息的方法和装置
CN112887436A (zh) * 2021-04-28 2021-06-01 支付宝(杭州)信息技术有限公司 一种共识方法、共识节点和流水线方式的区块链系统
WO2021114628A1 (zh) * 2020-05-28 2021-06-17 平安科技(深圳)有限公司 分布式事务的交易处理方法及相关设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11922026B2 (en) 2022-02-16 2024-03-05 T-Mobile Usa, Inc. Preventing data loss in a filesystem by creating duplicates of data in parallel, such as charging data in a wireless telecommunications network

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104793987A (zh) * 2014-01-17 2015-07-22 中国移动通信集团公司 一种数据处理方法及装置
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及系统
CN108063758A (zh) * 2017-11-27 2018-05-22 众安信息技术服务有限公司 用于区块链网络的签名验证方法及区块链网络中的节点
CN108846674A (zh) * 2018-07-12 2018-11-20 众安信息技术服务有限公司 在区块链中验证签名的方法和装置
CN109376020A (zh) * 2018-09-18 2019-02-22 中国银行股份有限公司 多区块链交互并发下的数据处理方法、装置及存储介质
CN109636384A (zh) * 2018-10-26 2019-04-16 阿里巴巴集团控股有限公司 一种并行化执行区块链交易的方法、装置及系统
US20190156336A1 (en) * 2017-11-21 2019-05-23 Wipro Limited System and method to validate blockchain transactions in a distributed ledger network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019055585A1 (en) * 2017-09-12 2019-03-21 Kadena Llc PARALLEL CHAIN ARCHITECTURE FOR BLOCK CHAIN SYSTEMS
CN108681565B (zh) * 2018-04-28 2020-11-10 百度在线网络技术(北京)有限公司 区块链数据并行处理方法、装置、设备和存储介质
CN109471744B (zh) * 2018-11-21 2021-08-17 北京蓝石环球区块链科技有限公司 基于区块链的主链加并行多子链系统架构
CN110163609B (zh) * 2019-05-28 2024-02-27 深圳前海微众银行股份有限公司 一种区块链中数据处理方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104793987A (zh) * 2014-01-17 2015-07-22 中国移动通信集团公司 一种数据处理方法及装置
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及系统
US20190156336A1 (en) * 2017-11-21 2019-05-23 Wipro Limited System and method to validate blockchain transactions in a distributed ledger network
CN108063758A (zh) * 2017-11-27 2018-05-22 众安信息技术服务有限公司 用于区块链网络的签名验证方法及区块链网络中的节点
CN108846674A (zh) * 2018-07-12 2018-11-20 众安信息技术服务有限公司 在区块链中验证签名的方法和装置
CN109376020A (zh) * 2018-09-18 2019-02-22 中国银行股份有限公司 多区块链交互并发下的数据处理方法、装置及存储介质
CN109636384A (zh) * 2018-10-26 2019-04-16 阿里巴巴集团控股有限公司 一种并行化执行区块链交易的方法、装置及系统

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020238429A1 (zh) * 2019-05-28 2020-12-03 深圳前海微众银行股份有限公司 一种区块链中数据处理方法及装置
CN110648124A (zh) * 2019-08-30 2020-01-03 阿里巴巴集团控股有限公司 在区块链中并发执行交易的方法和装置
CN110689344A (zh) * 2019-08-30 2020-01-14 阿里巴巴集团控股有限公司 在区块链中并发执行交易的方法和装置
CN110648124B (zh) * 2019-08-30 2021-06-29 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
CN113421073A (zh) * 2019-08-30 2021-09-21 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
WO2021042714A1 (zh) * 2019-09-02 2021-03-11 北京海益同展信息科技有限公司 用于生成信息的方法和装置
CN110474846B (zh) * 2019-09-18 2022-04-08 中国银联股份有限公司 一种区块链中区块传播的方法及装置
CN110474846A (zh) * 2019-09-18 2019-11-19 中国银联股份有限公司 一种区块链中区块传播的方法及装置
CN111415259A (zh) * 2020-03-26 2020-07-14 杭州复杂美科技有限公司 交易排队方法、设备和存储介质
CN111415259B (zh) * 2020-03-26 2024-02-06 杭州复杂美科技有限公司 交易排队方法、设备和存储介质
WO2021114628A1 (zh) * 2020-05-28 2021-06-17 平安科技(深圳)有限公司 分布式事务的交易处理方法及相关设备
CN112887436A (zh) * 2021-04-28 2021-06-01 支付宝(杭州)信息技术有限公司 一种共识方法、共识节点和流水线方式的区块链系统
CN112887436B (zh) * 2021-04-28 2021-08-03 支付宝(杭州)信息技术有限公司 一种共识方法、共识节点和流水线方式的区块链系统

Also Published As

Publication number Publication date
CN110163609B (zh) 2024-02-27
WO2020238429A1 (zh) 2020-12-03

Similar Documents

Publication Publication Date Title
CN110163609A (zh) 一种区块链中数据处理方法及装置
Mostéfaoui et al. Signature-free asynchronous Byzantine consensus with t< n/3 and O (n2) messages
JP7472333B2 (ja) バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム
KR101950912B1 (ko) 블록체인 기반 트랜잭션 검증 시스템 및 그 방법
US10657526B2 (en) System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
CN109274717B (zh) 基于区块链的共享存储方法、装置、介质及电子设备
CN112348672B (zh) 跨链交易方法、装置、多区块链系统及计算设备
TWI812623B (zh) 節點裝置、電腦實施方法及相關非暫時性處理器可讀媒體
US20190333033A1 (en) System and method for creating, storing and transferring unforgeable digital assets in a database
JP7328237B2 (ja) コンピュータにより実施される投票処理およびシステム
JP2003512649A (ja) 暗号アクセラレータ
CN109903178B (zh) 一种确定共同社交对象的方法、装置、系统及计算设备
CN111080296B (zh) 一种基于区块链系统的验证方法及装置
CN113342838B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
Hussain et al. FASE: FPGA acceleration of secure function evaluation
Li et al. Blockchain queuing model with non-preemptive limited-priority
Fang et al. SIFO: secure computational infrastructure using FPGA overlays
CN113037824B (zh) 一种面向云计算的高性能区块链的构建方法
CN111476570B (zh) 通证的迁移方法、装置、设备以及存储介质
CN112995167A (zh) 基于Kafka机制的用电信息采集方法、区块链网络及用户端
CN111951109A (zh) 一种具有图灵完备智能合约的区块链的执行方法
CN111190963A (zh) 一种区块链应用后端系统
CN113806441B (zh) 基于区块链的签名处理方法、装置、电子设备和存储介质
JP2024518079A (ja) マルチパーティブロックチェーンアドレス方式
CN114513304A (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