ページの最終更新日時: September 26, 2020

デベロッパー向けリソース

はじめに

イーサリアムの開発について知りたければ、このページは最適な場所です。 イーサリアムコミュニティによって書かれた以下のガイドを通してイーサリアムのスタックの基礎に触れ、おそらく他の馴染みあるアプリケーション開発とは異なるコアコンセプトを知りましょう。

すぐにでもコーディングを始めたいですか? ここで開発を始めましょう

先により基礎的なことを学びたい人は 学習リソースをチェックしてください。

役に立つリソース

スマートコントラクト言語

イーサリアムバーチャルマシン (EVM) で動作するあらゆるプログラムは一般的に「スマートコントラクト」と呼ばれます。 スマートコントラクトを記述するための言語として最も人気なのは SolidityVyperです。その他の言語は現在開発中です。

Solidity - C++、Python、JavaScript にインスパイアされた、イーサリアムで最もポピュラーな言語。

Vyper - Python をベースにしたイーサリアム用のセキュリティ重視の言語。

その他の選択肢をお探しですか?

言語別のリソース

開発者が好みのプログラミング言語でイーサリアムについて学ぶための言語別のランディングページを構築しています。

開発者ツール

開発者によるアプリケーションの開発、テスト、デプロイを支援するツールがイーサリアムにはすでに多くあり、今も増え続けています。 以下は最も人気のあるツールです。 より深く知りたければこちらの全リストを参照してください。

フレームワーク

Truffle - 開発環境、テストフレームワーク、ビルドパイプラインなどのツール群。

Embark - イーサリアム、IPFS、Whisper と統合された開発環境、テストフレームワークなどのツール群。

Waffle - 高度なスマートコントラクトの開発とテストのためのフレームワーク (ethers.js ベース)。

Etherlime - Ethers.js ベースの dapp 開発 (Solidity & Vyper)、デプロイ、デバッグ、テストなどのためのフレームワーク。

他のツール

Ethereum Grid - イーサリアムクライアントやツールをダウンロード、設定、実行するためのデスクトップアプリケーション。

Buidler - イーサリアムスマートコントラクト開発者のためのタスクランナー。

OpenZeppelin SDK - 究極のスマートコントラクトツールキット。スマートコントラクトの開発、コンパイル、アップグレード、デプロイ、およびインタラクションを支援するツール群。.

The Graph - イーサリアムと IPFS のデータをインデックス化し、GraphQL を使用してクエリを作成するためのプロトコル。

Tenderly - エラートラッキング、アラート、パフォーマンス測定、詳細なコントラクト分析ができる、スマートコントラクトを簡単に監視するためのプラットフォーム。

Python Tooling - Python によるイーサリアムインタラクションのための各種ライブラリ。

Brownie - Python ベースの開発環境とテストフレームワーク。

web3j - イーサリアム用の Java/Android/Kotlin/Scala の統合ライブラリ。

One Click Dapp - 迅速な開発とテストのために、ABI から直接フロントエンドを生成する。

その他の選択肢をお探しですか?

統合開発環境 (IDE)

Ethereum Studio - スマートコントラクトを試したい新規開発者に最適な Web ベースの IDE です。 Ethereum Studio は、複数のテンプレート、MetaMask の統合、トランザクションロガー、ビルトインブラウザの Ethereum Virtual Machine (EVM) を備えており、イーサリアム上での開発を可能な限り早く始めれます。

Visual Studio Code - イーサリアムを公式にサポートするプロフェッショナルなクロスプラットフォーム IDE。

Remix - 静的分析とテスト用のブロックチェーンバーチャルマシンを備えた Web ベースの IDE。

EthFiddle - スマートコントラクトの書き込み、コンパイル、デバッグができる Web ベースの IDE。

その他の選択肢をお探しですか?

フロントエンドの JavaScript API

Web3.js - イーサリアムの JavaScript API。

Ethers.js - JavaScript と TypeScript による完全なイーサリアムウォレットの実装とユーティリティ。

light.js - ライトクライアントに最適化されたハイレベルのリアクティブ JS ライブラリ。

Web3-wrapper - Web3.js に代わる Typescript。

その他の選択肢をお探しですか?

バックエンド API

Infura - サービスとしてのイーサリアム API。

Cloudflare のイーサリアムゲートウェイ。

Nodesmith - イーサリアムのメインネットとテストネットへの JSON-RPC API アクセス。

Chainstack - サービスとしての共有および専用のイーサリアムノード。

ストレージ

IPFS - InterPlanetary File System は、イーサリアムの分散型ストレージとファイル参照システムです。

Swarm - イーサリアム web3 スタックのための分散型ストレージプラットフォームとコンテンツ配信サービス。

OrbitDB - IPFS 上の分散型ピアツーピアデータベース。

セキュリティツール

スマートコントラクトセキュリティ

Slither - Python 3 で書かれた Solidity 静的分析フレームワーク。

MythX - イーサリアムスマートコントラクトのためのセキュリティ分析 API。

Mythril - EVM バイトコードのためのセキュリティ分析ツール。

SmartContract.Codes - 検証済みの Solidity ソースコードの検索エンジン。

Manticore - スマートコントラクトやバイナリ上でシンボリック実行ツールを使えるコマンドラインインターフェース。

Securify - イーサリアムスマートコントラクトのためのセキュリティスキャナ。

ERC20 Verifier - コントラクトが ERC20 規格に適合しているかどうかを確認する検証ツール。

形式検証

形式検証について

その他の選択肢をお探しですか?

テストツール

Solidity-Coverage - Solidity コードのカバレッジツールの代替版。

hevm - ユニットテストとスマートコントラクトのデバッグに特化して作られた EVM の実装。

Whiteblock Genesis - ブロックチェーンのためのエンドツーエンドの開発サンドボックスとテストプラットフォーム。

その他の選択肢をお探しですか?

ブロックエクスプローラー

ブロックエクスプローラーはイーサリアムブロックチェーン (およびテストネット) をブラウズできます。つまり特定のトランザクションやブロック、コントラクトなどのオンチェーンアクティビティを監視できるサービスです。

テストネットとフォーセット

イーサリアムコミュニティは複数のテストネットを運営しています。 これは開発者がイーサリアムのメインネットにアプリケーションをデプロイする前に別の環境で行うアプリケーションのテストのために使われています。

Ropsten - Proof of Work ブロックチェーン、テストイーサをマイニングできます。

Rinkeby - Proof of Authority ブロックチェーン、Geth 開発チームによって維持されています。

Goerli - クロスクライアントの Proof of Authority ブロックチェーン、Goerli コミュニティによって構築・管理されています。

クライアントと、ノードの運用

イーサリアムネットワークは互換性のあるクライアントソフトウェアが実行されている多くのノードによって構成されています。 ノードの大多数はGeth または Parityというクライアントを使用しており必要に応じて設定を行うことができます。

クライアント

Geth - Go で書かれたイーサリアムクライアント。

Parity - Rust で書かれたイーサリアムクライアント。

Pantheon - Java で書かれたイーサリアムクライアント。

Nethermind - C# .NET Core で書かれたイーサリアムクライアント。

自分のノードを実行中

Ethnode - ローカルでの開発のためにイーサリアムノード (Geth または Parity) を実行します。

イーサリアムノードのリソース

その他の選択肢をお探しですか?

ベストプラクティスとパターン、アンチパターン

スマートコントラクト

DappSys - スマートコントラクトのための安全でシンプルで柔軟なビルディングブロック。

OpenZeppelin Contracts - 安全なスマートコントラクト開発のためのライブラリ。

aragonOS - アップグレードとパーミッションコントロールのパターン。

Smart Contract Weakness Registry

セキュリティ

スマートコントラクトセキュリティのベストプラクティスガイド

Smart Contract Security Verification Standard (SCSVS)

その他の選択肢をお探しですか?

開発者サポートとトレーニング

一般的な学習

イーサリアム Stackexchange

ConsenSys Academy - セルフペースで通年開講されているエンドツーエンドのイーサリアム開発者向けコース。

Solidity Gitter チャットルーム

全てのイーサリアム Gitter チャットルーム

Chainshot - Web ベースの dapp コーディングチュートリアル。

Blockgeeks - ブロックチェーン技術に関するオンラインコース。

DappUniversity - イーサリアムブロックチェーン上での分散型アプリケーションの構築を学ぶ。

B9lab Academy - 最も古いプロ向けイーサリアム dapp 開発者コース、および監査人と QA 向けの学習リソースを提供。 これは次を含みます: メンタリングとコードレビュー。

ゲームベースの学習

Cryptozombies - イーサリアムでゲームのコーディングを学ぶ。

Ethernaut - 各レベルにハッキングするコントラクトが用意されている Solidity ベースのウォーゲーム。

Capture the Ether - イーサリアムのスマートコントラクトセキュリティのゲーム。

UI/UX デザイン

Rimble UI - 分散型アプリケーションのためのコンポーネントと設計標準。

スタンダード

イーサリアムコミュニティはこれまで数多くのスタンダードを採用し、開発者をサポートしてきました。 基本的にスタンダードはEthereum Improvement Proposals (EIPs) として、コミュニティによる議論のプロセスを経て導入されます。

スマートコントラクトの標準フォーマットなど、アプリケーションレベルのスタンダードに関わる EIP はEthereum Requests for Comment (ERC) として導入されます。 ERC にはイーサリアムエコシステム全体で広く使われているような必要不可欠なものも多くあります。