最後に更新されたページ: 10月 30, 2019

開発者リソース

はじめに

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

先により基礎的なことを学びたい人は こちらをチェックしてください。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にはイーサリアムエコシステム全体で広く使われているような必要不可欠なものも多くあります。