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

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

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

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

介紹

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

Data Explorer 功能介紹

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

Data Explorer 的主要功能包括:

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

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

基礎(chǔ)語(yǔ)法

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

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

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

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

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

在 Dune 中,鏈上數(shù)據(jù)常包含運(yùn)行結(jié)果為數(shù)組的記錄,例如交易的應(yīng)用數(shù)量變更。這時(shí),可以用 UNNEST 。UNNEST 用于將數(shù)組字段中的每個(gè)元素都作為單獨(dú)的一行進(jìn)行處理。比如,在鏈上交易的數(shù)據(jù)中,有些字段包含數(shù)組(例如一個(gè)錢包的多個(gè)代幣余額),通過(guò) UNNEST 操作,可以將這些數(shù)組元素解開,讓每個(gè)元素變成一行數(shù)據(jù)。這對(duì)于需要分析數(shù)組內(nèi)部各個(gè)元素的情況非常有用,這樣就可以將數(shù)組內(nèi)容逐條處理,而不是整體作為一個(gè)復(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 語(yǔ)法用來(lái)將數(shù)組字段解包為多行,此處是 pre_token_balances
  • AS pre 用來(lái)為每一行數(shù)組記錄賦予一個(gè)別名pre,便于后面查詢。

這個(gè)查詢實(shí)踐項(xiàng)目

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

WITH filtered_transactions AS (
  SELECT *
  FROM solana.transactions t
  WHERE block_time >= NOW() - INTERVAL '7' DAY  -- 限制時(shí)間范圍為最近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 條記錄

這個(gè)查詢的過(guò)程

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

這樣的查詢?cè)O(shè)計(jì)使用了多個(gè) CTE 來(lái)組織查詢過(guò)程,通過(guò)漸進(jìn)過(guò)濾的方式,使得查詢更加高效。

結(jié)論

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

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

你可能感興趣的文章

幣圈快訊

  • 昨日建倉(cāng)20倍BTC多單巨鯨現(xiàn)已盈利近502萬(wàn)美元

    2025-06-10 06:00
    金色財(cái)經(jīng)報(bào)道,據(jù)Hypurrscan數(shù)據(jù),昨日建倉(cāng)20倍BTC多單巨鯨現(xiàn)已盈利近502萬(wàn)美元(5,019,339美元),倉(cāng)位價(jià)值2.19億美元。
  • 美國(guó)眾議院議長(zhǎng)約翰遜:我認(rèn)為特朗普和馬斯克會(huì)和解

    2025-06-10 05:50
    金色財(cái)經(jīng)報(bào)道,美國(guó)眾議院議長(zhǎng)約翰遜表示,我認(rèn)為特朗普和馬斯克會(huì)和解。
  • 美檢方指控Evita創(chuàng)始人IuriiGugnin洗錢5億美元并涉助俄獲取敏感技術(shù)

    2025-06-10 05:50
    金色財(cái)經(jīng)報(bào)道,據(jù)英國(guó)金融時(shí)報(bào),美國(guó)檢方以逃避制裁及違反出口管制罪起訴加密貨幣支付公司Evita的創(chuàng)始人IuriiGugnin,指控其洗錢超5億美元并協(xié)助俄羅斯獲取敏感技術(shù)。布魯克林聯(lián)邦法院公布的法庭文件顯示,Gugnin周一被指控犯有電信和銀行欺詐、洗錢和其他罪行。司法部稱其在紐約被捕并提審。檢方指控Gugnin利用其公司為境外客戶支付敏感電子產(chǎn)品,其中包含受出口管制的美國(guó)設(shè)計(jì)的服務(wù)器,并通過(guò)洗錢為俄羅斯國(guó)家原子能公司(Rosatom)采購(gòu)零部件。
  • 美債收益率普遍跌超3個(gè)基點(diǎn),略微回吐非農(nóng)日的漲幅

    2025-06-10 05:28
    金色財(cái)經(jīng)報(bào)道,周一(6月9日)紐約尾盤,美國(guó)10年期基準(zhǔn)國(guó)債收益率下跌3.18個(gè)基點(diǎn),報(bào)4.4738%,日內(nèi)交投于4.5156%-4.4678%區(qū)間,北京時(shí)間20:56漲穿6月6日發(fā)布美國(guó)非農(nóng)就業(yè)報(bào)告之后出現(xiàn)的當(dāng)天頂部4.5116%。兩年期美債收益率跌3.32個(gè)基點(diǎn),報(bào)4.0034%,日內(nèi)交投于4.0325%-3.9909%區(qū)間,非農(nóng)日也曾漲至4.0407%。
  • ETH突破2600美元

    2025-06-10 05:28
    金色財(cái)經(jīng)報(bào)道,行情顯示,ETH突破2600美元,現(xiàn)報(bào)2610.15美元,24小時(shí)漲幅達(dá)到3.93%,行情波動(dòng)較大,請(qǐng)做好風(fēng)險(xiǎn)控制。
  • 查看更多