推奨リソース

MonadはEVMバイトコードと完全に互換性があり、上海フォークの時点でサポートされているすべてのオペコードとプリコンパイルを備えています。Monadは、標準のEthereum JSON-RPCインターフェイスも保持します。

そのため、イーサリアムメインネットの開発リソースのほとんどはMonadでの開発に適用されます。

このページでは、イーサリアム用の分散アプリの構築を開始するための最小限のリソースセットを提案します。子ページには追加の詳細やオプションが表示されます。

Solidityはイーサリアムスマートコントラクトで最も人気のある言語であるため、このページのリソースはSolidityに焦点を当てています。代わりに、VyperまたはHuffのリソースを参照してください。スマートコントラクトは構成可能であるため、元々1つの言語で作成されたコントラクトは引き続き別の言語のコントラクトを呼び出すことができることに注意してください。

IDE

  • RemixはインタラクティブなSolidity IDEです。これは、追加のツールをインストールすることなく、Solidityスマートコントラクトのコーディングとコンパイルを開始する最も簡単かつ迅速な方法です。

基本的な堅牢性

  • CryptoZombiesは、EVM上でdAppを構築するための優れたエンドツーエンドの入門書です。これまでコーディングをしたことがない人から、ブロックチェーン開発を検討している他の分野の経験豊富な開発者まで、あらゆる人にリソースとレッスンを提供します。

  • Solidity by Exampleでは、簡単な例を通じて概念を段階的に紹介します。すでに他の言語の基本的な経験がある開発者に最適です。

中間の固さ

  • Solidity Languageの公式ドキュメントは、EVM環境を中心としたスマート コントラクトとブロックチェーンの基本をエンドツーエンドで説明しています。Solidity Languageのドキュメントに加えて、EVMへのデプロイメント用にコードをコンパイルする基本と、EVMへのスマートコントラクトのデプロイメントに関連する基本コンポーネントについても説明します。

  • Solidity Patternsリポジトリは、コードテンプレートのライブラリとその使用法の説明を提供します。

  • Uniswap V2コントラクトは、プロフェッショナルでありながら理解しやすいスマートコントラクトであり、運用中のSolidity dAppの概要を提供します。契約のガイド付きウォークスルーはここにあります。

  • Cookbook.devは、ライブ編集、ワンクリックデプロイ、コードに関する質問に役立つAIチャット統合を備えたインタラクティブなサンプルテンプレートコントラクトのセットを提供します。

  • OpenZeppelinは、ERC20、ERC712、ERC1155 などの一般的なEthereumトークン展開用のカスタマイズ可能なテンプレートコントラクトライブラリを提供します。これらはガス最適化されていないことに注意してください。

高度な堅牢性

  • SolmateリポジトリSoladyリポジトリは、SolidityまたはYulを利用してガス最適化されたコントラクトを提供します。

  • YulはSolidityの中間言語であり、一般にEVMのインラインアセンブリと考えることができます。これは完全に純粋なアセンブリではなく、制御フロー構造を提供し、スタックの内部動作を抽象化しながら、生のメモリバックエンドを開発者に公開します。Yulは、高性能のガス最適化EVMコードを構築するためにEVMの生メモリバックエンドを利用する必要がある開発者を対象としています。

  • Huffは、EVMアセンブリとして最も正確に説明されます。Yulとは異なり、Huffは制御フロー構造を提供したり、プログラムスタックの内部動作を抽象化したりしません。Huffを利用できるのはパフォーマンス重視の最上位のアプリケーションだけですが、HuffはEVMが最下位レベルの命令をどのように解釈するかを学ぶための優れた教育ツールです。

ローカルノード

開発者は、パラメータを変更して1ノードのEthereumネットワークを実行して、ブロックチェーンとの対話をテストできると便利だと考えることがよくあります。

  • Anvilは、Foundryツールキットにパッケージ化されたローカルEthereumノードです。

  • Hardhat Networkは、Hardhatツールキットにパッケージ化されたローカルEthereumノードです。

インストールは、次のセクションで説明する各ツールキットのインストールの一部として行うのが最も簡単です。

ツールキット

開発者は、外部の依存関係(つまりパッケージ管理)を整理し、単体テストと統合テストを整理し、(ローカルノード、テストネット、メインネットに対して)導入手順を定義し、ガスコストを記録する、より広範なフレームワークのコンテキストでプロジェクトを構築することが役立つと感じることがよくあります。 、など。

Solidity開発用の最も人気のある2つのツールキットを次に示します。

  • Foundryは、開発とテストの両方のためのSolidityフレームワークです。Foundryは依存関係の管理、プロジェクトのコンパイル、テストの実行、デプロイを行い、コマンドラインやSolidityスクリプト経由でチェーンを操作できるようにします。Foundryユーザーは通常、スマートコントラクトとテストをSolidity言語で作成します。

  • Hardhatは、JavaScriptテスト フレームワークと組み合わせたSolidity開発フレームワークです。Foundryと同様の機能が可能であり、Foundry以前はEVM開発者にとって主要なツールチェーンでした。

Ethereum RPC APIとの対話

dappのフロントエンドは通常、JavaScriptまたはPythonを使用して読み取りまたは書き込みクエリをRPCノードに送信します。Web開発者はブロックチェーンをバックエンドサーバーとほぼ同等にみなすことができるため、このコードは通常「クライアント側」と呼ばれます。

いくつかのライブラリは、RPCノードにクエリまたはトランザクションを送信するための標準メソッドを提供します。

  • Python :

  • JavaScript :

    • ethers.js : この目的を達成するために、Web3.jsWeb3.py、つまり Java Script ライブラリと Python ライブラリは、Web 開発者にとってブロックチェーンとの対話をより直観的に行うために開発されました。

フロントエンドを作成する簡単な例を次に示します : create-eth-app

テストネット

Monad Testnetは今後数か月以内に開発者向けに提供される予定ですが、バイトコードおよびRPCがEVMと互換性があるため、Monadへのデプロイを希望する開発者はEthereumのTestnetを予備的に使用できます。

さらに詳しく知るには

子ページには追加のリソースが追加されます。

Last updated