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

イーサリアム開発の始め方

JavaScript
ethers.js
ノード
クエリ
Alchemy
初級
エラン・ハルパーン
2020年10月30日
7 分で読めます

Ethereum and Alchemy logos

これはイーサリアム開発を始めるための初心者向けガイドです。このチュートリアルでは、Maker、0x、MyEtherWallet、Dharma、Kyberなど、トップクラスのブロックチェーンアプリの70%から数百万人のユーザーを支える、主要なブロックチェーン開発者プラットフォームであるAlchemy (opens in a new tab)を使用します。Alchemyは、トランザクションの読み書きができるように、イーサリアム・チェーン上のAPIエンドポイントへのアクセスを提供します。

Alchemyへのサインアップから、初めてのWeb3スクリプトの作成までをご案内します!ブロックチェーン開発の経験は必要ありません!

1. 無料のAlchemyアカウントにサインアップする

Alchemyのアカウント作成は簡単です。こちらから無料でサインアップ (opens in a new tab)してください。

2. Alchemyアプリを作成する

イーサリアム・チェーンと通信し、Alchemyの製品を使用するには、リクエストを認証するためのAPIキーが必要です。

ダッシュボードからAPIキーを作成 (opens in a new tab)できます。新しいキーを作成するには、以下に示すように「Create App」に移動します。

ダッシュボードの表示を許可してくれたShapeShift (opens in a new tab)に特別な感謝を捧げます!

Alchemy dashboard

「Create App」の下に詳細を入力して、新しいキーを取得します。ここでは、以前に作成したアプリやチームが作成したアプリも確認できます。任意のアプリの「View Key」をクリックして、既存のキーを取得します。

Create app with Alchemy screenshot

「Apps」にカーソルを合わせてアプリを選択することでも、既存のAPIキーを取得できます。ここで「View Key」をクリックできるほか、「Edit App」をクリックして特定のドメインをホワイトリストに登録したり、いくつかの開発者ツールを確認したり、分析を表示したりできます。

Gif showing a user how to pull API keys

3. コマンドラインからリクエストを行う

JSON-RPCとcurlを使用して、Alchemy経由でイーサリアム・ブロックチェーンと対話します。

手動でのリクエストの場合、POSTリクエストを介してJSON-RPCと対話することをお勧めします。Content-Type: application/jsonヘッダーと、以下のフィールドを持つPOSTの本文としてクエリを渡すだけです。

  • jsonrpc: JSON-RPCのバージョン。現在は2.0のみがサポートされています。
  • method: ETH APIメソッド。APIリファレンスを参照してください。 (opens in a new tab)
  • params: メソッドに渡すパラメータのリスト。
  • id: リクエストのID。レスポンスがどのリクエストに属しているかを追跡できるように、レスポンスによって返されます。

以下は、現在のガス価格を取得するためにコマンドラインから実行できる例です。

curl https://eth-mainnet.alchemyapi.io/v2/demo \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}'

注: https://eth-mainnet.alchemyapi.io/v2/demo (opens in a new tab)を自身のAPIキーhttps://eth-mainnet.alchemyapi.io/v2/**your-api-keyに置き換えてください。

結果:

{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 10000000000000 }

4. Web3クライアントをセットアップする

既存のクライアントがある場合は、現在のノードプロバイダーのURLを、APIキーを含むAlchemyのURLに変更します: “https://eth-mainnet.alchemyapi.io/v2/your-api-key"

注: 以下のスクリプトは、コマンドラインから実行するのではなく、ノードコンテキストで実行するか、ファイルに保存する必要があります。Nodeまたはnpmをまだインストールしていない場合は、こちらの簡単なMac向けセットアップガイド (opens in a new tab)を確認してください。

Alchemyと統合できるWeb3ライブラリ (opens in a new tab)は多数ありますが、Alchemyとシームレスに連携するように構築および構成された、Web3.jsのドロップイン代替品であるAlchemy Web3 (opens in a new tab)を使用することをお勧めします。これにより、自動再試行や堅牢なWebSocketサポートなど、複数の利点が得られます。

AlchemyWeb3.jsをインストールするには、プロジェクトディレクトリに移動して以下を実行します:

Yarnの場合:

yarn add @alch/alchemy-web3

NPMの場合:

npm install @alch/alchemy-web3

Alchemyのノードインフラストラクチャと対話するには、NodeJSで実行するか、JavaScriptファイルに以下を追加します:

const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
const web3 = createAlchemyWeb3(
  "https://eth-mainnet.alchemyapi.io/v2/your-api-key"
)

5. 初めてのWeb3スクリプトを作成する!

それでは、少しWeb3プログラミングを実践するために、イーサリアム・メインネットから最新のブロック番号を出力する簡単なスクリプトを作成しましょう。

1. まだ行っていない場合は、ターミナルで新しいプロジェクトディレクトリを作成し、そこに移動(cd)します:

mkdir web3-example
cd web3-example

2. まだインストールしていない場合は、プロジェクトにAlchemy Web3(または任意のWeb3)の依存関係をインストールします:

npm install @alch/alchemy-web3

3. index.jsという名前のファイルを作成し、以下の内容を追加します:

最終的には、demoを自身のAlchemy HTTP APIキーに置き換える必要があります。

async function main() {
  const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
  const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/v2/demo")
  const blockNumber = await web3.eth.getBlockNumber()
  console.log("The latest block number is " + blockNumber)
}
main()

非同期処理に慣れていない場合は、こちらのMediumの記事 (opens in a new tab)を確認してください。

4. nodeを使用してターミナルで実行します

node index.js

5. これで、コンソールに最新のブロック番号が出力されるはずです!

The latest block number is 11043912

やりました!おめでとうございます!Alchemyを使用して初めてのWeb3スクリプトを作成しました 🎉

次に何をすべきか迷っていますか?Hello Worldスマート・コントラクト・ガイド (opens in a new tab)で初めてのスマート・コントラクトをデプロイしてSolidityプログラミングを実践してみるか、ダッシュボード・デモアプリ (opens in a new tab)でダッシュボードの知識を試してみてください!

Alchemyに無料でサインアップ (opens in a new tab)し、ドキュメント (opens in a new tab)を確認してください。最新ニュースについては、Twitter (opens in a new tab)をフォローしてください。