208
190

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-09-26

これは何?

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のツールボックス
208
190
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
208
190

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?