好康相報順手教

區塊鏈乙太坊開發可以用的資源表

區塊鏈乙太坊開發可以用的資源表

原文A Definitive List of Ethereum Developer Tools,感覺會用到留著

  • Solidity — The most popular smart contract language.
  • Truffle — Most popular smart contract development, testing, and deployment framework. Install the CLI via NPM and start here to write your first smart contracts.
  • Metamask — Chrome extension wallet to interact with Dapps.
  • Truffle boxes — Packaged components for the Ethereum ecosystem
  • EthHub.io — Comprehensive crowdsourced overview of Ethereum- its history, governance, future plans and development resources.
  • Infura — Scalable, secure, and reliable access to the Ethereum network.

Developer Tools

Developing Smart Contracts

Smart Contract Languages

  • Solidity — Ethereum smart contracting language
  • Bamboo — A morphing smart contract language
  • Vyper — New experimental pythonic programming language
  • LLL — Low-level Lisp-like Language
  • Flint — New language under development with security features including asset types, state transition, and safe integers

Frameworks

  • Truffle — Most popular smart contract development, testing, and deployment framework. The Truffle suite includes Truffle, Ganache, and DrizzleDeep dive on Truffle here
  • Embark — Framework for DApp development
  • Waffle — Framework for advanced smart contract development and testing, small, flexible, fast (based on ethers.js)
  • Dapp — Framework for DApp development, successor to DApple
  • Populus — The Ethereum development framework with the most cute animal pictures
  • Etherlime — ethers.js based framework for Dapp deployment
  • Parasol — Agile smart contract development environment with testing, INFURA deployment, automatic contract documentation and more. It features a a flexible and unopinionated design with unlimited customizability
  • 0xcert — JavaScript framework for building decentralized applications

Integrated Developer Environments

Test blockchain networks

  • Ganache — App for test Ethereum blockchain with visual UI and logs
  • Kaleido — Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing
  • Pantheon Private Network — Run a private network of Pantheon nodes in a Docker container ** Orion — Component for performing private transactions by PegaSys ** Artemis — Java implementation of the Ethereum 2.0 Beacon Chain by PegaSys
  • Cliquebait — Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network
  • Local Raiden — Run a local Raiden network in docker containers for demo and testing purposes
  • Private networks deployment scripts — Out-of-the-box deployment scripts for private PoA networks
  • Local Ethereum Network — Out-of-the-box deployment scripts for private PoW networks
  • Ethereum on Azure — Deployment and governance of consortium Ethereum PoA networks
  • getho — DApp development platform including PoA private blockchain and Smart Contract testing tool.
  • Ethereum on Google Cloud — Build Ethereum network based on Proof of Work

Test Ether faucets

Communicating with Ethereum

Frontend Ethereum APIs

  • Web3.js — Javascript Web3
  • Eth.js — Javascript Web3 alternative
  • Ethers.js — Javascript Web3 alternative, useful utilities and wallet features
  • Web3Wrapper — Typescript Web3 alternative
  • Ethereumjs — A collection of utility functions for Ethereum like ethereumjs-util and ethereumjs-tx
  • flex-contract and flex-ether Modern, zero-configuration, high-level libraries for interacting with smart contracts and making transactions.
  • ez-ens Simple, zero-configuration Ethereum Name Service address resolver.
  • web3x — A TypeScript port of web3.js. Benefits includes tiny builds and full type safety, including when interacting with contracts.
  • Drizzle — Redux library to connect a frontend to a blockchain
  • Tasit SDK — A JavaScript SDK for making native mobile Ethereum dapps using React Native
  • Subproviders — Several useful subproviders to use in conjunction with Web3-provider-engine (including a LedgerSubprovider for adding Ledger hardware wallet support to your dApp)
  • web3-react — React framework for building single-page Ethereum dApps
  • Vortex — A Dapp-ready Redux Store. Smart and Dynamic background data refresh thanks to WebSockets. Works with Truffle and Embark.
  • Strictly Typed — Javascript alternatives
  • elm-ethereum
  • purescript-web3

Backend Ethereum APIs

  • 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 — A bridge between Ethereum smart contract events and backend microservices, written in Java by Kauri
  • Ethereumex — Elixir JSON-RPC client for the Ethereum blockchain
  • EthContract — A set of helper methods to help query ETH smart contracts in Elixir

Bootstrap/out of box tools

  • Truffle boxes — Packaged components for the Ethereum ecosystem
  • Pantheon Private Network — Run a private network of Pantheon nodes in a Docker container
  • Local Raiden — Run a local Raiden network in docker containers for demo and testing purposes
  • Private networks deployment scripts — Out-of-the-box deployment scripts for private PoA networks
  • Parity Demo-PoA Tutorial — Step-by-Step tutorial for building a PoA test chain with 2 nodes with Parity authority round consensus
  • Local Ethereum Network — Out-of-the-box deployment scripts for private PoW networks
  • Kaleido — Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing
  • The Chain Abstraction Layer — A flexible, modular library for developing disintermediated solutions across different blockchains
  • Cheshire — A local sandbox implementation of the CryptoKitties API and smart contracts, available as a Truffle Box
  • Aragon CLI — The Aragon CLI is used to create and develop Aragon apps
  • ColonyJS — JavaScript client that provides an API for interacting with the Colony Network smart contracts.
  • ArcJS — Library that facilitates javascript application access to the DAOstack Arc ethereum smart contracts.

Ethereum ABI (Application Binary Interface) tools

  • ABI decoder — library for decoding data params and events from Ethereum transactions
  • ABI-gen — Generate Typescript contract wrappers from contract ABI’s.
  • Ethereum ABI UI — Auto-generate UI form field definitions and associated validators from an Ethereum contract ABI
  • headlong — type-safe Contract ABI and Recursive Length Prefix library in Java
  • One Click dApp — Instantly create a dApp at a unique URL using the ABI.
  • Truffle Pig — a development tool that provides a simple HTTP API to find and read from Truffle-generated contract files, for use during local development. Serves fresh contract ABIs over http.

Patterns & Best Practices

Patterns for Smart Contract Development

Upgradebility

Infrastructure

Ethereum Clients

  • Pantheon — Java client by PegaSys
  • Geth — Go client
  • Parity — Rust client
  • Aleth — C++ client
  • Pyethapp — Python client using pyethereum
  • Trinity — Python client using py-evm
  • Ethereumjs — JS client using ethereumjs-vm
  • Ethereumj — Java client by the Ethereum Foundation
  • Harmony — Java client by EtherCamp
  • Seth — Seth is an Ethereum client tool — like a “MetaMask for the command line”
  • Mustekala — Ethereum Light Client project of Metamask.
  • Exthereum — Elixir client
  • EWF Parity — Energy Web Foundation client for the Tobalaba test network
  • Quorum — A permissioned implementation of Ethereum supporting data privacy by JP Morgan
  • Mana — Ethereum full node implementation written in Elixir.

Storage

  • IPFS — Decentralised storage and file referencing
  • IPFS-Store — IPFS Storage service with added search capability
  • OrbitDB — Decentralised database on top of IPFS
  • JS IPFS API — A client library for the IPFS HTTP API, implemented in JavaScript.
  • TEMPORAL — Easy to use API into IPFS and other distributed/decentralised storage protocols
  • Swarm — Distributed storage platform and content distribution service, a native base layer service of the Ethereum web3 stack

Messaging

  • Whisper — Communication protocol for DApps to communicate with each other, a native base layer service of the Ethereum web3 stack
  • DEVp2p Wire Protocol — Peer-to-peer communications between nodes running Ethereum/Whisper
  • Pydevp2p — Python implementation of the RLPx network layer

Testing Tools

  • Solidity code coverage — Solidity code coverage tool
  • Solidity coverage — Alternative code coverage for Solidity smart-contracts
  • Solidity function profiler — Solidity contract function profiler
  • Sol-profiler — Alternative and updated Solidity smart contract profiler
  • Espresso — Speedy, parallelised, hot-reloading solidity test framework
  • Eth tester — Tool suite for testing Ethereum applications
  • Cliquebait — Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network
  • Hevm — The hevm project is an implementation of the Ethereum virtual machine (EVM) made specifically for unit testing and debugging smart contracts
  • Ethereum graph debugger — Solidity graphical debugger
  • Tenderly CLI — Speed up your development with human readable stack traces
  • Solhint — Solidity linter that provides security, style guide and best practice rules for smart contract validation
  • Ethlint — Linter to identify and fix style & security issues in Solidity, formerly Solium
  • Decode — npm package which parses tx’s submitted to a local testrpc node to make them more readable and easier to understand
  • truffle-assertions — An npm package with additional assertions and utilities used in testing Solidity smart contracts with truffle. Most importantly, it adds the ability to assert whether specific events have (not) been emitted.
  • Psol — Solidity lexical preprocessor with mustache.js-style syntax, macros, conditional compilation and automatic remote dependency inclusion.
  • solpp — Solidity preprocessor and flattener with a comprehensive directive and expression language, high precision math, and many useful helper functions.
  • Decode and Publish — Decode and publish raw ethereum tx. Similar to https://live.blockcypher.com/btc-testnet/decodetx/
  • Doppelgänger — a library for mocking smart contract dependencies during unit testing.
  • rocketh — A simple lib to test ethereum smart contract that allow to use whatever web3 lib and test runner you choose.

Security Tools

  • MythX — Security verification platform and tools ecosystem for Ethereum developers
  • Mythril Classic — Open-source EVM bytecode security analysis tool
  • Oyente — Alternative static smart contract security analysis
  • Securify — Security scanner for Ethereum smart contracts
  • SmartCheck — Static smart contract security analyzer
  • Porosity — Decompiler and Security Analysis tool for Blockchain-based Ethereum Smart-Contracts
  • Ethersplay — EVM disassembler
  • Evmdis — Alternative EVM disassembler
  • Hydra — Framework for cryptoeconomic contract security, decentralised security bounties
  • Solgraph — Visualise Solidity control flow for smart contract security analysis
  • Manticore — Symbolic execution tool on Smart Contracts and Binaries
  • Slither — A Solidity static analysis framework
  • Adelaide — The SECBIT static analysis extension to Solidity compiler
  • Solidity security blog — Comprehensive list of known attack vectors and common anti-patterns
  • Awesome Buggy ERC20 Tokens — A Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected
  • Free Smart Contract Security Audit — Free smart contract security audits from Callisto Network

Monitoring

  • Neufund — Smart Contract Watch — A tool to monitor a number of smart contracts and transactions
  • Scout — A live data feed of the activities and event logs of your smart contracts on Ethereum
  • Chainlyt — Explore smart contracts with decoded transaction data, see how the contract is used and search transactions with specific function calls

Other Miscellaneous Tools

  • Truffle boxes — Packaged components for building DApps fast.
  • Gitcoin — Do work, get work done, open source.
  • Cheshire — A local sandbox implementation of the CryptoKitties API and smart contracts, available as a Truffle Box
  • Solc — Solidity compiler
  • Sol-compiler — Project-level Solidity compiler
  • Solidity cli — Compile solidity-code faster, easier and more reliable
  • Solidity flattener — Combine solidity project to flat file utility. Useful for visualizing imported contracts or for verifying your contract on Etherscan
  • Sol-merger — Alternative, merges all imports into single file for solidity contracts
  • RLP — Recursive Length Prefix Encoding in JavaScript
  • eth-cli — A collection of CLI tools to help with ethereum learning and development
  • Ethereal — Ethereal is a command line tool for managing common tasks in Ethereum
  • Eth crypto — Cryptographic javascript-functions for Ethereum and tutorials to use them with web3js and solidity
  • Parity Signer — mobile app allows signing transactions
  • py-eth — Collection of Python tools for the Ethereum ecosystem
  • truffle-flattener — Concats solidity files developed under Truffle with all of their dependencies
  • Decode — npm package which parses tx’s submitted to a local testrpc node to make them more readable and easier to understand
  • TypeChain — Typescript bindings for Ethereum smartcontracts
  • EthSum — A Simple Ethereum Address Checksum Tool
  • PHP based Blockchain indexer — allows indexing blocks or listening to Events in PHP
  • Purser — JavaScript universal wallet tool for Ethereum-based wallets. Supports software, hardware, and Metamask — brings all wallets into a consistent and predictable interface for dApp development.
  • Node-Metamask — Connect to MetaMask from node.js
  • Solidity-docgen — Documentation generator for Solidity projects
  • Ethereum ETL — Export Ethereum blockchain data to CSV or JSON files
  • prettier-plugin-solidity — Prettier plugin for formatting Solidity code
  • EthToolbox — A web app with off-chain tools for Ethereum developers. EC recovery, address formatter, unit converter, hash functions, keys generator, etc.

Smart Contract Standards & Libraries

ERCs — The Ethereum Request for Comment repository

  • Tokens
  • ERC-20 — Original token contract for fungible assets
  • ERC-721 — Token standard for non-fungible assets
  • ERC-918 — Mineable Token Standard
  • ERC-165 — Creates a standard method to publish and detect what interfaces a smart contract implements.
  • ERC-725 — Proxy contract for key management and execution, to establish a Blockchain identity.
  • ERC-173 — A standard interface for ownership of contracts

Popular Smart Contract Libraries

  • Zeppelin — Contains tested reusable smart contracts like SafeMath and ZeppelinOS library for smart contract upgradeability
  • cryptofin-solidity — A collection of Solidity libraries for building secure and gas-efficient smart contracts on Ethereum.
  • Modular Libraries — A group of packages built for use on blockchains utilising the Ethereum Virtual Machine
  • DateTime Library — A gas-efficient Solidity date and time library
  • Aragon — DAO protocol. Contains aragonOS smart contract frameworkwith focus on upgradeability and governance
  • ARC — an operating system for DAOs and the base layer of the DAO stack.
  • 0x — DEX protocol
  • Token Libraries with Proofs — Contains correctness proofs of token contracts wrt. given specifications and high-level properties

Developer Guides for 2nd Layer Infrastructure

Scalability

Payment/State Channels

Plasma

  • Learn Plasma — Website as Node application that was started at the 2018 IC3-Ethereum Crypto Boot Camp at Cornell University, covering all Plasma variants (MVP/Cash/Debit)
  • Plasma MVP — OmiseGO’s research implementation of Minimal Viable Plasma
  • Plasma MVP Golang — Golang implementation and extension of the Minimum Viable Plasma specification
  • Plasma Cash — Simple Plasma Cash implementation

Side-Chains

Privacy / Confidentiality

zkSNARKs

  • ZoKrates — A toolbox for zkSNARKS on Ethereum
  • The AZTEC Protocol — Confidential transactions on the Ethereum network, implementation is live on the Ethereum main-net

Prebuilt UI Components

發表迴響