ゼロから学ぶブロックチェーンの仕組みとオンチェーンデータ分析

本連載では、ブロックチェーンの基本的な仕組みを解説しながら、オンチェーンデータを分析するための基本的な手法について、全8回で紹介します。

第6回の今回は、引き続きオンチェーンデータのオンライン分析サービスのDune(https://dune.com/)を用いて、Ethereumを対象としたデータ分析の演習を始めていきます。

Raw Blockchain Dataの確認

Duneの提供するデータテーブルには、第5回の記事でもご紹介した通り、Decoded projectsやSpellsなどの分析のために加工された便利なデータテーブルが揃っています。しかし今回は、ブロックチェーンの基本的なデータ構造を理解するためにも、ブロックチェーンの生のデータに近いRaw Blockchain Dataを中心に取り扱ってみましょう。

EVM Raw Table Data

Duneでは、BitcoinやEthereumをはじめ、Polygon、Optimism、BNB Chainなど、さまざまなブロックチェーンのデータを提供しています。このうち、BitcoinやSolanaなどの少数の例外を除き、ほとんどのブロックチェーンはEthereum Virtual Machine(EVM)と呼ばれる仮想マシンを利用しています。

Ethereumのクライアントプログラムにはいくつかの実装が存在しますが、すべてのクライアントが同じEVMの仕様に準拠することで、実装の違いを気にすることなく同じスマートコントラクトを実行して同じ結果を得ることができます。また、Ethereum以外のブロックチェーンであっても、EVMの仕様に準拠しているチェーンであれば、Ethereum用に実装されたスマートコントラクトを動かすことができます。

スマートコントラクトを実行可能なブロックチェーンは数多く存在しますが、その中でもEVMと互換性のあるチェーンがデファクトスタンダードとなっているため、まずはEthereum(EVM)のデータ構造に慣れておくと汎用性が高まります。

BlocksとTransactions

第3回の記事でもご紹介したとおり、多くのブロックチェーンはブロックとトランザクションというデータ構造を持っています。

Ethereumにおけるブロックとトランザクションの生データは、Dune上ではそれぞれ「ethereum.blocks」「ethereum.transactions」というテーブル名で参照できます。

下記のコード1.をDuneのクエリエディタに記載し、RunをクリックしてEthereumのブロックデータを10件取得してみましょう。FROM句に欲しいデータのテーブル名を指定し、SELECT句に欲しいカラム名を列挙します。すべてのカラムを取得したい場合は「*」を利用できます。また、すべてのデータを取得するのは非常に時間がかかる可能性があるため、LIMIT句で取得するデータの件数を指定する癖をつけておくと安心です。

コード1. Ethereumのブロックデータを10件取得するクエリ

SELECT *FROM ethereum.blocksLIMIT 10

続きを読むにはログインが必要です。
ご利用は無料ですので、ぜひご登録ください。

SHARE

  • facebook
  • twitter

SQRIPTER

加嵜 長門(かさき ながと)

記事一覧

合同会社DMM.com Web3事業部テックグループリーダー・DMM.comグループ株式会社DM2C Studio取締役(CTO)。ビッグデータ活用基盤の構築に携わり、SparkやSQL on Hadoopを用いた分散処理技術やブロックチェーン技術の研究開発、事業提案などを担当。共著に『試して学ぶスマートコントラクト開発』『ブロックチェーンアプリケーション開発の教科書』『ビッグデータ分析・活用のためのSQLレシピ』(マイナビ出版)、『詳解Apache Spark』(技術評論社)。

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST