JavaScriptデベロッパーのためのイーサリアム
最終編集者: @keinstn(opens in a new tab), 2023年8月15日
JavaScriptはイーサリアムのエコシステムで最も人気のある言語の1つです。 実際、できるだけ多くのイーサリアムの機能をJavaScriptで実装することに注力している専門チーム(opens in a new tab)も存在しています。
スタックのすべてのレベルで、JavaScript (または近似の言語) で記述できる機会があります。
イーサリアムとのやりとり
JavaScript APIライブラリ
JavaScriptでブロックチェーンへのクエリやトランザクションの送信などを行うための最も便利な方法は、JavaScript APIライブラリを使用することです。 このライブラリのAPIを使用すると、デベロッパーはイーサリアムネットワークのノードと簡単にやり取りできます。
このライブラリにより、イーサリアム上のスマートコントラクトとやり取りできるようになります。そのため、JavaScriptのみで既存のコントラクトとやり取りできるdappを構築することが可能になります。
以下をご参照ください。
- Web3.js(opens in a new tab)
- Ethers.js(opens in a new tab) - JavaScriptとTypeScriptでの完全なイーサリアムウォレットの実装とユーティリティを含む
- viem(opens in a new tab) – イーサリアム用のTypeScriptインターフェイスで、イーサリアムとやり取りする低レベルのステートレスプリミティブを提供します。
スマートコントラクト
独自のスマートコントラクトを作成したいと考えているJavaScriptデベロッパーは、Solidity(opens in a new tab)について熟知することをお勧めします。 これは最も人気のあるスマートコントラクト言語であり、構文的にはJavaScriptに似ているため、比較的簡単に習得できる可能性があります。
詳細については、スマートコントラクトをご確認ください。
プロトコルの理解
イーサリアム仮想マシン
イーサリアム仮想マシンのJavaScript実装を利用できます。 これは、最新のフォークルールをサポートしています。 フォークルールとは、計画されたアップグレードの結果としてEVMに加えられた変更のことです。
イーサリアム仮想マシンは、さまざまなJavaScriptパッケージに分かれています。これらのパッケージを調べることで、以下の項目について理解を深めることができます。
- アカウント
- ブロック
- ブロックチェーン自体
- トランザクション
- その他
これにより、アカウントのデータ構造などについて理解できるようになります。
コードを読みたい場合は、イーサリアムドキュメントを通読するよりも、上記のJavaScriptのほうが役立ちます。
モノリポを調べる
ethereumjs
(opens in a new tab)
ノードとクライアント
Ethereumjsクライアントは活発に開発されており、JavaScriptで書かれたイーサリアムクライアントの仕組みを詳しく学ぶことができます。
以前は、スタンドアロンのrepository
(opens in a new tab)に格納されていましたが、後にパッケージとしてEthereumVMモノレポにマージされました。
クライアントを調べる
ethereumjs
(opens in a new tab)
他のプロジェクト
イーサリアムのJavaScript界隈では、その他にも、以下を含めた多くのプロジェクトが進められています。
- ウォレットユーティリティのライブラリ
- イーサリアムのキーを生成、インポート、エクスポートするためのツール
merkle-patricia-tree
の実装 - イーサリアムの技術仕様書で概説されているデータ構造
EthereumJSリポジトリ(opens in a new tab)で、最も興味があるものについて詳細に調査してみてください。
参考文献
役に立ったコミュニティリソースがあれば、 ぜひこのページに追加してください。