一种用于区块链数字货币的数据处理和查询方法技术

技术编号:22501960 阅读:16 留言:0更新日期:2019-11-09 02:32
本发明专利技术提出了一种用于区块链数字货币的数据处理和查询方法,包括以下步骤:S1、利用高并发程序请求以太坊网页,获取以太坊历史交易中产生的区块数据、外部交易数据和内部交易数据;S2、根据区块数据、外部交易数据和内部交易数据计算以太坊中每个账号每次交易后的账户余额;S3、构建大数据集群,实现区块数据、外部交易数据、内部交易数据、账户余额的存储和实时查询。本发明专利技术方法通过高并发程序快速获取以太坊全量数据并计算账户余额,得到以太坊全量数据,计算方法简单有效,利用大数据集群存储数据并进行数据实时查询,能够高效、准确的实现数字货币管理和查询。

A data processing and query method for blockchain digital currency

The invention proposes a data processing and query method for blockchain digital currency, which includes the following steps: S1. Request the Ethereum web page with high concurrency program to obtain the block data, external transaction data and internal transaction data generated in the historical transaction of Ethereum; S2. Calculate each account in Ethereum according to the block data, external transaction data and internal transaction data S3. Build big data cluster to realize the storage and real-time query of block data, external transaction data, internal transaction data and account balance. The method of the invention quickly obtains the full data of Ethereum and calculates the account balance through the high concurrent program, so as to obtain the full data of Ethereum. The calculation method is simple and effective. By using the big data cluster to store data and conduct real-time data query, the digital currency management and query can be realized efficiently and accurately.

【技术实现步骤摘要】
一种用于区块链数字货币的数据处理和查询方法
本专利技术涉及一种基于大数据技术的区块链数字货币审计方法,属于数字货币审计监管

技术介绍
自2008年中本聪正式提出比特币的概念以来,数字货币在十年的时间内快速发展,目前已形成包括比特币、以太坊、莱特币、瑞波币在内的多种具有各自特点的数字货币,深刻影响着现代金融体系的发展。数字货币是一种基于节点网络和数字加密算法的虚拟货币,而数字货币的形成在本质上依赖于区块链技术的发展。在区块链技术出现之前,互不信任的实体之间进行信用协作需要依赖第三方的参与,例如在用户、商家、银行三者的关系当中,银行作为中介凭借其信任背书与技术能力承担让渡风险与规避风险的功能,保证资金在用户和商家之间能够安全流通,最终促使交易顺利完成。区块链技术的出现打破了这种传统的三角关系,使得任意两个互不信任的主体之间不需要第三方的信用背书就能够就行点对点的交易,解决了中介的信用问题,这就是数字货币最突出也是最重要的特点——去中心化。数字货币作为新兴的支付系统,与传统货币相比较具有支付耗时短、安全性高、手续费低等特点。根据CoinMarketCap提供的数据,截至2017年4月,全球数字货币总市值已超过200亿美元并呈现稳步上升的态势。作为数字货币的底层技术,区块链除了具有去中心化的特点之外,还综合了现代密码学、分布式数据存储及P2P网络等技术,而这些技术为数字货币赋予了匿名性、安全性、防篡改和可追溯的特性,这些特性保证了数字货币的交易安全性,但同时也加大了对数字货币进行监管的难度。数字货币在支付、流转的过程中会产生的海量数据,这些数据的处理是数字货币审计工作的难点之一,目前鲜有针对区块链或科技金融领域监管方案的研究,也鲜有针对数字货币的数据处理和查询方法。
技术实现思路
为了解决数字货币监管困难的问题,本专利技术提出了一种用于区块链数字货币的数据处理和查询方法,通过高并发程序请求以太坊网页,获取以太坊全量交易数据,基于大数据技术,采用对全量数据进行分析处理的方法计算以太坊账户余额,建立大数据集群,实现全量数据的存储和实时查询。为解决上述技术问题,本专利技术采用了如下技术手段:一种用于区块链数字货币的数据处理和查询方法,具体包括以下步骤:S1、利用高并发程序请求以太坊网页,获取以太坊历史交易中产生的区块数据、外部交易数据和内部交易数据;S2、根据区块数据、外部交易数据和内部交易数据计算以太坊中每个账号每次交易后的账户余额;S3、构建大数据集群,实现区块数据、外部交易数据、内部交易数据、账户余额的存储和实时查询。进一步的,所述步骤S1的具体操作如下:S11、注册多个以太坊主网账号;S12、编写高并发程序,将高并发程序分布式的部署在多台服务器上,每台服务器指定多个以太坊主网账号;S13、利用消息代理软件生成消息队列,构建高并发分布式请求访问以太坊API接口,获取以太坊历史交易中产生的的区块数据和外部交易数据,所述外部交易数据指以太坊账号与账号之间交易产生的数据;S14、构建高并发请求访问以太坊官方查询主页,遍历以太坊内所有区块号,获取所有区块号的内部交易数据,所述内部交易数据指以太坊账号与合约、合约与合约之间交易产生的数据,所述合约指区块链中的合约;S15、构建关系型数据库存储区块数据、外部交易数据和内部交易数据。进一步的,所述步骤S11的具体操作如下:通过解析临时邮箱网站的账号注册模式,构建模拟请求获取多个邮箱账号,访问以太坊主网并通过获取的邮箱账号注册、激活多个以太网主网账号。进一步的,所述区块数据包括区块序号、区块哈希值、上一区块哈希值、挖矿难度值、总难度值、时间戳和区块包含的交易哈希,所述外部交易数据包括外部交易哈希值、区块哈希值、区块序号、外部交易序号、外部交易发起账号、外部交易接收账号、外部交易数值、区块时间戳、外部交易状态和外部交易花费,所述内部交易数据包括区块序号、内部交易哈希值、内部交易发起账号、内部交易接收账号、内部交易数值和内部交易状态。进一步的,所述步骤S14中在构建高并发请求时,基于IP代理池为请求账号添加代理。进一步的,步骤S2的具体操作如下:S21、查询某一区块内的外部交易数据和内部交易数据,按照交易产生的时间先后顺序为该区块内的所有交易排序,所述所有交易包括外部交易和内部交易;S22、从后向前遍历该区块内的所有交易,根据外部交易数据中的外部交易发起账号、外部交易接收账号、外部交易数值、外部交易状态和外部交易花费计算每笔外部交易后交易双方账号的余额,根据内部交易中的内部交易发起账号、内部交易接收账号、内部交易数值和内部交易状态计算每笔内部交易后交易双方账号的余额;S23、抽取任一账号进行余额验证,在以太网官方主页获取该账号在该区块内参与的所有交易的数据,计算该账号在该区块交易后的余额,与S22计算得到的余额对比,验证余额计算的准确性;S24、重复步骤S21、S22、S23,遍历所有区块,计算以太坊中每个账号每次交易后的账户余额,并将账户余额存储在关系型数据库中。进一步的,所述步骤S22中,当任意一笔交易中的账号在该区块内首次出现,访问以太坊API接口查询该账户在该区块中的余额,所述余额即为该账户在该区块内交易后的余额;当任意一笔交易中的账号在该区块内不是首次出现,根据外部交易数据中的外部交易发起账号、外部交易接收账号、外部交易数值、外部交易状态和外部交易花费计算每笔外部交易后交易双方账号的余额,根据内部交易中的内部交易发起账号、内部交易接收账号、内部交易数值和内部交易状态计算每笔内部交易后交易双方账号的余额。进一步的,所述步骤S3的具体操作如下:S31、使用ClouderaManager搭建分布式Hadoop大数据集群,所述大数据集群包括以下组件:HDFS,YARN,Oozie,Sqoop,Hive,Impala和Zookeeper;S32、在大数据的Hive中建立表格,利用数据传输工具将关系型数据库中的全量数据导入到Hive表中,所述全量数据包括区块数据、外部交易数据、内部交易数据和账号余额数据;S33、在Impala中关联Hive,构建查询语句实现以太坊全量数据的实时查询。进一步的,所述步骤S33中以太坊全量数据查询的具体操作为:将所有待查询账号的账号地址录入csv文件,将csv文件输入大数据集群服务器中,在Hive组件中建立地址簿,利用脚本将csv文件中的账号地址导入地址簿中,在数据查询页面选择impala,进入pwc_ethereum数据库,利用脚本和地址簿访问数据库中的全量数据,查询账号对于的区块数据、外部交易数据、内部交易数据和账号余额数据。采用以上技术手段后可以获得以下优势:本专利技术提出了一种用于区块链数字货币的数据处理和查询方法,通过解析邮箱账号注册模式,获取多个邮箱账号用来注册和激活多个以太坊主网账号,编写高并发程序,利用账号和高并发程序请求访问以太网的API接口和网页,获取区块数据、外部交易数据和内部交易数据。常规的方法不能从整体的角度对以太坊的历史交易数据进行分析,但是本专利技术方法依照大数据的核心思想,通过高并发分布式的方法可以快速获得以太坊全量的历史数据,然后按照顺序遍历以太坊的所有交易,根据采集的数据计算账户的余额,并通过余额验证确定余额计算的准本文档来自技高网
...

【技术保护点】
1.一种用于区块链数字货币的数据处理和查询方法,其特征在于,包括以下步骤:S1、利用高并发程序请求以太坊网页,获取以太坊历史交易中产生的区块数据、外部交易数据和内部交易数据;S2、根据区块数据、外部交易数据和内部交易数据计算以太坊中每个账号每次交易后的账户余额;S3、构建大数据集群,实现区块数据、外部交易数据、内部交易数据、账户余额的存储和实时查询。

【技术特征摘要】
1.一种用于区块链数字货币的数据处理和查询方法,其特征在于,包括以下步骤:S1、利用高并发程序请求以太坊网页,获取以太坊历史交易中产生的区块数据、外部交易数据和内部交易数据;S2、根据区块数据、外部交易数据和内部交易数据计算以太坊中每个账号每次交易后的账户余额;S3、构建大数据集群,实现区块数据、外部交易数据、内部交易数据、账户余额的存储和实时查询。2.根据权利要求1所述的一种用于区块链数字货币的数据处理和查询方法,其特征在于,所述步骤S1的具体操作如下:S11、注册多个以太坊主网账号;S12、编写高并发程序,将高并发程序分布式的部署在多台服务器上,每台服务器指定多个以太坊主网账号;S13、利用消息代理软件生成消息队列,构建高并发分布式请求访问以太坊API接口,获取以太坊历史交易中产生的的区块数据和外部交易数据,所述外部交易数据指以太坊账号与账号之间交易产生的数据;S14、构建高并发请求访问以太坊官方查询主页,遍历以太坊内所有区块号,获取所有区块号的内部交易数据,所述内部交易数据指以太坊账号与合约、合约与合约之间交易产生的数据,所述合约指区块链中的合约;S15、构建关系型数据库存储区块数据、外部交易数据和内部交易数据。3.根据权利要求2所述的一种用于区块链数字货币的数据处理和查询方法,其特征在于,所述步骤S11的具体操作如下:通过解析临时邮箱网站的账号注册模式,构建模拟请求获取多个邮箱账号,访问以太坊主网并通过获取的邮箱账号注册、激活多个以太网主网账号。4.根据权利要求2所述的一种用于区块链数字货币的数据处理和查询方法,其特征在于,所述区块数据包括区块序号、区块哈希值、上一区块哈希值、挖矿难度值、总难度值、时间戳和区块包含的交易哈希,所述外部交易数据包括外部交易哈希值、区块哈希值、区块序号、外部交易序号、外部交易发起账号、外部交易接收账号、外部交易数值、区块时间戳、外部交易状态和外部交易花费,所述内部交易数据包括区块序号、内部交易哈希值、内部交易发起账号、内部交易接收账号、内部交易数值和内部交易状态。5.根据权利要求2所述的一种用于区块链数字货币的数据处理和查询方法,其特征在于,所述步骤S14中在构建高并发请求时,基于IP代理池为请求账号添加代理。6.根据权利要求4所述的一种用于区块链数字货币的数据处理和查询方法,其特征在于,步骤S2的具体操作如下:S21、查询某一区块内的外部交易数据和内部交易数据,按照交易产生的时间先后顺序为该区块内的所有交易排序,所述所有交易包括外部交易和内部交易...

【专利技术属性】
技术研发人员:袁栩栩李一明
申请(专利权)人:南京安链数据科技有限公司
类型:发明
国别省市:江苏,32

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

1