本公开提供了一种用于区块链的交易处理方法和实现该方法的网络节点。该方法包括:接收包含多个交易的区块;根据该多个交易中的每个交易是否能够并行处理,将该多个交易划分为第一类型交易和第二类型交易;开启至少两个并行处理进程,并且利用该至少两个并行处理进程对该第一类型交易中的所有交易进行并行处理;以及开启一个串行处理进程,并且利用该串行处理进程对该第二类型交易中的每个交易进行串行处理。
【技术实现步骤摘要】
用于区块链的交易处理方法和网络节点
本公开涉及互联网技术,更具体地,涉及一种用于区块链的交易处理方法以及实现所述方法的网络节点。
技术介绍
区块链(Blockchain)是比特币的一个重要概念,其本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据区块(即区块),每一个数据区块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。每当有加密交易产生时,网络中有强大运算能力的节点(即矿工(Miner))就开始利用算法解密验证交易,创造出新的区块来记录最新的交易。新的区块按照时间顺序线性地被补充到原有的区块链末端,这个帐本就会不停的增长和延长。图1示出了一种传统的中心化网络100的结构示意图。如图1中所示,网络100包括一个中心服务器10和多个网络节点11-16。中心服务器10用于管理和维护网络100的总账本,网络节点11-16中的每一个分别与中心服务器10相连,用于管理和维护其自身的账本。当其中一个网络节点产生新的交易时,该网络节点将该交易记录发送给中心服务器10,中心服务器10验证该交易并将交易记录保存在总账本中。在这种传统的中心化网络100中,对中心服务器10的有效攻击可能会破坏整个网络。并且,由于每个交易都由中心服务器10验证,对于包含大量网络节点的网络来说,整个网络的处理效率将会不可避免地变得很低。图2示出了一种去中心化的网络200的结构示意图。如图2中所示,网络200不包括中心服务器,而仅仅包括多个网络节点21-25,网络节点21-25中的每一个与其他网络节点中的至少一个相连。例如,当网络中产生新的交易时,将会产生一个新的区块,该新的区块例如由节点21产生,并且被广播给网络200中与节点21相连的所有其他网络节点22-25。接收到该区块的每个网络节点对该区块中的交易进行处理和验证。如果验证通过,则向所有其他网络节点广播表示赞成的投票结果。如果对该区块投赞成票的网络节点的比例超过某个阈值(例如三分之二),则该区块被验证通过,并且被附加在原有的区块链的末端。
技术实现思路
在当前的区块链设计中,当一个网络节点接收到新生成的区块时,其对该区块中所包含的交易的验证和处理都是采用串行化处理,无法充分利用节点硬件资源达到高并发的交易验证及处理,从而造成全网节点对区块共识的延迟及交易吞吐量的性能瓶颈。针对上述问题中的至少一个,本公开提出了一种用于区块链的交易处理方法以及实现该方法的网络节点,其对区块中的交易按照类型进行划分,并且对有可能并行处理的交易使用并行处理和验证。根据本公开的一个方面,提供了一种用于区块链的交易处理方法。该方法包括:接收包含多个交易的区块;根据该多个交易中的每个交易是否能够并行处理,将该多个交易划分为第一类型交易和第二类型交易;开启至少两个并行处理进程,并且利用该至少两个并行处理进程对该第一类型交易中的所有交易进行并行处理;以及开启一个串行处理进程,并且利用该串行处理进程对该第二类型交易中的每个交易进行串行处理。根据本公开的另一个方面,提供了一种用于区块链的交易处理的网络节点。该网络节点包括:存储器,其中存储有计算机程序代码;以及处理器,其被配置为运行该存储器中存储的计算机程序代码,以接收包含多个交易的区块;根据该多个交易中的每个交易是否能够并行处理,将该多个交易划分为第一类型交易和第二类型交易;开启至少两个并行处理进程,并且利用该至少两个并行处理进程对该第一类型交易中的所有交易进行并行处理;以及开启一个串行处理进程,并且利用该串行处理进程对该第二类型交易中的每个交易进行串行处理。利用本公开的方案,能够加快对区块中的交易进行验证和处理的速度、降低共识延迟并且提高系统交易处理吞吐量。附图说明通过参考下列附图所给出的本公开的具体实施方式的描述,将更好地理解本公开,并且本公开的其他目的、细节、特点和优点将变得更加显而易见,其中:图1示出了一种传统的中心化网络的结构示意图;图2示出了一种去中心化的网络的结构示意图;图3示出了一个区块中所包含的交易列表的示意图;图4示出了根据本公开实施方式的用于区块链的交易处理方法的流程图;图5示出了根据本公开的用于区块链的交易处理的装置的方框图;以及图6示出了适合实现本公开的实施例的设备的方框图。具体实施方式下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。区块结构包括区块头和该区块所包含的交易列表。通常,区块头的大小为80字节,包括版本号(4字节)、区块链中的上一区块的哈希值(32字节)、Merkel根哈希值(32字节)、时间戳(4字节)、该区块的哈希谜题的难度值(4字节)和随机数Nonce(4字节)。随着区块链技术的发展,区块链和智能合约开始结合起来。智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。在实际操作中,智能合约可以看作是在资产内植入的一些代码,这些代码可以自动智能决定网络中相关资产运作的地点和方式。在已有的区块链方案中,对智能合约的调用也作为普通的交易进行处理,从而导致不能够进行并发的交易验证和处理。图3示出了一个区块中所包含的交易列表300的示意图。在本文中,将转账交易和智能合约调用统称为交易,并且存储在区块的交易列表部分。如图3中所示,交易列表300包含多个交易T1、T2、……TN(其中N是大于1的正整数),这些交易可以是转账交易或智能合约调用中的任一种。如上所述,在已有的区块链方案中,所有交易T1、T2、……TN按照串行方式依次被处理。图4示出了根据本公开实施方式的用于区块链的交易处理方法400的流程图。方法400可以在区块链网络中的任一网络节点处执行,该节点例如可以是网络200中的节点21至25中的任一个。以下参考图2和图3对方法400进行描述。如图4中所示,当网络200中的某一节点(如节点21)产生新的交易时,其产生一个包含如图3中所示的交易列表300的新区块,并将该新的区块发送给网络200中的与节点21相连的所有其他节点22-25,这些节点对接收到的新区块进行处理和验证,并将验证结果广播给与其相连的所有节点。下面,以节点22接收到来自节点21的新区块为例来对本公开的方法400进行描述。方法400从410开始,其中节点22从节点21接收包含交易列表300的区块。在420,节点22根据交易列表300中的每个交易T1、T2、……TN是否能够并行处理,将交易T1、T2、……TN划分为第一类型交易和第二类型交易。例如,如图3中所示,假设交易T1、T2、……TM(其中本文档来自技高网...
【技术保护点】
1.一种用于区块链的交易处理方法,包括:接收包含多个交易的区块;根据所述多个交易中的每个交易是否能够并行处理,将所述多个交易划分为第一类型交易和第二类型交易;开启至少两个并行处理进程,并且利用所述至少两个并行处理进程对所述第一类型交易中的所有交易进行并行处理;以及开启一个串行处理进程,并且利用所述串行处理进程对所述第二类型交易中的每个交易进行串行处理。
【技术特征摘要】
1.一种用于区块链的交易处理方法,包括:接收包含多个交易的区块;根据所述多个交易中的每个交易是否能够并行处理,将所述多个交易划分为第一类型交易和第二类型交易;开启至少两个并行处理进程,并且利用所述至少两个并行处理进程对所述第一类型交易中的所有交易进行并行处理;以及开启一个串行处理进程,并且利用所述串行处理进程对所述第二类型交易中的每个交易进行串行处理。2.如权利要求1所述的方法,还包括:在对所述第一类型交易进行并行处理之后,开启至少两个并行验证进程,并且利用所述至少两个并行验证进程对所述第一类型交易中的每个交易的处理结果进行验证。3.如权利要求1所述的方法,还包括:在对所述第二类型交易进行串行处理之后,开启一个串行验证进程,并且利用所述串行验证进程对所述第二类型交易中的每个交易的处理结果进行验证。4.如权利要求1所述的方法,其中所述第一类型交易包括转账交易,所述第二类型交易包括智能合约调用。5.如权利要求2或3所述的方法,还包括:响应于所述第一类型交易中的所有交易和所述第二类型交易中的所有交易都被验证为有效交易,向网络中的其他网络节点广播指示赞成所述区块的投票结果。6.如权利要求2或3所述的方法,还包括:响应于所述第一类型交易中的任一交易或者所述第二类型交易中的任一交易被验证为无效交易,向网络中的其他网络节点广播指示拒绝所述区块的投票结果。7.如权利要求2或3所述的方法,还包括:在接收到所述区块之后,并且在对所述多个交易进行划分之前,备份网络节点的数据库中的账户数据,并且响应于所述第一类型交易中的任一交易或者所述第二类型交易中的任一交易被验证为无效交易,将所述网络节点的数据库中的账户数据恢复为所备份的账户数据。8.一种用于区块链的交易处理的网络节点,包括:存储器,其中存储有计算机程序代码;以及处理器,其被配置为运行所述存储器中存储的计算机程序代码,以接收包含多个交易的区块;根据所述多个交易中的每个交易是否能够并行处理,...
【专利技术属性】
技术研发人员:谭峰,曹锋,
申请(专利权)人:深圳瀚德创客金融投资有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。