一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - 如何將以太坊數(shù)據(jù)流傳輸?shù)絈uestDB

如何將以太坊數(shù)據(jù)流傳輸?shù)絈uestDB

2021-04-20 00:03區(qū)塊鏈研究實驗室鏈三豐 Python

本文中,將和大家介紹如何從以太坊中提取鏈上數(shù)據(jù)并將其數(shù)據(jù)流傳輸?shù)絈uestDB以便于進行進一步的分析和可視化。

 如何將以太坊數(shù)據(jù)流傳輸?shù)絈uestDB

本文中,將和大家介紹如何從以太坊中提取鏈上數(shù)據(jù)并將其數(shù)據(jù)流傳輸?shù)絈uestDB以便于進行進一步的分析和可視化。

先決條件

  • Python 3.6+
  • 碼頭工人
  • Infura帳戶

訪問以太坊鏈上數(shù)據(jù)

Infura是由Consensys提供支持的開發(fā)平臺,具有免費層(每天10萬個請求),我們可以從以太坊主網(wǎng)和Testnets提取數(shù)據(jù)。

注冊一個免費帳戶并在以太坊下創(chuàng)建一個新項目:

如何將以太坊數(shù)據(jù)流傳輸?shù)絈uestDB

記下Mainnet的HTTPS端點(格式為https://mainnet.infura.io/v3/)。

使用架構(gòu)設(shè)置QuestDB

我們將用于流以太坊數(shù)據(jù)的ETL腳本提供以下鏈上信息:

  • 積木
  • 合約書
  • 日志
  • 代幣轉(zhuǎn)移
  • 代幣
  • 痕跡
  • 交易次數(shù)

簡單起見,在此示例中,我們僅流式傳輸塊和令牌傳輸,但是所有可用鏈上數(shù)據(jù)的模式都位于ethereum-etl-postgres / schema下(需要將Postgres數(shù)據(jù)類型轉(zhuǎn)換為Java數(shù)據(jù)類型)。該數(shù)據(jù)將在QuestDB中建立索引,以利用其高性能的時間序列數(shù)據(jù)。

使用Web控制臺和Postgres端點啟動QuestDB:

  1. $ docker run -p 9000:9000 -p 8812:8812 questdb/questdb 

導(dǎo)航至Web控制臺,localhost:9000然后為塊創(chuàng)建表:

  1. create table blocks 
  2.     timestamp string, 
  3.     number bigint
  4.     hash string, 
  5.     parent_hash string, 
  6.     nonce string, 
  7.     sha3_uncles string, 
  8.     logs_bloom string, 
  9.     transactions_root string, 
  10.     state_root string, 
  11.     receipts_root string, 
  12.     miner symbol, 
  13.     difficulty long, 
  14.     total_difficulty long, 
  15.     size long, 
  16.     extra_data string, 
  17.     gas_limit long, 
  18.     gas_used long, 
  19.     transaction_count long 
  20. ); 

以及用于token_transfers;

  1. create table token_transfers 
  2.   token_address symbol, 
  3.   from_address symbol, 
  4.   to_address symbol, 
  5.   value float
  6.   transaction_hash string, 
  7.   log_index long, 
  8.   block_timestamp string, 
  9.   block_number long, 
  10.   block_hash string 
  11. ); 

刷新表格列表后,您應(yīng)該看到兩個都已填充:

如何將以太坊數(shù)據(jù)流傳輸?shù)絈uestDB

現(xiàn)在我們準(zhǔn)備將以太坊數(shù)據(jù)流式傳輸?shù)轿覀兊臄?shù)據(jù)庫。

流以太坊鏈上數(shù)據(jù)

區(qū)塊鏈ETL提供了一個Python腳本,可從Infura中提取數(shù)據(jù)并將其流式傳輸?shù)紾oogle Pub / Sub或Postgres。現(xiàn)在,我們需要先安裝ethereumetl[streaming]:

  1. $ pip3 install "ethereum-etl[streaming]" 

現(xiàn)在,我們需要指定我們的QuestDB憑據(jù)以及Infura API詳細(xì)信息。

Postgres輸出采用以下形式,postgresql+pg8000://: @: /并且API URL通過進行指定--provider-uri。我們還可以指定start-block數(shù)字(或者從一開始就省略下載所有以太坊數(shù)據(jù)),以及我們感興趣的模式:

  1. $ ethereumetl stream --start-block 600000 -e block,token_transfer --output postgresql+pg8000://admin:quest@localhost:8812/qdb --provider-uri https://mainnet.infura.io/v3/<my-project-id> 

當(dāng)數(shù)據(jù)開始傳輸時,您可以在QuestDB中看到它的索引:

如何將以太坊數(shù)據(jù)流傳輸?shù)絈uestDB

該腳本會自動將最后處理的塊存儲在中l(wèi)ast_synced_block.txt。如果要稍后運行腳本,則可以刪除--start-block腳本中的標(biāo)志。

探索數(shù)據(jù)和改進

QuestDB提供了一些內(nèi)置的可視化功能。例如,如果您想gas_used由礦工看,則可以進入下面Chart并將其設(shè)置為以下內(nèi)容:

如何將以太坊數(shù)據(jù)流傳輸?shù)絈uestDB

以太坊ETL腳本當(dāng)前以RFC3339格式存儲時間戳數(shù)據(jù),而QuestDB期望從Unix Epoch開始有符號偏移。這就是為什么我們的表架構(gòu)為時間序列字段使用字符串而不是日期或時間戳的原因。

為了獲得更高的性能,我們可以先修改ETL腳本,或者先將其流式傳輸?shù)紺loud Pub / Sub,然后轉(zhuǎn)換數(shù)據(jù),然后再流式傳輸?shù)絈uestDB。

另外,我們可以to_timestamp()在提取數(shù)據(jù)后使用QuestDB上的功能來修改表。例如,要轉(zhuǎn)換blocks表以使用QuestDB理解的正確時間戳,我們可以執(zhí)行以下操作:

  1. SELECT to_timestamp(timestamp'yyyy-MM-dd HH:mm:ss')  
  2. AS time, number, miner, difficulty, size, gas_limit, gas_used  
  3. FROM (blocks  
  4. ORDER BY timestamp); 

如何將以太坊數(shù)據(jù)流傳輸?shù)絈uestDB

最后,如果您要流式傳輸合同或令牌數(shù)據(jù),則需要先將function_sighashes字段展平,因為QuestDB本身還不支持Array類型。

有了這些數(shù)據(jù),現(xiàn)在您就可以計算出流行的信號,例如“網(wǎng)絡(luò)價值與交易比率”,或者在Coin Metrics或Glassnode上提供的重復(fù)分析。

原文地址:https://mp.weixin.qq.com/s/MKNEmyt3_OmCA2EWnCnrGg

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美性videossex丝袜 | 日本xxxx69hd| 国产日韩欧美在线播放 | 无人区乱码1区2区3区网站 | 精品视频免费在线观看 | 欧美成人三级伦在线观看 | 欧美成人免费观看bbb | 91短视频社区在线观看 | 亚洲欧美久久一区二区 | 男人的天堂久久精品激情 | 成人 在线欧美亚洲 | 青青青手机视频 | 国产五月天在线 | 2020年最新国产精品视频免费 | 九九精品视频在线播放 | 亚洲AV久久久噜噜噜久久 | 国内精品一区二区三区东京 | 激情综合色啪啪小说 | 欧美brazzers| 贵妇的私人性俱乐部 | 色婷婷激婷婷深爱五月老司机 | 久久久久999 | 亚洲H成年动漫在线观看不卡 | 国产在线观看人成激情视频 | 五月天黄网 | 日本三级斤 | 亚洲国产第一区二区香蕉日日 | 精品亚洲国产一区二区 | 成人免费体验区福利云点播 | 19+韩国女主播激情vip视频在线 | 国产91对白在线观看 | 日本艳鉧动漫1~6完整版在 | 香港日本三级亚洲三级 | 美女被躁了在线观看视频 | 513热点| 久久伊人中文字幕有码 | 国产成人一区二区三区 | 国产精品免费观在线 | 色综合久久中文字幕综合网 | 精品精品国产yyy5857香蕉 | 扒开放荡老师裙子猛烈的进入 |