如何將以太坊數據流傳輸到QuestDB | 區塊鏈研究實驗室
火幣網(huobi.com)最新可用網址(點擊下圖直達註冊!)
火必交易所,曾经的火币交易所!
欧易OKX三大交易所,稳定好用!
币安全球第一大交易所!安全!
先決條件
訪問以太坊鏈上數據
使用架構設置QuestDB
該數據將在QuestDB中建立索引,以利用其高性能的時間序列數據。
$ docker run -p 9000:9000 -p 8812:8812 questdb/questdb
導航至Web控制臺,localhost:9000然後為塊創建表: create table blocks
(
timestamp string,
number bigint,
hash string,
parent_hash string,
nonce string,
sha3_uncles string,
logs_bloom string,
transactions_root string,
state_root string,
receipts_root string,
miner symbol,
difficulty long,
total_difficulty long,
size long,
extra_data string,
gas_limit long,
gas_used long,
transaction_count long
);
以及用於token_transfers;
create table token_transfers
(
token_address symbol,
from_address symbol,
to_address symbol,
value float,
transaction_hash string,
log_index long,
block_timestamp string,
block_number long,
block_hash string
);
刷新表格列表後,您應該看到兩個都已填充: 現在我們準備將以太坊數據流式傳輸到我們的數據庫。 流以太坊鏈上數據 區塊鏈ETL提供瞭一個Python腳本,可從Infura中提取數據並將其流式傳輸到Google Pub / Sub或Postgres。現在,我們需要先安裝ethereumetl[streaming]:
$ pip3 install "ethereum-etl[streaming]"
現在,我們需要指定我們的QuestDB憑據以及Infura API詳細信息。
Postgres輸出采用以下形式,postgresql+pg8000://<user>:<password>@<host>:<port>/<database>並且API URL通過進行指定–provider-uri。我們還可以指定start-block數字(或者從一開始就省略下載所有以太坊數據),以及我們感興趣的模式: $ 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>
當數據開始傳輸時,您可以在QuestDB中看到它的索引: 該腳本會自動將最後處理的塊存儲在中last_synced_block.txt。如果要稍後運行腳本,則可以刪除–start-block腳本中的標志。 探索數據和改進
QuestDB提供瞭一些內置的可視化功能。例如,如果您想gas_used由礦工看,則可以進入下面Chart並將其設置為以下內容: 以太坊ETL腳本當前以RFC3339格式存儲時間戳數據,而QuestDB期望從Unix Epoch開始有符號偏移。這就是為什麼我們的表架構為時間序列字段使用字符串而不是日期或時間戳的原因。
為瞭獲得更高的性能,我們可以先修改ETL腳本,或者先將其流式傳輸到Cloud Pub / Sub,然後轉換數據,然後再流式傳輸到QuestDB。
另外,我們可以to_timestamp()在提取數據後使用QuestDB上的功能來修改表。例如,要轉換blocks表以使用QuestDB理解的正確時間戳,我們可以執行以下操作:
SELECT to_timestamp(timestamp, 'yyyy-MM-dd HH:mm:ss')
AS time, number, miner, difficulty, size, gas_limit, gas_used
FROM (blocks
ORDER BY timestamp);、
最後,如果您要流式傳輸合同或令牌數據,則需要先將function_sighashes字段展平,因為QuestDB本身還不支持Array類型。
有瞭這些數據,現在您就可以計算出流行的信號,例如“網絡價值與交易比率”,或者在Coin Metrics或Glassnode上提供的重復分析。 作者:鏈三豐,來源:區塊鏈研究實驗室
下一篇:鏈上操作必備防坑指南 |鏈捕手 返回列表页>>> 比特幣最新新聞