一种区块链浏览器及区块链信息浏览方法技术

技术编号:20329159 阅读:24 留言:0更新日期:2019-02-13 05:45
本发明专利技术提供了一种区块链浏览器,包括:(一)数据同步模块,从公有链网络节点实时同步区块数据,并将同步的数据结构化,存储在数据库供查询,包括各币种公有链节点,具有RPC接口,支持BTC,BCH,LTC,ETH和ETC币种;结构化后的区块子模块,包含特定块高下所有交易数据;多个结构化后的交易信息子模块,包括解析后的交易数据;结构化后的地址信息子模块以及数据库;(二)数据查询模块,包括:币种查询接口;地址查询接口;交易哈希查询接口。还提供一种区块链信息浏览方法,分治算法将区块数据分为多个任务,由多个同步服务并行执行,分布式处理;对每个币种在多个服务器上开启多个进程,同时同步不同块高的区块数据;分库分表进行数据存储。

【技术实现步骤摘要】
一种区块链浏览器及区块链信息浏览方法
本专利技术涉及区块链
,尤其涉及区块链浏览
,即用户想要浏览区块链信息所使用的区块链浏览器

技术介绍
随着区块链技术的发展,越来越多的基于区块链技术的数字货币被市场认可,区块链是一种广泛应用于新兴数字加密货币的去中心化基础架构,随着比特币的逐渐被接受而受到关注和研究。应用于数字货币的区块链技术具有去中心化,区块数据基本不可篡改、去信任化等特性,因此受到企业尤其是金融机构的追捧。基于区块链技术,数字货币流通的每一笔交易都被记录在一个完全透明化的数字账本里,任何人都能获取到该账本数据。但是,交易数据是由网络节点之间通过P2P技术进行互相同步和交换的,要想获取完整的交易信息及区块信息,必须搭建全节点,而且数据量巨大。区块链浏览器从字面解释为“区块链+浏览器”,如果用户想要浏览区块链信息,就得用区块链浏览器,每一个区块所记载的内容都可以从区块链浏览器上进行查阅。区块链浏览器是区块链信息浏览的主要窗口,通常数字资产用户会使用区块链浏览器查询记录在区块中的交易信息。目前,已上线的区块链浏览器种类繁多,例如:https://btc.com和https://etherscan.io,前者支持BTC和BCH查询,后者支持ETH及ERC20智能合约的查询。其中:(1)btc.com该区块链浏览器目前可支持比特币和比特币现金的查询,可查询BTC公有链网络的交易信息和区块信息,以及各矿池的实时算力和网络状态。其技术依赖于蚂蚁矿池强大的算力支撑,可轻易获取实时算力及当前实时网络数据。但是,该系统也有其缺点,当用户根据比特币地址查询地址信息时,由于其地址查询技术是实时计算,其查询速度较慢。(2)etherscan.ioetherscan.io是一款针对以太坊的区块链浏览器,其可查询以太坊公有链网络上的各种参数数据,例如:ETH块高,块哈希,交易哈希,交易量,交易状态,GasPrice(在以太坊网络上进行一笔交易,每一步需要消耗的ETH数量),GasLimit(在以太坊网络上进行一笔交易,运行步数上限),GasUsed(在以太坊网络上进行一笔交易,实际运行步数)等等。另外,其还支持在以太坊网络上发布的各种智能合约,如:ERC20和ERC271,并提供其合约代码的查询。综上所述,以上两种区块链浏览器功能较多,可提供给用户各种链上参数信息。但是,对于普通用户而言,大部分只关注两种功能:交易查询和地址查询,其他参数对于普通用户来说较为陌生,并不实用。并且,以上两种区块链浏览器支持的查询币种单一,无法满足普通用户的一站式查询需求。
技术实现思路
现有区块链浏览器有两个重要问题需要解决,分别是:(1)提高地址和交易哈希的查询速度;(2)支持更多的币种,满足用户多种查询需求;(3)优化大数据量的存储,查询,读写速度。为了方便普通用户查询区块上记录的交易信息和区块信息,本专利技术开发了一个支持多币种,多维度查询的区块链浏览器,该区块链浏览器支持五大币种,分别是:比特币(BTC),比特币现金(BCH),莱特币(LTC),以太坊(ETH),以太坊经典(ETC),用户可通过数字货币地址或交易哈希进行查询。本专利技术的目的在于提供一种区块链浏览器,包括:(一)数据同步模块,负责从公有链网络节点实时同步区块数据,并将同步的数据结构化,存储在数据库,供查询使用,包括:各币种公有链节点,具有RPC接口,支持比特币BTC,比特币现金BCH,莱特币LTC,以太坊ETH和以太坊经典ETC币种,分别具有BTC-Node,BCH-Node,LTC-Node,ETH-Node以及ETC-Node;结构化后的区块子模块BlockInfo,包含特定块高下所有的交易数据;多个结构化后的交易信息子模块Transactionn,包括解析后的交易数据,所述交易数据包括块高、打包时间、交易量、发送地址以及接收地址;结构化后的地址信息子模块Addressn;以及数据库DB;(二)数据查询模块,提供用户查询用API以及三个HTTP接口,包括:币种查询接口CurrencyAPI;地址查询接口AddressAPI;交易哈希查询接口TransactionAPI。本专利技术的目的还在于提供一种采用区块链浏览器进行区块链信息浏览的方法,包括:(一)对数据同步模块操作,具体流程包括:步骤1-1:调用各币种公有链节点的RPC接口,获取一个块高的区块数据,区块数据包括该块高下的所有交易数据;步骤1-2:解析一个区块包含的所有交易数据,比如:块高,打包时间,交易量,发送地址,接收地址,矿工费,对于BTC系列的交易大小,对于ETH系列,在以太坊网络上进行一笔交易实际运行的步数信息,即GasUsed信息;步骤1-3:根据上一步从交易信息里解析出的发送地址和接收地址,对于BTC系列币种根据每笔交易的交易量计算账户余额,对于ETH系列币种记录在以太坊网络上进行一笔交易,每一步需要消耗的ETH数量,即GasPrice参数;步骤1-4:将以上结构化后的区块信息,交易信息,地址信息,利用线程池批量存入数据库。(二)对数据查询模块操作,具体流程包括:步骤2-1:服务器利用Restfull技术对外暴露API接口,接收用户查询请求;步骤2-2:用户若查询支持币种接口,服务调用枚举类直接返回;若按交易哈希查询,服务查询交易数据表,直接返回交易信息;步骤2-3:若用户按地址查询,调用地址查询API,首先会查询数据库获取该地址对应的所有交易哈希,再根据交易哈希进行步骤二操作,最终返回地址信息和最近的交易列表信息。优选的,所述对数据同步模块的操作采用分治算法,将所有区块数据分为多个任务,由多个同步服务并行执行,分布式处理,大部分同步数据任务前移,减少了用户查询时与公有链节点的交互。优选的,所述对数据同步模块的操作对于每个币种,在多个服务器上开启多个进程,同时同步不同块高范围的区块数据。优选的,所述步骤1-4包括采用分库分表设计进行数据存储,避免大数据量对性能的影响。优选的,所述对数据同步模块的操作采用定时任务方式执行。优选的,所述BTC系列币种根据与该地址相关的所有交易计算获得地址和余额信息;所述ETH系列币种在用户查询时,实时调用节点余额RPC接口获得地址和余额信息。采用本专利技术的支持多币种,多维度查询的区块链浏览器,方便普通用户查询区块上记录的交易信息和区块信息。目前,该区块链浏览器支持五大币种,分别是:比特币(BTC),比特币现金(BCH),莱特币(LTC),以太坊(ETH),以太坊经典(ETC),用户可通过数字货币地址或交易哈希进行查询,该浏览器具有如下的有益效果:第一,针对根据地址和交易哈希查询速度慢的问题,采用分治算法,从而将大部分同步数据任务前移,尽量减少在用户查询时与公有链节点的交互,提高系统应付并发的能力;第二,针对传统区块链浏览器支持币种过于单一的情况,本专利技术的区块链浏览器可支持目前五大主流币种(BTC,BCH,LTC,ETH,ETC)的查询服务,使用户查询更加方便快捷;第三,目前单币种交易量已达到十亿量级,为了应对区块数据量不断增大带来的性能问题,提高数据吞吐量,本专利技术的区块链浏览器架构在数据库设计和数据结构上做了优化,采用分库分表,主从分离等技术,最大限度优本文档来自技高网
...

【技术保护点】
1.一种区块链浏览器,其特征在于包括:(一)数据同步模块,负责从公有链网络节点实时同步区块数据,并将同步的数据结构化,存储在数据库,供查询使用,包括:各币种公有链节点,具有RPC接口,支持比特币BTC,比特币现金BCH,莱特币LTC,以太坊ETH和以太坊经典ETC币种,分别具有BTC‑Node,BCH‑Node,LTC‑Node,ETH‑Node以及ETC‑Node;结构化后的区块子模块BlockInfo,包含特定块高下所有的交易数据;多个结构化后的交易信息子模块Transaction n,包括解析后的交易数据,所述交易数据包括块高、打包时间、交易量、发送地址以及接收地址;结构化后的地址信息子模块Address n;以及数据库DB;(二)数据查询模块,提供用户查询用API以及三个HTTP接口,包括:币种查询接口CurrencyAPI;地址查询接口AddressAPI;交易哈希查询接口TransactionAPI。

【技术特征摘要】
1.一种区块链浏览器,其特征在于包括:(一)数据同步模块,负责从公有链网络节点实时同步区块数据,并将同步的数据结构化,存储在数据库,供查询使用,包括:各币种公有链节点,具有RPC接口,支持比特币BTC,比特币现金BCH,莱特币LTC,以太坊ETH和以太坊经典ETC币种,分别具有BTC-Node,BCH-Node,LTC-Node,ETH-Node以及ETC-Node;结构化后的区块子模块BlockInfo,包含特定块高下所有的交易数据;多个结构化后的交易信息子模块Transactionn,包括解析后的交易数据,所述交易数据包括块高、打包时间、交易量、发送地址以及接收地址;结构化后的地址信息子模块Addressn;以及数据库DB;(二)数据查询模块,提供用户查询用API以及三个HTTP接口,包括:币种查询接口CurrencyAPI;地址查询接口AddressAPI;交易哈希查询接口TransactionAPI。2.一种采用如权利要求1的区块链浏览器进行的区块链信息浏览方法,其特征在于包括:(一)对数据同步模块操作,具体流程包括:步骤1-1:调用各币种公有链节点的RPC接口,获取一个块高的区块数据,区块数据包括该块高下的所有交易数据;步骤1-2:解析一个区块包含的所有交易数据,比如:块高,打包时间,交易量,发送地址,接收地址,矿工费,对于BTC系列的交易大小,对于ETH系列,在以太坊网络上进行一笔交易实际运行的步数信息,即GasUsed信息;步骤1-3:根据上一步从交易信息里解析出的发送地址和接收地址,对于BTC系列币种根据每笔交易的交易量计算账户余额,对于ETH系列币种记录...

【专利技术属性】
技术研发人员:晏晓东
申请(专利权)人:海南新软软件有限公司
类型:发明
国别省市:海南,46

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

1