Edited at

2018年のEthereum開発者が知るべきツールのリスト


これは何?


Ethereum Developer Tools List

Ethereum開発で利用可能なツール、コンポーネント、パターン、プラットフォームのガイドです。


新規の開発者はこちらから



  • Solidity - もっともポピュラーなスマートコントラクト用言語


  • Truffle - もっともポピュラーなスマートコントラクトの開発、テスト、デプロイ用フレームワーク。npmでインストールしこのツールで最初のスマートコントラクトを書いてみてください。


  • Metamask - DAppsと連携するChrome拡張ウォレット。


  • Truffle boxes - Ethereumエコシステムのためのパッケージされたコンポーネント。


開発ツール


スマートコントラクト開発


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



  • Solidity- Ethereumのスマートコントラクト用言語。


  • Bamboo - モーフィング・スマートコントラクト用言語


  • Vyper - 新しい実験的プログラミング言語


  • LLL - Lispライクな低レベル言語


フレームワーク



  • Truffle - もっともポピュラーなスマートコントラクトの開発、テスト、デプロイ用フレームワーク。TruffleスイートはTruffle、GanacheDrizzleを含みます。参考: Deep dive on Truffle here


  • Embark - DApps開発フレームワーク


  • Dapp - DApps開発フレームワーク。DAppleの後継。


  • Populus - もっともかわいい動物写真を含むEthereum開発フレームワーク。


  • Etherlime - ethers.jsベースのDApps開発フレームワーク。


IDEs



  • Remix - 静的解析とブロックチェーンVMによるテスト機能を含むWeb IDE。


  • Atom - Atomエディタ + Atom Solidity Linter, Etheratom


  • Pragma - スマートコントラクトのインターフェイス自動生成機能を含む非常にシンプルなSolidity Web IDE。


  • Superblocks Studio - Superblocks Studioはスマートコントラクトのコーディング、ビルド、デプロイを支援します。


  • Vim solidity - Solidity用Vimシンタックスファイル。


  • Visual Studio Code - Visual Studio CodeのSolidity用エクステンション。


  • Intellij Solidity Plugin - シンタックスハイライト、フォーマット、コード補完等の機能を含むオープンソースのJetBrains IntelliJ Idea IDE (フリー/商用)プラグイン。


  • YAKINDU Solidity Tools - EclipseベースのIDE。コンテクストに応じたコード補完とヘルプ、コードナビゲーション、シンタックスハイライト、ビルド、クイックフィックス&テンプレート。


  • Eth Fiddle - The Loom Network製のIDE。スマートコントラクトの作成、コンパイル、デバッグが可能。シェアが容易。


テスト用ブロックチェーンネットワーク



  • Ganache - GUIとログ基盤を持つEthereumブロックチェーンのテストアプリケーション。


  • Kaleido - コンソーシアムブロックチェーンを効率よく利用するためのツール。PoCや検証に最適。


  • Cliquebait - 本物のブロックチェーンに近いDockerベースのシンプルなスマートコントラクト・アプリケーションのテスト環境。



  • Local Raiden - デモやテストのためにDockerコンテナ上でRaidenを可動させる環境。


  • Private networks deployment scripts - プライベートPoAチェーン構築のためのクリエイティブなスクリプト。



  • Local Ethereum Network - プライベートPoWチェーン構築のためのクリエイティブなスクリプト。



  • Ethereum on Azure - コンソーシアムEthereumネットワークの構築とガバナンス。


テスト用のEther faucets


Ethereumを利用するためのクライアント


フロントエンドEthereum API



  • Web3.js - Javascript Web3



  • Drizzle - フロントエンドからブロックチェーンに繋ぐためのReduxライブラリ


  • Subproviders - Web3-provider-engine と接続するためのいくつかの便利なsubproviders(ハードウェアウォレットLedgerサポートをdAppに追加するためのLedgerSubproviderを含む)


  • web3-webpacked - Web3を利用するためのJSフレームワーク。


  • Vortex - DApp対応したReduxストア。WebSocketでスマートでダイナミックなバックグラウンドデータの更新が可能。 TruffleEmbarkで利用可能。



  • 静的型付けALT JS言語




バックエンドEthereum API



  • Web3.py- Python Web3


  • Web3.php - PHP Web3


  • Ethereum-php - PHP Web3


  • Web3j - Java Web3


  • Nethereum - .Net Web3


  • Ethereum.rb - Ruby Web3


  • Web3.hs - Haskell Web3


  • KEthereum - Kotlin Web3


  • Pyethereum - The Python core library of the Ethereum project


  • Eventeum - Kauri作成のEthereumのスマートコントラクト・イベントと バックエンドのマイクロサービスを繋ぐブリッジ。JAVA製。


  • Ethereumex - Elixir製のEthereumブロックチェーン用JSON-RPCクライアント


  • EthContract - ElixirからEthereumのスマートコントラクトへクエリを投げるためのヘルパーメソッド。


ブートストラップ



  • Truffle boxes - Ethereumエコシステムのためのパッケージされたコンポーネント。


  • Local Raiden - デモやテストのためにDockerコンテナ上でRaidenを可動させる環境。


  • Private networks deployment scripts - プライベートPoAチェーン構築のためのクリエイティブなスクリプト。


  • Parity Demo-PoA Tutorial - 2ノードによるParity PoAテストネットを構築するためのチュートリアル。


  • Local Ethereum Network - プライベートPoWチェーン構築のためのクリエイティブなスクリプト。


  • Kaleido - コンソーシアムブロックチェーンを効率よく利用するためのツール。PoCや検証に最適。


  • Cheshire - CryptoKitties APIとスマートコントラクトのためのローカル・サンドボックス実装。Truffle Boxで利用可能。


  • Aragon CLI - Aragonアプリケーション構築のためのCLIツール。


Ethereum ABI (Application Binary Interface) ツール



  • ABI r - Ethereumトランザクションのデータ、パラメータ、イベントのデコーダ・ライブラリ。


  • ABI-gen - コントラクトのABIからTypescriptのコントラクト・ラッパーを生成。


  • Ethereum ABI UI - EthereumのコントラクトABIのフィールド定義と関連するバリデータからUIフォームを生成。


  • headlong - Javaの型安全コントラクトABIと再帰ライブラリ。


パターン & ベストプラクティス


スマートコントラクトのパターン


Upgradebility


インフラ


Ethereum クライアント



  • Geth - Goクライアント


  • Parity - Rustクライアント


  • Cpp-ethereum - C++クライアント


  • Pyethapp - pyethereumを利用したPythonクライアント


  • Trinity - py-evmを利用したPythonクライアント


  • Ethereumjs - ethereumjs-vmを利用したJSクライアント


  • Ethereumj - Ethereum FoundationによるJavaクライアント


  • Harmony - EtherCampによるJavaクライアント


  • Seth - "コマンドラインのためのMetaMask" のようなクライアントツール。


  • Mustekala - MetamaskのEthereum Light Clientプロジェクト。


  • Exthereum - Elixirクライアント


  • EWF Parity - Tobalaba test network用のEnergy Web Foundationクライアント


  • Quorum - JP Morganによるデータ・プライバシーをサポートした認証されたEthereum実装。


ストレージ



  • IPFS - 分散ストレージとファイル参照



    • IPFS-Store - 検索機能を追加したIPFSストレージサービス


    • OrbitDB - IPFS上の分散データベース


    • JS IPFS API - IPFSのHTTP API JSライブラリ


    • TEMPORAL - IPFSとその他の分散ストレージプロトコルを容易に利用できるAPI




  • Swarm - Ethereum web3スタックのネイティブ・ベース・レイヤーの分散ストレージ、ファイルディストリビューションサービス


メッセージング



  • Whisper - Ethereum web3スタックのネイティブ・ベース・レイヤーの、DApps間のコミュニケーションプロトコル


  • DEVp2p Wire Protocol - Ethereum/Whisperが稼働するノード間のP2Pコミュニケーション


  • Pydevp2p - RLPxネットワークレイヤーのPython実装


テストツール



  • Solidity code coverage - Solidityコードカバレッジツール


  • Solidity coverage - Solidityコードカバレッジツール・その2


  • Solidity function profiler - Solidityコントラクトのfunctionプロファイラ


  • Espresso - 迅速、並列処理、 ホットリロードを特徴としたSolidityテストフレームワーク


  • Eth tester - Ethereumアプリケーション用テストスイート


  • Cliquebait - 本物のブロックチェーンに似せた、テスト可能なスマートコントラクトが統合されたDockerインスタンス


  • Hevm - テストとデバッグのためのEVM実装


  • Ethereum graph debugger - Solidityのグラフィカルデバッガ


  • Solhint - セキュリティ、スタイルガイド、ベストプラクティスをチェックできるスマートコントラクト・バリデーションのためのSolidity linter


  • Solium - スタイルとセキュリティの問題を検出するためのSolidity linter


  • - ローカルのtestrpcノードにsubmitされたトランザクションをよりリーダブルで理解を容易にするためのnpmパッケージ


セキュリティ・ツール



  • Mythril - スマートコントラクトの静的解析


  • Oyente - スマートコントラクトの静的解析・その2


  • Securify - Ethereumスマートコントラクトのセキュリティ・スキャナ


  • Porosity - Ethereumスマートコントラクトのデコンパイラとセキュリティチェックツール


  • Ethersplay - EVMディスアセンブラ


  • Evmdis - EVMディスアセンブラ・その2


  • Hydra - Cryptoeconomicコントラクトのセキュリティと分散バウンティ・フレームワーク


  • Solgraph - スマートコントラクトのセキュリティ検証のためのSolidityコントロールフローの可視化


  • Manticore - スマートコントラクトとバイナリのためのSymbolic executionツール



  • Solidity security blog - 既知の攻撃手法と一般的なアンチパターンの包括的なリスト



  • Awesome Buggy ERC20 Tokens - ERC20トークン・スマートコントラクトの脆弱性コレクション


モニタリング



  • Neufund - Smart Contract Watch - 多くのスマートコントラクト、トランザクションを監視するためのツール


  • Supermax - Ethereumスマートコントラクトのアクティビティ、Event logのライブデータフィード


その他のツール



  • Truffle boxes - Ethereumエコシステムのためのパッケージされたコンポーネント。



    • Cheshire - CryptoKitties APIとスマートコントラクトのためのローカル・サンドボックス実装。Truffle Boxで利用可能。





  • Solc - Solidityコンパイラ


  • Sol-compiler - プロジェクトレベルのSolidityコンパイラ


  • Solidity cli - より信頼でき、簡単に、迅速にSolidityコードをコンパイル


  • Solidity flattener - Solidityプロジェクトを1ファイルに集約。importしたコントラクトを可視化したり、Etherscanで検証可能としたりする際に便利


  • RLP - RLP(Recursive Length Prefix)のJSエンコーダ


  • eth-cli - Ethereumの習熟・開発時に便利なCLIツールのコレクション


  • Ethereal - Ethereumの一般的なタスクを管理するためのCLIツール


  • Eth crypto - Ethereum用JS暗号関数とそれをweb3.js & Solidityで使用するためのチュートリアル


  • Parity Signer - トランザクションに署名できるモバイルアプリ


  • py-eth - EthereumエコシステムのためのPythonツールのコレクション


  • truffle-flattener - Truffleで開発されたSolidityファイルを全ての依存関係を含め結合



  • - ローカルのtestrpcノードにsubmitされたトランザクションをよりリーダブルで理解を容易にするためのnpmパッケージ


  • TypeChain - Ethereumスマートコントラクト用のTypescriptバインディング


  • EthSum - シンプルなEthereumアドレス用Checksumツール


  • PHP based Blockchain indexer - PHPでブロックをインデックスしたりEventを監視


スマートコントラクトの規格とライブラリ


ERCs - Ethereum版RFCのリポジトリ


  • トークン



    • ERC-20 - Fungibleな資産のためのトークンコントラクト


    • ERC-721 - Non Fungibleな資産のためのトークン規格


    • ERC-918 - 採掘可能なトークンの規格




  • ERC-165 - スマートコントラクトがどのインターフェースを実装するかを公開&検出するための標準メソッドを作成



  • ERC-725 - ブロックチェーンのアイデンティティを確立するためのキー管理&実行Proxyコントラクト



  • ERC-173 - コントラクトの所有権のためのインターフェース規格


主要なスマートコントラクトライブラリ



  • Zeppelin - 検証された再利用可能なSafeMathやスマートコントラクトのupgradeabilityのためのZeppelinOS libraryを包含


  • cryptofin-solidity - セキュアでgasを抑えたEthereumスマートコントラクト開発のためのSolidityライブラリ


  • Modular Libraries - EVMを利用するブロックチェーンで使用するためのパッケージ集



  • DateTime Library - gas抑制効果のあるSolidity用のdate & timeライブラリ


  • Aragon - DAOプロトコル. ガバナンスとupgradeabilityにフォーカスしたaragonOS smart contract frameworkを包含


  • 0x - DEXプロトコル


  • Token Libraries with Proofs - トークンコントラクトのcorrectness proofsに関する、高品質な仕様と特性を包含


2ndレイヤのインフラ開発のためのガイド


スケーラビリティ


Payment/State Channels


Plasma



  • Learn Plasma - コーネル大学の2018 IC3-Ethereum Crypto Boot Campで始まったNode.jsによるWebアプリケーション。Plasmaの全ての種類をカバー(MVP/Cash/Debit)


  • Plasma MVP - Omise Goが実装したMinimal Viable Plasma


  • Plasma MVP Golang - Go言語で実装されたMinimal Viable Plasmaとその拡張


  • Plasma Cash - シンプルなPlasma Cashの実装


Side-Chains


Privacy


zkSNARKs



  • ZoKrates - EthereumのzkSNARKSのツールボックス