并行构建区块链视图的方法、计算机系统和可读存储介质技术方案

技术编号:20004390 阅读:27 留言:0更新日期:2019-01-05 17:24
本公开提供了一种并行构建区块链视图的方法、实现该方法的计算机系统以及计算机可读存储介质。该方法包括:为该区块链中的多个交易构建包括多个条目的数据结构,该多个条目中的每个条目包括该多个交易中的一个交易所涉及的转出账户的标识符、转入账户的标识符和交易数量;基于账户的标识符将该多个条目划分为多个组,并且将每组条目分发给多个计算机节点中的一个计算机节点;从该多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个账户并行构建的节点视图;以及组合该多个计算机节点的节点视图以形成该区块链的完整视图。

A Parallel Method for Building Block Chain View, Computer System and Readable Storage Media

The present disclosure provides a method for concurrently constructing block chain views, a computer system implementing the method, and a computer readable storage medium. The method includes: constructing a data structure including multiple entries for multiple transactions in the block chain, and each entry of the multiple entries includes the transfer account identifier, the transfer account identifier and the number of transactions involved in one of the transactions; dividing the multiple entries into multiple groups based on the account identifier, and distributing each group of entries to multiple counts. A computer node in a computer node; receives from each of the computer nodes a node view concurrently constructed for each account in a set of entries distributed to the computer node; and combines the node views of the multiple computer nodes to form a complete view of the block chain.

【技术实现步骤摘要】
并行构建区块链视图的方法、计算机系统和可读存储介质
本公开涉及互联网技术,更具体地,涉及一种用于并行构建区块链视图的方法、计算机系统和可读存储介质。
技术介绍
区块链(Blockchain)是比特币的一个重要概念,其本质上是一个去中心化的数据库,用于存储交易的分布式共享账本。区块链由区块构成,每个区块包含一组交易的信息。每当网络中有交易产生时,网络中有强大运算能力的节点(即矿工(Miner))就开始竞争解一个哈希谜题,竞争成功的节点获得产生新的区块的权利以构造出新的区块来记录最新的交易。新的区块按照时间顺序线性地被补充到原有的区块链末端,这个账本就会不停的增长和延长。区块链的这种分布式特性使得能够在非信任网络中进行信任交易,并且没有任何一个单方能够自己修改交易历史。因此,区块链提供了交易历史的可追溯性。当前,越来越多的地区和组织在研究将区块链用于自己的应用,如金融、健康等。视图是从一个或几个实际表(也称为基本表)中根据用户需要而做成的一个虚表。通过建立视图的方式能够查看原始数据库中的感兴趣的数据,从而简化数据操作,提供安全保护功能。传统的集中式数据库的视图构建只需要查询一个节点的数据即可。
技术实现思路
然而,区块链技术使用的是分布式数据库,分布式数据库是物理上分散的多个数据存储单元组成的一个逻辑上统一的数据库,具有高并发性的特点。传统的用于集中式数据库的视图构建技术已经不能适用于为区块链构建视图。针对以上问题,本公开提出了一种区块链视图的并行构建方法、实现该方法的计算机系统以及计算机可读存储介质。根据本公开的一个方面,提供了一种用于并行构建区块链视图的方法。该方法包括:为该区块链中的多个交易构建包括多个条目的数据结构,该多个条目中的每个条目包括该多个交易中的一个交易所涉及的转出账户的标识符、转入账户的标识符和交易数量;基于账户的标识符将该多个条目划分为多个组,并且将每组条目分发给多个计算机节点中的一个计算机节点;从该多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个账户并行构建的节点视图;以及组合该多个计算机节点的节点视图以形成该区块链的完整视图。根据本公开的另一个方面,提供了一种用于并行构建区块链视图的计算机系统。该计算机系统包括:存储器,其中存储有计算机程序代码;以及处理器,其被配置为运行该存储器中存储的计算机程序,以为该区块链中的多个交易构建包括多个条目的数据结构,该多个条目中的每个条目包括该多个交易中的一个交易所涉及的转出账户的标识符、转入账户的标识符和交易数量;基于账户的标识符将该多个条目划分为多个组,并且将每组条目分发给多个计算机节点中的一个计算机节点;从该多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个账户并行构建的节点视图;以及组合该多个计算机节点的节点视图以形成该区块链的完整视图。根据本公开的再一个方面,提供了一种计算机可读存储介质。该计算机可读存储介质包括:用于为区块链中的多个交易构建包括多个条目的数据结构的计算机代码,该多个条目中的每个条目包括该多个交易中的一个交易所涉及的转出账户的标识符、转入账户的标识符和交易数量;用于基于账户的标识符将该多个条目划分为多个组,并且将每组条目分发给多个计算机节点中的一个计算机节点的计算机代码;用于从该多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个账户并行构建的节点视图的计算机代码;以及用于组合该多个计算机节点的节点视图以形成该区块链的完整视图的计算机代码。附图说明通过参考下列附图所给出的本公开的具体实施方式的描述,将更好地理解本公开,并且本公开的其他目的、细节、特点和优点将变得更加显而易见,其中:图1示出了一种区块链结构的示意图;图2示出了根据本公开的用于并行构建区块链视图的方法的示意图;以及图3示出了根据本公开的用于并行构建区块链视图的计算机系统的方框图。具体实施方式下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了一种区块链10的结构示意图。如图1中所示,区块链10由一个或多个区块1001、1002、1003……100N(统称为区块100)构成。区块100主要包括区块头110和该区块所包含的交易列表120。通常,区块头110的大小为80字节,包括版本号(4字节)字段、区块链中的上一区块的哈希值(32字节)字段、Merkel根哈希值(hashMerkelRoot,32字节)字段、时间戳(4字节)字段、该区块的哈希谜题的难度值(4字节)字段和随机数Nonce(4字节)字段。每个交易列表120中包括至少一个交易。以下,将结合图2至图3对根据本公开的用于并行构建区块链视图的方案进行描述。图2示出了根据本公开的用于并行构建区块链视图的方法20的示意图,图3示出了根据本公开的用于并行构建区块链视图的计算机系统30的方框图。方法20例如可以由根据本公开所述的计算机或计算机系统30来实现。根据本公开的用于并行构建区块链视图的方法20包括步骤22,其中计算机系统30为区块链10中的多个交易构建包括多个条目的数据结构。这里,系统30可以为区块链10中的所有区块中的所有交易构建一个数据结构,也可以仅为区块链10中的部分交易构建数据结构。所构建的数据结构包括多个条目,每个条目包括其中一个交易所涉及的转出账户的标识符、转入账户的标识符和交易数量。此外,在一些实现中,每个条目还包括相应交易的交易时间。例如,假设交易001是一对一转账交易,则与交易001相对应的条目可以如下构建:又例如,假设交易001是一对多转账交易(如群转账),则与交易001相对应的条目可以如下构建:在一种实现中,转出账户的标识符和转入账户的标识符分别是转出账户和转入账户在区块链10中的区块链标识符,区块链标识符例如是相应账户在区块链10中的唯一标识符,例如可以由区块链10的管理机构为各个账户分配。在这种情况下,与上述一对一转账交易001相对应的条目可以如下构建:与上述一对多交易001相对应的条目可以如下构建:在步骤24,计算机系统30基于账户的标识符将所构建的数据结构中的多个条目划分为多个组,并将每组条目分发给多个计算机节点中的一个计算机节点。如图3中所示,计算机系统30可以与多个计算机节点401、402、……40M(统称为计算机节点40)通信。这里,基于账户的标识符对条目进行分组包括将同一条目执行的转出交易和转入交易划分在同一组中。例如,假设账户A在交易1中执行的是转出交易,交易数量为50,在交易2中执行的是转入交易,交易数量为30,则基于账户A的标识符对条目进行分组时可以将交易1和交易2划分到同一组中。通过基于账户的标识符对条目进行分组,可以将同一账户的所有交易包含在同一组中,以发送给同一计算机节点进行处理,避免了同一账户的交易被不同计算机节点处理所带来的混乱。在一种实现中,计算机系统30在整个数据结构构建完成之后(即在步骤22完成之后)对数据结构中的条目进行分组和分发。通过这种方式本文档来自技高网...

【技术保护点】
1.一种用于并行构建区块链视图的方法,包括:为所述区块链中的多个交易构建包括多个条目的数据结构,所述多个条目中的每个条目包括所述多个交易中的一个交易所涉及的转出账户的标识符、转入账户的标识符和交易数量;以账户的标识符为索引将所述多个条目划分为多个组,并且将每组条目分发给多个计算机节点中的一个计算机节点;从所述多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个账户并行构建的节点视图;以及组合所述多个计算机节点的节点视图以形成所述区块链的完整视图。

【技术特征摘要】
1.一种用于并行构建区块链视图的方法,包括:为所述区块链中的多个交易构建包括多个条目的数据结构,所述多个条目中的每个条目包括所述多个交易中的一个交易所涉及的转出账户的标识符、转入账户的标识符和交易数量;以账户的标识符为索引将所述多个条目划分为多个组,并且将每组条目分发给多个计算机节点中的一个计算机节点;从所述多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个账户并行构建的节点视图;以及组合所述多个计算机节点的节点视图以形成所述区块链的完整视图。2.如权利要求1所述的方法,其中所述转出账户的标识符和所述转入账户的标识符分别是所述转出账户的区块链标识符和所述转入账户的区块链标识符,所述区块链标识符是相应账户在所述区块链中的唯一标识符。3.如权利要求1所述的方法,还包括:为拥有一个或多个区块链账户的用户创建用户标识符,其中,所述转出账户的标识符和所述转入账户的标识符分别是所述转出账户的用户标识符和所述转入账户的用户标识符。4.如权利要求2所述的方法,还包括:为拥有一个或多个区块链账户的用户创建用户标识符,其中,所述多个条目中的每个条目包括所述转出账户的用户标识符和区块链标识符以及所述转入账户的用户标识符和区块链标识符。5.如权利要求3或4所述的方法,其中从所述多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个账户并行构建的节点视图包括:从所述多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个用户并行构建的节点视图。6.如权利要求1所述的方法,其中所述节点视图包括节点转出视图和/或节点转入视图,并且所述区块链的完整视图包括所述区块链的完整转出视图和/或完整转入视图。7.如权利要求1所述的方法,其中所述条目还包括所述交易的交易时间。8.一种用于并行构建区块链视图的计算机系统,包括:存储器,其中存储有计算机程序代码;以及处理器,其被配置为运行所述存储器中存储的计算机程序,以为所述区块链中的多个交易构建包括多个条目的数据结构,所述多个条目中的每个条目包括所述多个交易中的一个交易所涉及的转出账户的标识符、转入账户的标识符和交易数量;基于账户的标识符将所述多个条目划分为多个组,并且将每组条目分发给多个计算机节点中的一个计算机节点;从所述多个计算机节点中的每个计算机节点接收针对分发给该计算机节点的一组条目中的每个账户并行构建的节点视图;以及组合所述多个计算机节点的节点视图以形成所述区块链的完整视图。9.如权利要求8所述的计算机系统,其中所述转出账户的标识符和所述转入账户的标识符分别是所述转出账户的区块链标识符和所述转入账户的区块链标识符,所述区块链标识符是相应账户在所述区块链中的唯一标识符。10.如权利要求8所述的计算机系统,其中所述处理器还被配置为运行所述存储器中存储的计算机程序代码,以为拥有一个或多个区块链账户的用户创建用户标识符,其中,所述转出账户的标识符和所述转入账户的标识符分别是所述转出账户的用户标识符和所述转...

【专利技术属性】
技术研发人员:曹锋崇志宏
申请(专利权)人:深圳区块链金融服务有限公司上海万链信息技术有限公司
类型:发明
国别省市:广东,44

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

1