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

↳ 開発者リソース

↳ はじめに

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

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

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

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

↳ 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 にはイーサリアムエコシステム全体で広く使われているような必要不可欠なものも多くあります。