一种区块链中数据处理方法及装置制造方法及图纸

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

A Data Processing Method and Device in Block Chain

【技术实现步骤摘要】
一种区块链中数据处理方法及装置
本专利技术涉及科技金融(Fintech)领域,尤其涉及一种区块链中数据处理方法及装置。
技术介绍
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Finteh)转变,区块链(Blockchain)技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。目前区块链中节点完成交易后,会在整个网络中进行广播,当区块链其它节点收到交易后,需依次对交易进行处理。其中,对于每个交易的处理过程是串行的,因此,无法有效利用当前多核处理器架构的性能优势,导致节点在网络中接收交易时的吞吐率较低。尤其当区块链系统中交易的数量较大时,这种处理交易的方式耗时较长,会导致新交易来不及被节点处理,进而影响区块链系统的整体性能表现。
技术实现思路
本申请提供一种区块链中数据处理方法及装置,用以加快节点对数据的处理速度,提升交易吞吐率。本专利技术实施例提供的一种区块链中数据处理方法,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段;所述方法包括:接收区块链系统中广播的多个交易数据;将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第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为本专利技术实施例提供的电子设备的结构示意图。具本文档来自技高网...

【技术保护点】
1.一种区块链中数据处理方法,其特征在于,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段;所述方法包括:接收区块链系统中广播的多个交易数据;将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:第n子模块从第n‑1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。

【技术特征摘要】
1.一种区块链中数据处理方法,其特征在于,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段;所述方法包括:接收区块链系统中广播的多个交易数据;将所述多个交易数据在所述多个子模块中并行处理;其中,对于存在依赖关系的第n子模块与第n+1子模块间的并行处理为:第n子模块从第n-1子模块的缓存队列的队首获取第一交易数据并处理,将处理后的第一交易数据添加至所述第n子模块的缓存队列的队尾;第n+1子模块从所述第n子模块的缓存队列的队首获取第二交易数据并处理,将处理后的第二交易数据添加至所述第n+1子模块的缓存队列的队尾;其中,n≥1。2.如权利要求1所述的方法,其特征在于,还包括:通过管理器接口对新增的子模块进行注册和存储;接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块;接收到节点退出指令后,通过管理器接口停止所述节点中的所有子模块。3.如权利要求2所述的方法,其特征在于,所述接收到节点运行指令后,通过管理器接口启动所述节点中的所有子模块之后,还包括:所述多个子模块将各自的缓存队列清空。4.如权利要求1所述的方法,其特征在于,所述多个子模块包括输入子模块,解码子模块、验证子模块和输出子模块;所述输入子模块,用于获取交易数据的交易编码,并将所述交易编码添加至所述输入子模块的缓存队列的队尾;所述解码子模块,用于从所述输入子模块的缓存队列的队首获取交易编码,并将所述交易编码反序列化解码得到交易对象;将所述交易对象存入节点内存中,并将所述交易对象的内存地址添加至所述解码子模块的缓存队列的队尾;所述验证子模块,用于从所述解码子模块的缓存队列的队首获取内存地址;根据所述内存地址从所述节点内存中获取交易对象,并对所述交易对象中的签名进行验证;若验证通过,则将所述内存地址添加至所述验证子模块的缓存队列的队尾;若验证不通过,则在所述验证子模块的缓存队列的队尾添加一个特殊符号;所述输出子模块,用于从所述验证子模块的缓存队列的队首获取内存地址;若确定所述内存地址不为所述特殊符号后,根据所述内存地址从所述节点内存中获取交易对象,并将所述交易对象写入存储模块。5.一种区块链中数据处理装置,其特征在于,适用于具有多个子模块的节点;其中,不同子模块对应于交易数据的不同处理阶段;包括:接收单元,用于接收区块链系统中广播的多个交易数据;处理单元,用于将所述多个交易数据...

【专利技术属性】
技术研发人员:李陈希石翔李辉忠张开翔范瑞彬
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

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

1