ప్రధాన కంటెంట్‌కు దాటవేయి

SQL తో ఇతీరియము పునాది అంశాలు నేర్చుకోండి

SQL
ప్రశ్నించడం
లావాదేవీలు
ప్రారంభ
Paul Apivat
11 మే, 2021
7 నిమిషం పఠనం

చాలా ఇతీరియము ట్యుటోరియల్స్ డెవలపర్‌లను లక్ష్యంగా చేసుకుంటాయి, కానీ క్లయింట్ లేదా నోడ్‌ను రన్ చేయకుండా ఆన్‌చైన్ డేటాను చూడాలనుకునే డేటా విశ్లేషకులు లేదా వ్యక్తుల కోసం విద్యా వనరుల కొరత ఉంది.

Dune Analytics (opens in a new tab) అందించిన ఇంటర్‌ఫేస్ ద్వారా స్ట్రక్చర్డ్ క్వెరీ లాంగ్వేజ్ (SQL)తో ఆన్‌చైన్ డేటాను ప్రశ్నించడం ద్వారా, ఈ ట్యుటోరియల్ లావాదేవీలు, బ్లాక్‌లు మరియు గ్యాస్ వంటి ప్రాథమిక ఇతీరియము భావనలను అర్థం చేసుకోవడానికి పాఠకులకు సహాయపడుతుంది.

ఆన్‌చైన్ డేటా మనకు ఇతీరియమును, నెట్‌వర్క్‌ను మరియు కంప్యూటింగ్ శక్తి కోసం ఒక ఆర్థిక వ్యవస్థగా అర్థం చేసుకోవడంలో సహాయపడుతుంది మరియు నేడు ఇతీరియము ఎదుర్కొంటున్న సవాళ్లను (అంటే, పెరుగుతున్న గ్యాస్ ధరలు) మరియు, మరింత ముఖ్యంగా, స్కేలింగ్ పరిష్కారాల చుట్టూ జరిగే చర్చలను అర్థం చేసుకోవడానికి ఒక ఆధారంగా ఉపయోగపడాలి.

లావాదేవీలు

ఇతీరియములో ఒక వినియోగదారుడి ప్రయాణం, వినియోగదారు-నియంత్రిత ఖాతాను లేదా ETH బ్యాలెన్స్‌తో ఉన్న ఒక సంస్థను ప్రారంభించడంతో మొదలవుతుంది. రెండు రకాల ఖాతాలు ఉన్నాయి - వినియోగదారు-నియంత్రిత లేదా ఒక స్మార్ట్ కాంట్రాక్ట్ (ethereum.org చూడండి).

Etherscan (opens in a new tab) లేదా Blockscout (opens in a new tab) వంటి బ్లాక్ ఎక్స్‌ప్లోరర్‌లో ఏ ఖాతానైనా చూడవచ్చు. బ్లాక్ ఎక్స్‌ప్లోరర్లు ఇతీరియము డేటాకు ఒక పోర్టల్. అవి నిజ-సమయంలో బ్లాక్‌లు, లావాదేవీలు, మైనర్లు, ఖాతాలు మరియు ఇతర ఆన్‌చైన్ కార్యకలాపాలపై డేటాను ప్రదర్శిస్తాయి (ఇక్కడ చూడండి).

అయితే, బాహ్య బ్లాక్ ఎక్స్‌ప్లోరర్లు అందించిన సమాచారాన్ని సరిపోల్చుకోవడానికి ఒక వినియోగదారుడు డేటాను నేరుగా ప్రశ్నించాలని కోరుకోవచ్చు. Dune Analytics (opens in a new tab) SQL గురించి కొంత పరిజ్ఞానం ఉన్న ఎవరికైనా ఈ సామర్థ్యాన్ని అందిస్తుంది.

సూచన కోసం, ఇతీరియము ఫౌండేషన్ (EF) యొక్క స్మార్ట్ కాంట్రాక్ట్ ఖాతాను Blockscout (opens in a new tab) లో చూడవచ్చు.

గమనించవలసిన ఒక విషయం ఏమిటంటే, EF తో సహా అన్ని ఖాతాలు లావాదేవీలను పంపడానికి మరియు స్వీకరించడానికి ఉపయోగించగల పబ్లిక్ చిరునామాను కలిగి ఉంటాయి.

Etherscan లోని ఖాతా బ్యాలెన్స్ సాధారణ లావాదేవీలు మరియు అంతర్గత లావాదేవీలను కలిగి ఉంటుంది. అంతర్గత లావాదేవీలు, పేరు సూచించినప్పటికీ, చైన్ యొక్క స్థితిని మార్చే అసలు లావాదేవీలు కావు. అవి ఒక కాంట్రాక్ట్‌ను అమలు చేయడం ద్వారా ప్రారంభించబడిన విలువ బదిలీలు (మూలం (opens in a new tab)). అంతర్గత లావాదేవీలకు సంతకం లేనందున, అవి బ్లాక్‌చైన్‌లో చేర్చబడ వు మరియు Dune Analytics తో ప్రశ్నించలేము.

అందువల్ల, ఈ ట్యుటోరియల్ సాధారణ లావాదేవీలపై దృష్టి పెడుతుంది. దీనిని ఈ విధంగా ప్రశ్నించవచ్చు:

ఇది Etherscan యొక్క లావాదేవీ పేజీలో అందించిన అదే సమాచారాన్ని ఇస్తుంది. పోలిక కోసం, ఇక్కడ రెండు మూలాలు ఉన్నాయి:

Etherscan

Blockscout లో EF యొక్క కాంట్రాక్ట్ పేజీ. (opens in a new tab)

డూన్ అనలిటిక్స్

డాష్‌బోర్డ్‌ను ఇక్కడ (opens in a new tab) కనుగొనవచ్చు. క్వెరీని చూడటానికి పట్టికపై క్లిక్ చేయండి (పైన కూడా చూడండి).

లావాదేవీలను విడదీయడం

సమర్పించిన లావాదేవీలో అనేక రకాల సమాచారం ఉంటుంది (మూలం):

  • గ్రహీత: స్వీకరించే చిరునామా ("to"గా ప్రశ్నించబడింది)
  • సంతకం: పంపినవారి ప్రైవేట్ కీలు లావాదేవీపై సంతకం చేసినప్పటికీ, SQL తో మనం ప్రశ్నించగలిగేది పంపినవారి పబ్లిక్ చిరునామా ("from").
  • విలువ: ఇది బదిలీ చేయబడిన ETH మొత్తం (ether కాలమ్ చూడండి).
  • డేటా: ఇది హ్యాష్ చేయబడిన ఏకపక్ష డేటా (data కాలమ్ చూడండి)
  • gasLimit – లావాదేవీ ద్వారా వినియోగించబడగల గ్యాస్ యూనిట్ల గరిష్ట మొత్తం. గ్యాస్ యూనిట్లు గణన దశలను సూచిస్తాయి
  • maxPriorityFeePerGas - మైనర్‌కు చిట్కాగా చేర్చడానికి గ్యాస్ యొక్క గరిష్ట మొత్తం
  • maxFeePerGas - లావాదేవీ కోసం చెల్లించడానికి సిద్ధంగా ఉన్న గరిష్ట గ్యాస్ మొత్తం (baseFeePerGas మరియు maxPriorityFeePerGas తో సహా)

ఇతీరియము ఫౌండేషన్ పబ్లిక్ చిరునామాకు లావాదేవీల కోసం మనం ఈ నిర్దిష్ట సమాచారాన్ని ప్రశ్నించవచ్చు:

బ్లాక్‌లు

ప్రతి లావాదేవీ ఎథేరియం వర్చువల్ మషీన్ (EVM) యొక్క స్థితిని మారుస్తుంది (మూలం). ధృవీకరించబడటానికి మరియు ఒక బ్లాక్‌లో చేర్చబడటానికి లావాదేవీలు నెట్‌వర్క్‌కు ప్రసారం చేయబడతాయి. ప్రతి లావాదేవీ ఒక బ్లాక్ నంబర్‌తో అనుబంధించబడి ఉంటుంది. డేటాను చూడటానికి, మనం ఒక నిర్దిష్ట బ్లాక్ నంబర్‌ను ప్రశ్నించవచ్చు: 12396854 (ఈ రచన నాటికి, 11/5/21, ఇతీరియము ఫౌండేషన్ లావాదేవీలలో అత్యంత ఇటీవలి బ్లాక్).

అంతేకాకుండా, మనం తదుపరి రెండు బ్లాక్‌లను ప్రశ్నించినప్పుడు, ప్రతి బ్లాక్‌లో మునుపటి బ్లాక్ యొక్క హ్యాష్ (అంటే, పేరెంట్ హ్యాష్) ఉంటుందని మనం చూడవచ్చు, ఇది బ్లాక్‌చైన్ ఎలా ఏర్పడుతుందో వివరిస్తుంది.

ప్రతి బ్లాక్‌లో దాని పేరెంట్ బ్లాక్‌కు ఒక సూచన ఉంటుంది. ఇది hash మరియు parent_hash కాలమ్‌ల మధ్య కింద చూపబడింది (మూలం):

parent_hash

Dune Analytics లో క్వెరీ (opens in a new tab) ఇక్కడ ఉంది:

మనం సమయం, బ్లాక్ నంబర్, కఠినత, హ్యాష్, పేరెంట్ హ్యాష్, మరియు నాన్స్ లను ప్రశ్నించడం ద్వారా ఒక బ్లాక్‌ను పరిశీలించవచ్చు.

ఈ క్వెరీ కవర్ చేయని ఏకైక విషయం లావాదేవీల జాబితా, దీనికి కింద ఒక ప్రత్యేక క్వెరీ అవసరం, మరియు స్టేట్ రూట్. ఒక పూర్తి లేదా ఆర్కైవల్ నోడ్ అన్ని లావాదేవీలను మరియు స్టేట్ పరివర్తనలను నిల్వ చేస్తుంది, ఇది క్లయింట్లు ఎప్పుడైనా చైన్ యొక్క స్థితిని ప్రశ్నించడానికి అనుమతిస్తుంది. దీనికి పెద్ద నిల్వ స్థలం అవసరం కాబట్టి, మనం చైన్ డేటాను స్టేట్ డేటా నుండి వేరు చేయవచ్చు:

  • చైన్ డేటా (బ్లాక్‌ల జాబితా, లావాదేవీలు)
  • స్టేట్ డేటా (ప్రతి లావాదేలీ యొక్క స్టేట్ పరివర్తన ఫలితం)

స్టేట్ రూట్ రెండవ దానిలోకి వస్తుంది మరియు అది అంతర్లీన డేటా (ఆన్‌చైన్‌లో నిల్వ చేయబడదు), అయితే చైన్ డేటా స్పష్టంగా మరియు చైన్‌పైనే నిల్వ చేయబడుతుంది (మూలం (opens in a new tab)).

ఈ ట్యుటోరియల్ కోసం, మనం Dune Analytics ద్వారా SQL తో ప్రశ్నించ_గల_ ఆన్‌చైన్ డేటాపై దృష్టి పెడతాము.

పైన చెప్పినట్లుగా, ప్రతి బ్లాక్‌లో లావాదేవీల జాబితా ఉంటుంది, మనం ఒక నిర్దిష్ట బ్లాక్ కోసం ఫిల్టర్ చేయడం ద్వారా దీనిని ప్రశ్నించవచ్చు. మనం అత్యంత ఇటీవలి బ్లాక్, 12396854 ని ప్రయత్నిద్దాం:

SELECT * FROM ethereum."transactions"
WHERE block_number = 12396854
ORDER BY block_time DESC`

Dune లో SQL అవుట్‌పుట్ ఇక్కడ ఉంది:

చైన్‌కు జోడించబడిన ఈ ఒక్క బ్లాక్ ఎథేరియం వర్చువల్ మషీన్ (EVM) యొక్క స్థితిని మారుస్తుంది. డజన్ల కొద్దీ, కొన్నిసార్లు వందల కొద్దీ లావాదేవీలు ఒకేసారి ధృవీకరించబడతాయి. ఈ నిర్దిష్ట సందర్భంలో, 222 లావాదేవీలు చేర్చబడ్డాయి.

వాస్తవానికి ఎన్ని విజయవంతమయ్యాయో చూడటానికి, విజయవంతమైన లావాదేవీలను లెక్కించడానికి మనం మరొక ఫిల్టర్‌ను జోడిస్తాము:

WITH temp_table AS (
    SELECT * FROM ethereum."transactions"
    WHERE block_number = 12396854 AND success = true
    ORDER BY block_time DESC
)
SELECT
    COUNT(success) AS num_successful_txn
FROM temp_table

బ్లాక్ 12396854 కోసం, మొత్తం 222 లావాదేవీలలో, 204 విజయవంతంగా ధృవీకరించబడ్డాయి:

లావాదేవీల అభ్యర్థనలు సెకనుకు డజన్ల కొద్దీ సార్లు జరుగుతాయి, కానీ బ్లాక్‌లు సుమారుగా ప్రతి 15 సెకన్లకు ఒకసారి కమిట్ చేయబడతాయి (మూలం).

సుమారుగా ప్రతి 15 సెకన్లకు ఒక బ్లాక్ ఉత్పత్తి అవుతుందని చూడటానికి, మనం ఒక రోజులోని సెకన్ల సంఖ్యను (86400) 15తో భాగించి రోజుకు సగటు బ్లాక్‌ల అంచనా సంఖ్యను (~ 5760) పొందవచ్చు.

రోజుకు ఉత్పత్తి చేయబడిన ఇతీరియము బ్లాక్‌ల కోసం చార్ట్ (2016 - ప్రస్తుతం) ఇదిగో:

ఈ కాలంలో రోజుకు ఉత్పత్తి చేయబడిన బ్లాక్‌ల సగటు సంఖ్య ~5,874:

క్వెరీలు ఇవి:

2016 నుండి రోజుకు ఉత్పత్తి చేయబడిన బ్లాక్‌ల సగటు సంఖ్య ఆ సంఖ్య కంటే కొంచెం ఎక్కువగా 5,874. ప్రత్యామ్నాయంగా, 86400 సెకన్లను 5874 సగటు బ్లాక్‌లతో భాగిస్తే 14.7 సెకన్లు లేదా సుమారుగా ప్రతి 15 సెకన్లకు ఒక బ్లాక్ వస్తుంది.

గ్యాస్

బ్లాక్‌లు పరిమాణంలో పరిమితంగా ఉంటాయి. గరిష్ట బ్లాక్ పరిమాణం డైనమిక్‌గా ఉంటుంది మరియు నెట్‌వర్క్ డిమాండ్ ప్రకారం 12,500,000 మరియు 25,000,000 యూనిట్ల మధ్య మారుతుంది. డిస్క్ స్థలం మరియు వేగం అవసరాల పరంగా పూర్తి నోడ్‌లపై భారం పడకుండా, ఏకపక్షంగా పెద్ద బ్లాక్ పరిమాణాలను నివారించడానికి పరిమితులు అవసరం (మూలం).

బ్లాక్ గ్యాస్ పరిమితిని సంభావితం చేయడానికి ఒక మార్గం ఏమిటంటే, లావాదేవీలను బ్యాచ్ చేయడానికి అందుబాటులో ఉన్న బ్లాక్ స్పేస్ యొక్క సరఫరాగా దానిని భావించడం. బ్లాక్ గ్యాస్ పరిమితిని 2016 నుండి నేటి వరకు ప్రశ్నించి, దృశ్యమానం చేయవచ్చు:

SELECT
    DATE_TRUNC('day', time) AS dt,
    AVG(gas_limit) AS avg_block_gas_limit
FROM ethereum."blocks"
GROUP BY dt
OFFSET 1

అప్పుడు ఇతీరియము చైన్‌లో చేసిన కంప్యూటింగ్ కోసం చెల్లించడానికి (అంటే, లావాదేవీని పంపడం, స్మార్ట్ కాంట్రాక్ట్‌ను కాల్ చేయడం, ఒక NFT ని మింట్ చేయడం) రోజూ ఉపయోగించే వాస్తవ గ్యాస్ ఉంది. ఇది అందుబాటులో ఉన్న ఇతీరియము బ్లాక్ స్పేస్ కోసం డిమాండ్:

SELECT
    DATE_TRUNC('day', time) AS dt,
    AVG(gas_used) AS avg_block_gas_used
FROM ethereum."blocks"
GROUP BY dt
OFFSET 1

డిమాండ్ మరియు సరఫరా ఎలా సరిపోలుస్తాయో చూడటానికి మనం ఈ రెండు చార్ట్‌లను కూడా కలిపి చూడవచ్చు:

gas_demand_supply

అందువల్ల, అందుబాటులో ఉన్న సరఫరాను బట్టి మనం గ్యాస్ ధరలను ఇతీరియము బ్లాక్ స్పేస్ కోసం డిమాండ్ యొక్క ఫంక్షన్‌గా అర్థం చేసుకోవచ్చు.

చివరగా, మనం ఇతీరియము చైన్ కోసం సగటు రోజువారీ గ్యాస్ ధరలను ప్రశ్నించాలనుకోవచ్చు, అయితే, అలా చేయడం వలన చాలా ఎక్కువ క్వెరీ సమయం పడుతుంది, కాబట్టి మనం మన క్వెరీని ఇతీరియము ఫౌండేషన్ ద్వారా ప్రతి లావాదేవీకి చెల్లించిన సగటు గ్యాస్ మొత్తానికి ఫిల్టర్ చేస్తాము.

సంవత్సరాలుగా ఇతీరియము ఫౌండేషన్ చిరునామాకు చేసిన అన్ని లావాదేవీలకు చెల్లించిన గ్యాస్ ధరలను మనం చూడవచ్చు. క్వెరీ ఇక్కడ ఉంది:

SELECT
    block_time,
    gas_price / 1e9 AS gas_price_gwei,
    value / 1e18 AS eth_sent
FROM ethereum."transactions"
WHERE "to" = '\xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
ORDER BY block_time DESC

సారాంశం

ఈ ట్యుటోరియల్‌తో, ఆన్‌చైన్ డేటాను ప్రశ్నించి, దానిపై ఒక అవగాహన పొందడం ద్వారా మనం ప్రాథమిక ఇతీరియము భావనలను మరియు ఇతీరియము బ్లాక్‌చైన్ ఎలా పనిచేస్తుందో అర్థం చేసుకుంటాము.

ఈ ట్యుటోరియల్‌లో ఉపయోగించిన మొత్తం కోడ్‌ను కలిగి ఉన్న డాష్‌బోర్డ్‌ను ఇక్కడ (opens in a new tab) కనుగొనవచ్చు.

web3ని అన్వేషించడానికి డేటాను మరింతగా ఉపయోగించడం కోసం Twitterలో నన్ను కనుగొనండి (opens in a new tab).

పేజీ చివరి నవీకరణ: 3 ఏప్రిల్, 2026

ఈ ట్యుటోరియల్ ఉపయోగకరంగా ఉందా?