最後に更新されたページ: 10月 30, 2019
↳ 開発者リソース
↳ はじめに
イーサリアムの開発について知りたければ、このページは最適な場所です。 イーサリアムコミュニティによって書かれた以下のガイドを通してイーサリアムのスタックの基礎に触れ、おそらく他の馴染みあるアプリケーション開発とは異なるコアコンセプトを知りましょう。
先により基礎的なことを学びたい人は こちらをチェックしてください。ethereum.org/ja/learn.
- Getting up to speed on Ethereum 2017年8月7日 - Matt Condon
- Ethereum In Depth, Part 1 2018年5月11日 - Facu Spagnuolo
- Ethereum In Depth, Part 2 2018年7月24日 - Facu Spagnuolo
- Ethereum Development Walkthrough, Parts 1-5 2018年1月14日 - dev_zl
- Ethereum 101, Parts 1-7 2019年2月13日 - Wil Barnes
- Full Stack Hello World Voting Ethereum Dapp Tutorial 2017年1月18日 - Mahesh Murthy
- Mastering Ethereum - A comprehensive textbook available for free online 2018年12月1日 - Andreas Antonopoulos & Gavin Wood
- Ethereum Developer Portal - Everything you need to get started building on Ethereum 頻繁にアップデートあり - ConsenSys
- Deconstructing a Solidity Contract 2018年8月13日 - Alejandro Santander & Leo Arias
- Full Stack Dapp Tutorial Series 頻繁にアップデートあり - Joshua Cassidy
↳ スマートコントラクト言語
イーサリアムバーチャルマシン (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 イーサリアムスマートコントラクトのためのセキュリティスキャナー
↳ 形式検証
- How formal verification of smart-contacts works 2018年7月20日 - Brian Marick
- How Formal Verification Can Ensure Flawless Smart Contracts 2018年1月29日 - Bernard Mueller
↳ その他の選択肢をお探しですか?
↳ テストツール
↳ 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クライアント
↳ イーサリアムノードのリソース
- ノード設定用チートシート 2019年1月5日 - Afri Schoeden
↳ その他の選択肢をお探しですか?
↳ ベストプラクティスとパターン、アンチパターン
↳ DappSys 安全でシンプルでフレキシブルなスマートコントラクトのためのビルディング・ブロック
↳ OpenZeppelin セキュアなスマートコントラクト開発のためのライブラリ
↳ aragonOS アップグレードとパーミッション管理のためのパターン
↳ Smart Contract Weakness Registry
↳ スマートコントラクトセキュリティのベストプラクティスガイド
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Aggregated collection of security recommendations and best practices
↳ その他の選択肢をお探しですか?
↳ 開発者サポートとトレーニング
↳ イーサリアム Stackexchange
↳ Solidity Gitter チャットルーム
↳ 全てのイーサリアム Gitter チャットルーム
↳ Cryptozombies イーサリアムゲームで学ぶコード
↳ Chainshot ウェブベースdappコーディングチュートリアル
↳ Blockgeeks ブロックチェーン技術に関するオンラインコース
↳ DappUniversity イーサリアムブロックチェーンでの分散型アプリケーションの構築を学ぶ
↳ Ethernaut Solidityベースで各レベルのコントラクトをハックする演習
↳ UI/UX
- Challenge of UX in Ethereum 2018年6月25日 - Anna Rose
- Designing for blockchain: what’s different and what’s at stake 2018年3月22日 - Sarah Baker Mills
↳ スタンダード
イーサリアムコミュニティはこれまで数多くのスタンダードを採択し、開発者をサポートしてきました。 基本的にスタンダードはEthereum Improvement Proposals (EIPs) として、コミュニティによる議論のプロセスを経て導入されます。
- EIPリスト
- EIP GitHubレポジトリ
- EIPディスカッションボード
- イーサリアムのガバナンス概要 2019年3月31日 - Boris Mann
- コア開発者ミーティングのプレイリスト (YouTubeプレイリスト)
スマートコントラクトの標準フォーマットなど、アプリケーションレベルのスタンダードに関わるEIPはEthereum Requests for Comment (ERC) として導入されます。 ERCにはイーサリアムエコシステム全体で広く使われているような必要不可欠なものも多くあります。