欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > Dune Query 入門教程

Dune Query 入門教程及Sol錢包轉(zhuǎn)賬追蹤實踐Ⅰ

2025-05-13 12:24:17 | 來源: | 作者:佚名
Dune Analytics 是一個用于分析并發(fā)現(xiàn)區(qū)塊鏈數(shù)據(jù)的強(qiáng)大工具,它使用 SQL 語言來查詢鏈上數(shù)據(jù),使用者可以將這些數(shù)據(jù)轉(zhuǎn)換為有用的分析,這篇博客將介紹 Dune 查詢的基礎(chǔ)用法,并通過一個 Solana 鏈上鏈下鏈監(jiān)控實踐項目來幫助你學(xué)會實踐中的基礎(chǔ)查詢技術(shù)

介紹

Dune Analytics 是一個用于分析并發(fā)現(xiàn)區(qū)塊鏈數(shù)據(jù)的強(qiáng)大工具。它使用 SQL 語言來查詢鏈上數(shù)據(jù),使用者可以將這些數(shù)據(jù)轉(zhuǎn)換為有用的分析。這篇博客將介紹 Dune 查詢的基礎(chǔ)用法,并通過一個 Solana 鏈上鏈下鏈監(jiān)控實踐項目來幫助你學(xué)會實踐中的基礎(chǔ)查詢技術(shù)。

Data Explorer 功能介紹

在開始編寫查詢之前,熟悉 Dune Analytics 左側(cè)的 Data Explorer 是非常重要的。Data Explorer 提供了對數(shù)據(jù)庫中可用數(shù)據(jù)表和字段的瀏覽功能。你可以通過它查看不同區(qū)塊鏈的數(shù)據(jù)集、表結(jié)構(gòu)和字段的類型,從而更好地理解哪些數(shù)據(jù)可以用于查詢。例如,你可以在 Solana 區(qū)塊鏈下找到 transactions 表,并看到其中的字段(如 block_timepre_token_balances 等),這些信息對你編寫查詢時非常有幫助。

Data Explorer 的主要功能包括:

  • 瀏覽不同區(qū)塊鏈(例如以太坊、Solana 等)的數(shù)據(jù)集。
  • 查看每個數(shù)據(jù)表的字段和數(shù)據(jù)類型,幫助你了解如何構(gòu)建查詢。
  • 使用過濾功能快速定位特定的表或字段。

利用 Data Explorer 可以幫助你更快地找到你需要的數(shù)據(jù),并了解這些數(shù)據(jù)的結(jié)構(gòu)。

基礎(chǔ)語法

Dune 使用 Trino 語法的 SQL,對于很多只寫過 MySQL 的人來說,這些語法可能會有一些不同,但大部分基礎(chǔ)查詢是相似的,基本語法和我們所熟悉的 SQL 應(yīng)該相當(dāng)接近。下面對一些常用的 SQL 基礎(chǔ)語法用詞進(jìn)行解釋:

  • WITH:用于定義公用表表達(dá)式(CTE),可以讓查詢分步驟進(jìn)行,增加可讀性和模塊化。
  • SELECT:用于指定查詢的列。
  • FROM:用于指定查詢的數(shù)據(jù)表。
  • WHERE:用于過濾數(shù)據(jù),指定查詢條件。
  • UNNEST:用于將數(shù)組字段解包為多行,便于后續(xù)處理。
  • AS:為字段或表賦予別名,方便引用。

例如,要查詢 Solana 鏈上特定時間段內(nèi)的交易,可以使用下面的基本查詢語法:

SELECT *
FROM solana.transactions
WHERE block_time >= NOW() - INTERVAL '7' DAY;
  • SELECT 語法用于查詢指定列。在這個例子中,查詢所有交易。
  • FROM 用于指定數(shù)據(jù)來源,此處為 solana.transactions 表。
  • WHERE 用來過濾數(shù)據(jù),例如查詢最近7天的交易。

聯(lián)合用法和基礎(chǔ) UNNEST

在 Dune 中,鏈上數(shù)據(jù)常包含運行結(jié)果為數(shù)組的記錄,例如交易的應(yīng)用數(shù)量變更。這時,可以用 UNNEST 。UNNEST 用于將數(shù)組字段中的每個元素都作為單獨的一行進(jìn)行處理。比如,在鏈上交易的數(shù)據(jù)中,有些字段包含數(shù)組(例如一個錢包的多個代幣余額),通過 UNNEST 操作,可以將這些數(shù)組元素解開,讓每個元素變成一行數(shù)據(jù)。這對于需要分析數(shù)組內(nèi)部各個元素的情況非常有用,這樣就可以將數(shù)組內(nèi)容逐條處理,而不是整體作為一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

SELECT t.block_time, pre.owner
FROM solana.transactions t,
     UNNEST(t.pre_token_balances) AS pre
WHERE pre.owner = '6EDJ7JuynXSPaMvufzAX4swSRJZXv6uPi4s6jmo33xj5';
  • UNNEST 語法用來將數(shù)組字段解包為多行,此處是 pre_token_balances。
  • AS pre 用來為每一行數(shù)組記錄賦予一個別名pre,便于后面查詢。

這個查詢實踐項目

我們的實踐項目是一個用于追蹤 Solana 鏈上特定鏈下鏈的代幣轉(zhuǎn)賬的分析工具。并通過這個查詢實現(xiàn)了特定代幣的交易跟蹤:

WITH filtered_transactions AS (
  SELECT *
  FROM solana.transactions t
  WHERE block_time >= NOW() - INTERVAL '7' DAY  -- 限制時間范圍為最近7天
),
wallet_related_transactions AS (
  SELECT *
  FROM filtered_transactions t,
    UNNEST(t.pre_token_balances) AS pre
  WHERE pre.owner = '6EDJ7JuynXSPaMvufzAX4swSRJZXv6uPi4s6jmo33xj5'  -- 為指定鏈下鏈地址
),
token_transfers AS (
  SELECT
    t.block_time,
    pre.owner AS "From",
    post.owner AS "To",
    post.mint AS "Token",
    pre.amount AS "Pre_Amount",
    post.amount AS "Post_Amount"
  FROM
    wallet_related_transactions t,
    UNNEST(t.pre_token_balances) AS pre,
    UNNEST(t.post_token_balances) AS post
  WHERE
    pre.owner = '6EDJ7JuynXSPaMvufzAX4swSRJZXv6uPi4s6jmo33xj5'  -- 指定主鏈包并地址
    AND post.owner IS NOT NULL
    AND post.mint = 'BYcs8bjoGv6m4LkRrpEDVbJvPESvP9A1migRmaDApump'  -- 指定代幣合約地址
)
SELECT
  block_time,
  "From",
  "To",
  "Token",
  "Pre_Amount",
  "Post_Amount"
FROM
  token_transfers
ORDER BY
  block_time DESC
LIMIT 1000;  -- 限制最多返回 1000 條記錄

這個查詢的過程

  • 首先在 filtered_transactions 中限制查詢最近7天的數(shù)據(jù),使數(shù)據(jù)量更可控。
  • 然后在 wallet_related_transactions 中將這些數(shù)據(jù)進(jìn)行 UNNEST,按照為指定鏈下鏈的交易進(jìn)行過濾。
  • 最后在 token_transfers 中進(jìn)行更詳細(xì)的解包,并追蹤代幣從 “From” 到 “To” 的轉(zhuǎn)賬。

這樣的查詢設(shè)計使用了多個 CTE 來組織查詢過程,通過漸進(jìn)過濾的方式,使得查詢更加高效。

結(jié)論

使用 Dune Analytics 可以幫助你對區(qū)塊鏈數(shù)據(jù)進(jìn)行深入分析。通過基礎(chǔ)的 SQL 語法并使用 UNNEST 來處理復(fù)雜數(shù)據(jù)結(jié)構(gòu),你可以實現(xiàn)特定鏈下鏈的轉(zhuǎn)賬查詢和跟蹤。在實踐中,使用強(qiáng)化的數(shù)據(jù)過濾以便將查詢范圍限制在為你所關(guān)心的信息上,這樣會更有效率。希望這篇博客能幫助你學(xué)會使用 Dune 來開始實現(xiàn)你的區(qū)塊鏈數(shù)據(jù)分析目標(biāo)。

聲明:文章內(nèi)容不代表本站觀點及立場,不構(gòu)成本平臺任何投資建議。本文內(nèi)容僅供參考,風(fēng)險自擔(dān)!
Tag:Dune   Query   入門教程  

你可能感興趣的文章

幣圈快訊

  • Upbit新增BingX為賬戶驗證服務(wù)支持交易平臺

    2025-06-12 14:09
    ChainCatcher消息,據(jù)官方公告,Upbit新增BingX為賬戶持有人驗證服務(wù)支持的交易所,關(guān)聯(lián)日期為2025年6月12日。用戶可在支持的交易所進(jìn)行數(shù)字資產(chǎn)存取款,存取款匯率以操作時的韓元兌換率計算。
  • BinanceAlpha現(xiàn)已上線PUNDIAI(PUNDIAI),符合條件的用戶可申領(lǐng)空投

    2025-06-12 14:03
    金色財經(jīng)報道,據(jù)官方公告,BinanceAlpha現(xiàn)已上線PUNDIAI(PUNDIAI)。符合條件的Binance用戶,需擁有至少237個Alpha積分,可以從2025年6月12日東八區(qū)14:00起在Alpha活動頁面上申領(lǐng)8個PUNDIAI代幣的空投。
  • 法國警方在加密貨幣綁架案中再逮捕多名嫌疑人

    2025-06-12 14:03
    金色財經(jīng)報道,據(jù)Cointelegraph報道,法國警方在加密貨幣綁架案中再逮捕多名嫌疑人。5月3日警方曾突襲解救了某加密貨幣企業(yè)家父親,該受害者被囚禁數(shù)日并被切斷手指,綁匪索要800萬美元贖金。6月4日摩洛哥逮捕一名法國系列加密貨幣綁架案主謀,5月26日巴黎還逮捕12名相關(guān)嫌疑人。專家分析稱,犯罪組織可能誤認(rèn)為加密貨幣無法追蹤,而部分用戶缺乏基本安全意識也助長了此類案件。
  • 第一財經(jīng)發(fā)文提示虛擬幣LABUBU炒作風(fēng)險,業(yè)內(nèi)警示高風(fēng)險與投機(jī)行為

    2025-06-12 13:54
    ChainCatcher消息,昨日晚間,第一財經(jīng)刊文《幣圈盯上LABUBU,非法炒作「游戲」背后隱藏巨大風(fēng)險》。文章指出近期一款名為“LABUBU”的虛擬貨幣借助潮玩IP的火爆熱度悄然上線,并在多家交易所掛牌交易。在上線初期,該虛擬幣價格曾一度急劇上漲,但隨后便出現(xiàn)了大幅下跌。 第一財經(jīng)記者在推介網(wǎng)頁看到,LABUBU幣并非泡泡瑪特官方發(fā)行,而是由一群社區(qū)驅(qū)動的開發(fā)人員推出。業(yè)內(nèi)人士提醒,LABUBU幣的推出是幣圈典型的投機(jī)行為,其巨大的價格波動也充分暴露了背后極高的投資風(fēng)險,這些項目大多毫無價值,其本質(zhì)是欺詐和傳銷。
  • 前Galaxy高管發(fā)文質(zhì)疑以太坊基金會新組織架構(gòu)混亂

    2025-06-12 13:53
    ChainCatcher消息,前GalaxyDigital研究副總裁ChristineKim于X平臺發(fā)文指出,新的以太坊基金會組織架構(gòu)令人困惑。她提到,TimBeiko、BarnabéMonnot和AlexStokes身兼多職,既要領(lǐng)導(dǎo)基金會所有研發(fā)團(tuán)隊,又要管理自身團(tuán)隊,且需在未來12個月內(nèi)負(fù)責(zé)L1、L2擴(kuò)容及改善用戶體驗(UX)。 此外,Christine對架構(gòu)圖細(xì)節(jié)存疑,包括加粗名字是否為團(tuán)隊負(fù)責(zé)人、高亮部分用途,以及Tim是否負(fù)責(zé)協(xié)議協(xié)調(diào)并監(jiān)督多個項目。 同時,她對顏色分組邏輯表示不解,如為何將共識機(jī)制與賬戶抽象分一組,卻未將無狀態(tài)共識等納入;為何Testing與pandaops分一組,而Security卻未被分組。
  • 查看更多