[发明专利]一种基于区块链生成区块的方法以及系统在审
申请号: | 201710957872.0 | 申请日: | 2017-10-16 |
公开(公告)号: | CN107704269A | 公开(公告)日: | 2018-02-16 |
发明(设计)人: | 张航;王继武;张国华 | 申请(专利权)人: | 中国银行股份有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/46;G06F9/52;G06Q40/04 |
代理公司: | 北京三友知识产权代理有限公司11127 | 代理人: | 贾磊,乔媛 |
地址: | 100818 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区块 生成 方法 以及 系统 | ||
技术领域
本发明关于数据处理技术领域,特别是关于区块链系统的生成技术,具体的讲是一种基于区块链生成区块的方法、基于区块链生成区块的系统、计算机设备以及计算机可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,性能是区块链系统的一大弱点,其主要原因在于区块链系统中往往存在很多影响整体性能的关键路径上都采用了串行架构,比如区块的生成过程。
在不同共识机制下,区块的生成过程会略有不同。但总体来说,各节点在处理接收到的区块信息后,交易过程大致都是按照如下流程:①节点接收到若干交易信息,放入交易池中;②节点从交易池中获取当前收到的交易信息,对交易进行排序并按顺序执行;③执行完毕之后,节点生成完整区块,最终将其广播。
在第二步执行交易的过程中,传统的区块链系统交易按顺序逐笔执行,每笔交易在执行完毕后才会执行下一笔交易。这样的串行架构导致区块链系统无法有效利用现在多线程计算的优势。
因此,如何提供一种新的方案,其能够解决上述技术问题是本领域亟待解决的技术难题。
发明内容
有鉴于此,本发明提供了一种基于区块链生成区块的方法、基于区块链生成区块的系统、计算机设备以及计算机可读存储介质,通过将从交易池中获取多个交易信息打包为多个包,然后启动多线程逐包进行并行处理,得到交易处理结果,最后根据交易处理结果生成区块,极大提高了区块链系统的处理效率。
为了实现上述目的,本发明提供了一种基于区块链生成区块的方法,所述方法包括:
共识节点接收交易发送节点发送的多个交易信息,放入交易池中;
从所述交易池中获取所述多个交易信息,将所述多个交易信息打包为多个包;
启动多线程逐包进行并行处理,得到交易处理结果;
根据所述交易处理结果生成区块。
在本发明的优选实施方式中,将所述多个交易信息打包为多个包包括:
获取所述多个交易信息的交易复杂度;
获取所述共识节点所在服务器的性能指标;
根据所述交易复杂度以及所述性能指标将所述多个交易信息打包为多个包。
在本发明的优选实施方式中,启动多线程逐包进行并行处理,得到交易处理结果包括:启动多线程,逐包按顺序将各个包中的多个交易并行处理,产生交易处理结果。
在本发明的优选实施方式中,所述方法在得到交易处理结果后,根据所述交易处理结果生成区块之前,还包括:
检查所述交易处理结果,确定出是否发生死锁;
当发生死锁时,根据所述交易处理结果获取出发生死锁的交易信息;
将所述发生死锁的交易信息进行串行处理,得到执行结果;
将所述执行结果添加至所述交易处理结果。
在本发明的优选实施方式中,检查所述交易处理结果,确定出是否发生死锁包括:
获取预先设定的所述交易信息的执行时间阈值;
获取所述交易信息的实际执行时间;
判断所述实际执行时间是否超出所述执行时间阈值;
当判断为是时,确定并行处理过程中发生死锁。
在本发明的优选实施方式中,根据所述交易处理结果生成区块后,所述方法还包括:广播所述区块。
本发明的目的之一是,提供了一种基于区块链生成区块的系统,所述系统包括:
交易信息接收模块,用于接收交易发送节点发送的多个交易信息,放入交易池中;
交易信息打包模块,用于从所述交易池中获取所述多个交易信息,将所述多个交易信息打包为多个包;
交易信息处理模块,用于启动多线程逐包进行并行处理,得到交易处理结果;
区块生成模块,用于根据所述交易处理结果生成区块。
在本发明的优选实施方式中,所述交易信息打包模块包括:
复杂度获取模块,用于获取所述多个交易信息的交易复杂度;
性能指标获取模块,用于获取所述共识节点所在服务器的性能指标;
信息打包模块,用于根据所述交易复杂度以及所述性能指标将所述多个交易信息打包为多个包。
在本发明的优选实施方式中,所述交易信息处理模块用于启动多线程,逐包按顺序将各个包中的多个交易并行处理,产生交易处理结果。
在本发明的优选实施方式中,所述系统还包括死锁检查模块,包括:
处理结果检查模块,用于检查所述交易处理结果,确定出是否发生死锁;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银行股份有限公司,未经中国银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710957872.0/2.html,转载请声明来源钻瓜专利网。