一种区块链账本数据抓取解析方法技术

技术编号:29703221 阅读:22 留言:0更新日期:2021-08-17 14:31
本发明专利技术公开了一种区块链账本数据抓取解析方法,包括步骤:S1,指定需要抓取解析的区块链节点,与区块链节点建立连接,获取该节点中的所有通道;为每个通道启动抓取数据线程,注册事件监听程序,监听通道的出块事件,对账本数据进行抓取;S2,抓取到账本数据后,进行解析,解析出区块和交易数据;S3,将解析出的数据,按通道、区块哈希、交易哈希进行分库分表存储;S4,对数据库进行扩容;S5,对数据迁移等;本发明专利技术为区块链系统提供区块、交易数据的解析、存储、查询服务,数据按不同的区块链通道进行分区存储,可动态对存储进行扩容和迁移,同时也达到均摊数据访问的压力,提升读写性能等。

【技术实现步骤摘要】
一种区块链账本数据抓取解析方法
本专利技术涉及区块链
,更为具体的,涉及一种区块链账本数据抓取解析方法。
技术介绍
区块链核心概念是分布式账本,同一份全量的交易账本数据存储在任意一台节点中,账本是由多个区块构成的有时序的链表,而每个区块又是含有多条交易构成的链表。区块链系统中提供了对账本数据的查询服务,但是对于区块和交易数据的查询呈现及相关的统计信息,没有方便的解析和查询服务,同时区块链本身也是一个数据不断增长的,不断累积的系统,尤其在交易数据量大的应用场景,数据快速增长,数据存储的可扩展能力和数据查询服务的性能都难以满足。当前区块链数据查询账本信息不够方便,不能很好提供对区块链数据的区块和哈希查询服务,且账本数据随着时间的不断增长不断累积,后续数据越来越大,存储的扩容和读写性能都会遭遇瓶颈。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种区块链账本数据抓取解析方法,为区块链系统提供区块、交易数据的解析、存储、查询服务,数据按不同的区块链通道进行分区存储,可动态对存储进行扩容和迁移,同时也达到均摊数据访问的压力,提升读写性能。本专利技术的目的是通过以下方案实现的:一种区块链账本数据抓取解析方法,包括步骤:S1,指定需要抓取解析的区块链节点,与区块链节点建立连接,获取该节点中的所有通道;为每个通道启动抓取数据线程,注册事件监听程序,监听通道的出块事件,对账本数据进行抓取;S2,抓取到账本数据后,进行解析,解析出区块和交易数据;S3,将解析出的数据,按通道、区块哈希、交易哈希进行分库分表存储;S4,对数据库进行扩容,当账本的数据越来越多时,对数据库进行扩容,所述扩容包括水平扩容;S5,对数据迁移,在数据扩容后,对数据进行迁移,将数据分摊到扩容后的数据库中,使数据分布更均衡。进一步地,在步骤S1中,包括如下步骤:S11,抓取连接区块链系统的peer节点;S12,对区块链peer节点进行查询,获取所有的通道信息,并设置定时任务,定期检查新增的通道;S13,查询到通道或者有新增的通道,对通道进行注册监听程序,设置账本同步的起止高度,初始化通道;S14,启动抓取线程,接收监听到的区块链账本数据,并存入缓存中。进一步地,在步骤S11中,包括如下步骤:S111,加载peer节点的配置信息,所述配置信息包括连接peer的用户、用户身份、用户证书信息、peer的连接地址;S112,创建连接的客户端实例。进一步地,在步骤S13中,包括如下步骤:S131,通过客户端实例获取每个peer节点加入的通道信息;S132,对每个peer节点的通道进行去重,避免重复抓取数据;S133,创建客户端通道;S134,配置通道监听程序,监听区块数据;S135,设置区块账本同步的起止高度,初始化通道。进一步地,在步骤S2中,包括如下步骤:S21,启动数据解析线程;S22,从缓存中获取账本数据,并进行解析,将账本数据的关键信息区块和交易数据解析出来。进一步地,在步骤S22中,包括如下步骤:S221,解析账本的区块信息,所述区块信息包括区块头hash、区块hash、区块高度、交易数;S222,解析区块的交易信息,所述交易信息包括交易hash、区块高度、所属区块、通道名称、合约名称、交易执行参数、读集、写集、交易时间。进一步地,在步骤S3中,所述分库分表存储包括对数据库分表处理和对数据库分库处理;在对数据库分表处理中,对表进行水平拆分,将一个大表拆分成多个小表,通过分库分表算法将数据按设定的规则落在不同的小表中,插入和查询时按相同规则进行;在对数据库分库处理中,通过搭建多个数据库实例,将数据按设定的分库分表算法存储在不同的数据库中。进一步地,在步骤S3中,所述分库分表算法是根据区块链通道,结合区块hash或交易hash共同来计算一个区块或者一条交易存储在哪一张数据库表中;账本的数据包含区块数据和交易数据,按分库分表算法分别进行存储;通过区块hash或者交易hash能够映射到一种数据库表中,快速定位到该数据对应的存储表,进行存储或者查询数据;分库分表算法的规则设置为:table_name={通道名称}_{区块哈希block_hash或交易哈希tx_hash%n}。进一步地,在步骤S4中,包括步骤:S41,搭建数据库服务,创建新的数据库资源;S42,注册数据库服务,获取并保存数据库的连接信息;S43,将新增的数据库服务添加到需要扩容的存储中;S44,更新扩容后存储的版本信息。进一步地,在步骤S5中,包括步骤:S51,根据当前的存储版本生成数据迁移任务,数据迁移的任务数据根据数据库扩容的大小来设定;S52,每个数据迁移任务启动一个线程;S53,执行数据迁移任务,将数据迁移到新扩容的数据库中。本专利技术的有益效果包括:本专利技术提出了一种区块链账本数据抓取解析方法,为区块链系统提供区块、交易数据的解析、存储、查询服务,数据按不同的区块链通道进行分区存储,可动态对存储进行扩容和迁移,同时也达到均摊数据访问的压力,提升读写性能,主要解决的技术问题包括实现:对区块链账本数据进行抓取,可实时监听区块链通道,支持多通道数据抓取;对账本数据进行解析,将账本中的区块数据和交易数据分别进行解析,获取关键字段信息;对解析的区块数据和交易数据按一定规则进行分库分表存储,并支持动态扩容。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例的数据流向框图;图2为本专利技术实施例的存储扩容流程框图;图3为本专利技术实施例的数据迁移流程图;图4为本专利技术实施例的方法步骤流程图。具体实施方式本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。如图1~4所示,一种区块链账本数据抓取解析方法,包括步骤:S1,指定需要抓取解析的区块链节点,与区块链节点建立连接,获取该节点中的所有通道;为每个通道启动抓取数据线程,注册事件监听程序,监听通道的出块事件,对账本数据进行抓取;S2,抓取到账本数据后,进行解析,解析出区块和交易数据;S3,将解析出的数据,按通道、区块哈希、交易哈希进行分库分表存储;S4,对数据库进行扩容;当账本的数据越来越多时,对数据库进行扩容,以满足存储的要求及性能的要求;数据库的扩容可以支持水平扩容,增加系统的读写能力;S5,对数据迁移。数据扩容后,对本文档来自技高网...

【技术保护点】
1.一种区块链账本数据抓取解析方法,其特征在于,包括步骤:/nS1,指定需要抓取解析的区块链节点,与区块链节点建立连接,获取该节点中的所有通道;为每个通道启动抓取数据线程,注册事件监听程序,监听通道的出块事件,对账本数据进行抓取;/nS2,抓取到账本数据后,进行解析,解析出区块和交易数据;/nS3,将解析出的数据,按通道、区块哈希、交易哈希进行分库分表存储;/nS4,对数据库进行扩容,当账本的数据越来越多时,对数据库进行扩容,所述扩容包括水平扩容;/nS5,对数据迁移,在数据扩容后,对数据进行迁移,将数据分摊到扩容后的数据库中,使数据分布更均衡。/n

【技术特征摘要】
1.一种区块链账本数据抓取解析方法,其特征在于,包括步骤:
S1,指定需要抓取解析的区块链节点,与区块链节点建立连接,获取该节点中的所有通道;为每个通道启动抓取数据线程,注册事件监听程序,监听通道的出块事件,对账本数据进行抓取;
S2,抓取到账本数据后,进行解析,解析出区块和交易数据;
S3,将解析出的数据,按通道、区块哈希、交易哈希进行分库分表存储;
S4,对数据库进行扩容,当账本的数据越来越多时,对数据库进行扩容,所述扩容包括水平扩容;
S5,对数据迁移,在数据扩容后,对数据进行迁移,将数据分摊到扩容后的数据库中,使数据分布更均衡。


2.根据权利要求1所述的一种区块链账本数据抓取解析方法,其特征在于,在步骤S1中,包括如下步骤:
S11,抓取连接区块链系统的peer节点;
S12,对区块链peer节点进行查询,获取所有的通道信息,并设置定时任务,定期检查新增的通道;
S13,查询到通道或者有新增的通道,对通道进行注册监听程序,设置账本同步的起止高度,初始化通道;
S14,启动抓取线程,接收监听到的区块链账本数据,并存入缓存中。


3.根据权利要求2所述的一种区块链账本数据抓取解析方法,其特征在于,在步骤S11中,包括如下步骤:
S111,加载peer节点的配置信息,所述配置信息包括连接peer的用户、用户身份、用户证书信息、peer的连接地址;
S112,创建连接的客户端实例。


4.根据权利要求3所述的一种区块链账本数据抓取解析方法,其特征在于,在步骤S13中,包括如下步骤:
S131,通过客户端实例获取每个peer节点加入的通道信息;
S132,对每个peer节点的通道进行去重,避免重复抓取数据;
S133,创建客户端通道;
S134,配置通道监听程序,监听区块数据;
S135,设置区块账本同步的起止高度,初始化通道。


5.根据权利要求1所述的一种区块链账本数据抓取解析方法,其特征在于,在步骤S2中,包括如下步骤:
S21,启动数据解析线程;
S22,从缓存中获取账本数据,并进行解析,将账本数据的关键信息区块和交易数据解...

【专利技术属性】
技术研发人员:曾青海赵小峰白健安红章
申请(专利权)人:中国电子科技网络信息安全有限公司
类型:发明
国别省市:四川;51

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

1