實用的鏈上資料工具 — Dune Analytics 介紹
今天要跟大家介紹鏈上工具 Dune Analytics,如果有特別去找過一些項目的相關數據、用戶之類的資料應該會看過這個工具。用 Etherscan 這樣的 Explorer 雖然也能查詢到所有鏈上的資料,但如果想要針對特定的 function 或地址的活動進行分析的話就比較困難。而 Dune Analytics 則能讓用戶利用 SQL 對鏈上資料進行查詢、篩選等等,也能做成視覺化的圖表幫助分析。
這篇內容會分為以下幾個部分:
- Dune 的資料來源
- 查詢現有的圖表的儀表板
- 自己利用 SQL 查詢/製作圖表和儀表板
- 實用的 abstractions
Dune 的資料來源
Dune 在 Web3 的數據領域裡屬於 data mappers,主要功能是把交易的 logs 都載下來,讓用戶能用 SQL 的方式去查訊這個他們建立好資料庫。而 Dune 的資料來源則仰賴 Infura 或 Alchemy,這樣的基礎設施讓他們省去自己建立和管理以太坊客戶端,可以直接以 API 的方式查詢鏈上資料。Dune 就是透過這些 API 持續去「聽」鏈上資料,整理成資料庫後再讓用戶去查詢。但也因為 Dune 接收到的不是第一手資料,所以相對鏈上的活動會延遲一些時間,但對於資料的分析通常不會有太大的影響。
那在 Dune 上能查詢到什麼樣的鏈上資料?目前只支援 Ethereum, Polygon, BNB Chain, Optimism and Gnosis Chain 這幾條鏈的資料(雖然資料格式有些不一樣,但也有 Solana 和 Arbitrum 交易的資料庫)。而資料庫裡主要的三個表格是 transactions, traces 和 logs,如果以 Etherscan 上可以看到的資料做對照,則分別是對應 transactions, internal transactions 和 events。下圖可以看到一筆 Transfer 交易會以什麼形式納入在 Dune 的這三個表格中,三大表格中又會含有哪些交易資料。
查詢現有的圖表和儀表板
到 Dune 的網站頁面可以直接搜尋想要查詢的項目/ 內容,大部分的知名項目都會有其他用戶做好的 dashboard 可以看,如果沒有的話也可以看看 queries 有沒有被查詢過的資料或圖表,只是沒有被製作成 dashboard。如果有登入的話,還可以把常用或喜歡的 dashboards/ queries 按 ⭐️ 符號就能加到我的最愛,看用戶得到的 ⭐️ 數量也是判斷他做的圖表的熱門程度或品質的一項指標。
自己利用 SQL 查詢/製作圖表和儀表板
如果搜尋不到自己想要找的資料,就可以自己利用 SQL 進行 query。下圖可以看到在 Dune 中 query 的畫面,左邊可以選擇要查詢的鏈,也可以直接搜尋已經被 decode 過的合約,如果是沒被 decode 過的合約也可以提出申請,大概一兩天後 Dune 就會通知該合約的資料可以直接被搜尋了(沒被 decode 的合約還是可以用 ethereum.transactions 等三大表格查到,只是無法直接在左側搜尋合約中的 function 或 event)。只要打好 SQL 的指令並按下 “Run” ,下方就會出現對應的資料了,操作起來很容易。查詢的資料出現後如果想要做成圖表,只要按下 “New visualization” 就能製作各類型的圖表 — 線圖、圓餅圖、柱狀圖、散佈圖等等。製作多個圖表後就能整理到自己的 dashboard 中,提供給其他用戶搜尋。
Dune 中 query 的操作畫面。資料來源:Dune Analytics
實用的 abstractions
另一個實用的功能是 abstractions,這些是客製化的表格,方便用戶查詢一些特定的資料。例如 dex.trades 和 nft.trades 都是 Dune 團隊製作並持續維護的表格,可以直接查詢所有 DEX 或 NFT 的交易資料,就不需要從各個交易所的交易抓取資料再合併。也有 erc20.stablecoins 可以查詢所有穩定幣數據、prices.usd 可以查詢代幣在 coinpaprika 和 coingecko 的價格等等。用戶也可以自己製作 abstractions,幫助自己和其他用戶更方便查詢某些數據。在 Dune 的 Github 可以查到所有的 abstractions,如果想了解這些表格的資料來源的話可以直接上去查看。
以上就是我們針對 Dune Analytics 的介紹,有另一個類似的工具 — Footprint Analytics 大家也可以去試用看看,一樣是可以利用 SQL 查詢資料並製成圖表的工具。之後如果找不到需要的資料時,不仿自己用這些工具整理數據看看!有興趣了解更多的朋友,也可以看看 OurNetwork 的這個課程,裡面有更詳細的介紹還有示範。