メインコンテンツへスキップ

このページの翻訳を行う

🌏

このページの新しいバージョンがありますが、現在は英語のみです。最新バージョンの翻訳にご協力ください。

ページを翻訳する
英語を見る

ここにバグはありません!🐛

このページは翻訳されていないため、このページは英語で表示されています。

イーサリアムスタック

最終編集者: , Invalid DateTime
ページ編集

他のソフトウェアスタックと同様に、完全な「イーサリアムスタック」は、目的に応じてプロジェクトごとに異なります。

しかし、イーサリアムのコアコンポーネントを理解すれば、ソフトウェアアプリケーションとイーサリアムブロックチェーンとのやり取りの仕組みのモデルをイメージできます。 イーサリアムスタックのレイヤーについて理解することで、イーサリアムを他のソフトウェアに統合するさまざまな方法を理解することができます。

レベル 1: イーサリアム仮想マシン

イーサリアム仮想マシン (EVM)は、イーサリアムのスマートコントラクトのランタイム環境です。 イーサリアムブロックチェーン上のすべてのスマートコントラクトと状態変更は、トランザクションによって実行されます。 全てのイーサリアムネットワーク上のトランザクションは EVM によって処理されます。

他の仮想マシンと同様に、EVM は実行コードと実行マシン (イーサリアムノード) との間に抽象レベルを作成します。 現在、EVM は世界中に分散された数千のノードで動作しています。

内部では、EVM は一連のオペコードを使用して特定のタスクを実行します。 これらの (140 個のユニークな) オペコードにより、EVM はチューリング完全となっています。つまり、EVM は十分なリソースさえあれば、何でも計算可能です。

dapp デベロッパーは、EVM について詳しく知る必要はありません。イーサリアム上のすべてのアプリケーションをダウンタイムなしで確実に動作させている存在であることを理解していれば十分です。

レベル 2: スマートコントラクト

スマートコントラクト は、イーサリアムブロックチェーン上で実行可能なプログラムです。

スマートコントラクトは、EVM バイトコード (オペコードと呼ばれる低レベルの機械語) にコンパイルされる、特定のプログラミング言語を使用して記述されています。

スマートコントラクトは、オープンソースライブラリとして機能するだけではありません。本質的には、ダウンタイムなしで常時稼動しているオープン API サービスです。 スマートコントラクトは、ユーザーやアプリケーション (dapp) が許可を必要とせずにやり取りできるようにするパブリック機能を提供します。 どんなアプリケーションであっても、デプロイされたスマートコントラクトと統合することで、データフィードの追加などの機能の作成やトークンスワップのサポートが可能になります。 誰でも新しいスマートコントラクトをイーサリアムにデプロイして、アプリケーションのニーズを満たす独自の機能を追加できます。

Dapp デベロッパーは、イーサリアムブロックチェーンに独自の機能を追加したい場合にのみ、スマートコントラクトを記述する必要があります。 実際には、既存のスマートコントラクトとの統合でプロジェクトのほとんどのニーズを達成することができます。 たとえば、ステーブルコインで支払いをサポートしたい場合や、トークンの分散型取引を可能にしたい場合などです。

レベル 3: イーサリアムノード

アプリケーションがイーサリアムブロックチェーンとやり取りするためには、イーサリアムノードに接続する必要があります。 ノードに接続すると、ブロックチェーンデータの読み取りやネットワークへのトランザクションの送信が可能になります。

イーサリアムノードは、ソフトウェアを実行しているコンピュータ、すなわちイーサリアムクライアントです。 クライアントはイーサリアムの実装であり、各ブロック内のすべてのトランザクションを検証し、ネットワークの安全性とデータの正確性を維持します。 イーサリアムノードはイーサリアムブロックチェーンです。 イーサリアムブロックチェーンの状態をまとめて保存し、ブロックチェーンの状態を変更するためのトランザクションについてコンセンサスを得ます。

アプリケーションをイーサリアムノードに (JSON-RPC APIを介して) 接続することで、アプリはブロックチェーンからデータ (ユーザーアカウントの残高など) を読み取ることができ、また新しいトランザクションをネットワークにブロードキャストすることができます (ユーザーアカウント間で ETH を送金したり、スマートコントラクトの機能を実行するなど) 。

レベル 4: イーサリアムクライアント API

多くの便利なライブラリ (イーサリアムのオープンソースコミュニティによって構築および維持されている) を活用すると、アプリケーションがイーサリアムブロックチェーンに接続して通信できるようになります。

ユーザー側のアプリケーションがウェブアプリの場合は、フロントエンドに直接、JavaScript APInpm installできます。 あるいは、PythonまたはJava API を使用して、この機能をサーバー側に実装することも可能です。

これらの API は、イーサリアムスタックにとって必須ではありませんが、イーサリアムノードと直接やり取りする際の複雑さの多くを抽象化してくれます。 また、こうした API では、ユーティリティ関数 (ETH を Gwei に変換する関数など) も提供されています。そのため、デベロッパーは複雑なイーサリアムクライアントの作業に費やす時間を削減でき、自身のアプリケーションの独自機能の開発作業に専念できます。

レベル 5: エンドユーザーアプリケーション

スタックの最上位レベルには、ユーザー側のアプリケーションがあります。 これらは日常的に使用されている標準的なアプリケーションであり、主にウェブアプリとモバイルアプリです。

こうしたアプリケーションのユーザーインターフェースの開発方法も、本質的には変わりません。 多くの場合、ユーザーは使用しているアプリケーションがブロックチェーンを使用して構築されているかどうかを知る必要はありません。

スタックを選ぶ準備ができたら

イーサリアムアプリケーションのためのローカル開発環境のセットアップガイドをご覧ください。

参考文献

  • Web 3.0 アプリケーションのアーキテクチャ - Preethi Kasireddy

役に立つコミュニティリソースをご存知の場合は、 このページを編集して追加してください。

この記事は役に立ちましたか?