最後に更新されたページ: 3月 06, 2020

開発者リソース

はじめに

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

先により基礎的なことを学びたい人は こちらをチェックしてください。ethereum.org/ja/learn.

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

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

Solidity イーサリアムで最も人気の言語であり、C++、Python、JavaScript に影響されています。

Vyper Python ベースのセキュリティにフォーカスしたイーサリアムのための言語

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

開発者ツール

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

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

Embark イーサリアム、IPFS、Whisper に対応した開発環境、テスト用フレームワークなどのツール

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

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

Buidler イーサリアムのスマートコントラクト開発者向けタスクランナー

ZeppelinOS アップグレード可能なスマートコントラクトの構築やスマートコントラクトアプリケーションのセキュアなマネジメントフレームワーク

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

統合開発環境 (IDE)

Visual Studio Code イーサリアム公式サポートプロフェッショナルクロスプラットフォーム IDE

Remix 静的解析とテスト用ブロックチェーン VM 搭載のウェブベース IDE

Superblocks ブラウザブロックチェーン VM 搭載、MetaMask 連携トランザクションログなどの機能を持つウェブベース IDE

EthFiddle スマートコントラクトの記述・コンパイル・デバッグが可能なウェブベース IDE

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

フロントエンド JavaScript API

Web3.js イーサリアム JavaScript API

Ethers.js JavaScript と Typescript でのイーサリアムウォレット実装

light.js ライトクライアントのための高レベルリアクティブ JS ライブラリ

Web3-wrapper Web3.js の Typescript 版

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

バックエンド API

Infura イーサリアム API as a Service

セキュリティツール

Slither Python3 で書かれた Solidity 静的解析フレームワーク

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

Manticore スマートコントラクトとバイナリにシンボリック実行を使ったコマンドラインインターフェース

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

形式検証

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

テストツール

Solidity-Coverage Solidity のコードカバレッジツール

hevm スマートコントラクトのユニットテストとデバッグのための EVM 実装

Whiteblock Genesis E2E 開発サンドボックスとブロックチェーン用テストプラットフォーム

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

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

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

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

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

Ropsten Proof of Work ブロックチェーン、test-ether がマイニング可能

Rinkeby Proof of Authority ブロックチェーン、Geth 開発チームによる運営

Goerli クロスクライアント Proof of Authority ブロックチェーン、Goerli コミュニティによる開発・運営

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

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

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

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

Ethnode ローカル環境で実行する Geth または Parity クライアント

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

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

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

DappSys 安全でシンプルでフレキシブルなスマートコントラクトのためのビルディング・ブロック

OpenZeppelin セキュアなスマートコントラクト開発のためのライブラリ

aragonOS アップグレードとパーミッション管理のためのパターン

Smart Contract Weakness Registry

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

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

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

イーサリアム Stackexchange

Solidity Gitter チャットルーム

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

Cryptozombies イーサリアムゲームで学ぶコード

Chainshot ウェブベース dapp コーディングチュートリアル

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

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

Ethernaut Solidity ベースで各レベルのコントラクトをハックする演習

UI/UX

スタンダード

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

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