Skip to content

Latest commit

 

History

History
277 lines (237 loc) · 28.5 KB

README_Japanese.md

File metadata and controls

277 lines (237 loc) · 28.5 KB

※この日本語訳はd4ed743時点のものです。

Ethereum Developer Tools List

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

このリストは経験のあるブロックチェーン開発者から未経験の開発者まで、ツールや開発パターン、コンポーネントをもっと共有するべきだと感じたConsenSysのプロダクトマネージャにより作成が開始されました。

このリソースは開発用ツールにフォーカスしていますが、

Contributions 大歓迎!

あなたが追加(または削除!)したいツールについて、小さな修正であっても気軽にプルリクエストを送ってください。ツールを追加する場合は、開発者の理解を助ける短い説明文を付加してください

発起人の@corbpage、キュレーションと拡大へ貢献してくれた@pakaplace、よりロジカルにリストを再構築してくれた@jpantunesを含む20人以上のコントリビュータに感謝します。

  • 実稼働するプロダクトが無いプロジェクトは追加しない
  • 重複している、あるいはもうメンテナンスされていないツールは除却する
  • 有償、または限定サービスで、かつオープンソースでもなく開発者レビューの無いプロジェクトはさらなる審査を要します

このルールはフェアでしょうか? あなたの意見を聞かせてください: Consensys#70

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

  • Solidity - もっともポピュラーなスマートコントラクト用言語
  • Truffle - もっともポピュラーなスマートコントラクトの開発、テスト、デプロイ用フレームワーク。npmでインストールしこのツールで最初のスマートコントラクトを書いてみてください。
  • Metamask - DAppsと連携するChrome拡張ウォレット。
  • Truffle boxes - Ethereumエコシステムのためのパッケージされたコンポーネント。
  • dfuse - 世界クラスのアプリケーションを構築するための滑らかなブロックチェーンAPI。

開発ツール

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

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

  • 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ネットワークの構築とガバナンス。
  • getho - PoAプライベートプロックチェーンとスマートコントラクトのテスティングツールを持つDApp開発プラットフォーム

テスト用のEther faucets

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

フロントエンドEthereum API

  • Web3.js - Javascript Web3

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

  • dfuse - dfuse Ethereum APIを使用するTypeScriptライブラリ

  • useMetamask - イーサリアム自律分散型アプリケーション(EthereumĐApp)プロジェクトでメタマスク(Metamask)を管理するカスタムReact Hook。

  • WalletConnect - ウォレットを分散型アプリケーション(DApp)に接続するためのオープンプロトコル。

  • 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を監視

スマートコントラクトの規格とライブラリ Smart Contract Standards & Libraries

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