以太坊開發者工具的最新終極清單,用於在以太坊上開發應用程序的可用工具,組件,框架和平臺的指南。
對於任何開發者,無論你是一個睜大眼睛的Web3新手還是一個頭發灰白的OG加密無政府主義技術霸主,Github都是你的朋友。特別是ConsenSys Github可能是你在整個互聯網上找到的最明確的Ethereum開發工具庫。
無論是基礎知識,編碼語言,IDE,API,ABI,框架,最佳實踐,智能合約標準,測試工具還是faucets,ConsenSys Github都能滿足你現在開始在以太坊區塊鏈上構建去中心化應用所需的一切。
ConsenSys的產品經理推動了這個清單的創建,他們認爲需要在新的和經驗豐富的區塊鏈開發人員之間更好地共享工具,開發模式和組件。
新開發者從這裏開始!
- Solidity:最流行的智能合約語言。
- Truffle:最流行的智能合約開發,測試和部署框架。通過NPM安裝CLI,然後從這裏開始編寫你的第一份智能合約。
- Metamask:與Dapps交互的Chrome擴展錢包。
- Truffle boxes:以太坊生態系統的包裝組件。
- EthHub.io:以太坊的全面概述,包括其歷史,治理,未來計劃和開發資源。
- Infura:可擴展,安全,可靠地訪問以太坊網絡。
開發工具/tool
智能合約開發工具/tool
智能合約語言/language
- Solidity:以太坊智能合約語言。
- Bamboo:一種變形的智能合約語言。
- Vyper:新的實驗性pythonic編程語言。
- LLL:低級Lisp語言。
- Flint:正在開發的新語言,具有安全功能,包括資產類型,狀態轉換和安全整數。
框架/Frameworks
- Truffle:最受歡迎的智能合約開發,測試和部署框架。Truffle套件包括Truffle, Ganache, and Drizzle. 深入瞭解Truffle
- Embark:DApp開發框架。
- Waffle:高級智能合約開發和測試框架,小巧,靈活,快速(基於ethers.js)。
- Dapp:DApp開發框架,DApple的繼任者。
- Populus:以太坊開發框架中最可愛的動物圖片。
- Etherlime:基於ethers.js的Dapp部署框架。
- Parasol:敏捷智能合約開發環境,包括測試,INFURA部署,自動合約文檔等。它具有靈活和不受歡迎的設計,可無限制地定製。
- 0xcert:用於構建去中心化應用程序的JavaScript框架。
IDEs
- Remix:內置靜態分析的Web IDE,測試區塊鏈VM。
- Superblocks Lab:內置瀏覽器blochain VM,Metamask集成(一鍵部署到Testnet/Mainnet),交易記錄器和實時代碼WebApp以及許多其他功能。
- Atom:使用Atom編輯器Atom Solidity Linter,Etheratom,autocomplete-solidity,和language-solidity包。
- Pragma:非常簡單的Web IDE,用於實現solidity,以及自動生成的智能合約接口。
- Vim solidity:Vim solidity 語法文件。
- Visual Studio Code:Visual Studio Code擴展,增加了對Solidity的支持。
- Intellij Solidity Plugin:開源插件JetBrains IntelliJ Idea IDE (free/commercial)語法高亮,格式化,代碼完成等。
- YAKINDU Solidity Tools:基於Eclipse的IDE。具有上下文敏感的代碼完成和幫助,代碼導航,語法着色,內置編譯器,快速修復和模板。
- Eth Fiddle:由The Loom Network開發的IDE,允許你編寫,編譯和調試智能合約。易於共享和查找代碼段。
測試區塊鏈網絡/Test
- Ganache:用於測試以太坊區塊鏈的應用程序,帶有可視UI和日誌。
- Kaleido:使用Kaleido打造財團區塊鏈網絡。非常適合PoC和測試。
- Pantheon Private Network:在Docker容器中運行Pantheon節點的專用網絡。
- Orion:PegaSys執行私人交易的組件。
- Artemis:PegaSys的以太坊2.0信標鏈的Java實現。
- Cliquebait:使用非常類似於實際區塊鏈網絡的docker實例簡化集成並接受智能合約應用程序的測試。
- Local Raiden:在Docker容器中運行本地Raiden網絡,以進行演示和測試。
- Private networks deployment scripts:私有PoA網絡的即插即用部署腳本。
- Local Ethereum Network:私有PoW網絡的即插即用部署腳本。
- Ethereum on Azure:聯盟鏈的部署和治理以太網PoA網絡。
- getho:DApp開發平臺,包括PoA私有區塊鏈和智能合約測試工具。
- Ethereum on Google Cloud:基於PoW構建以太坊網絡。
Test Ether faucets
- Rinkeby faucet
- Kovan faucet
- Ropsten faucet
- Universal faucet
- Nethereum.Faucet:一個 C#/.NET faucet。
以太坊的交互/Communicating
以太坊前端APIs/Frontend
-
Web3.js:Javascript Web3
- Eth.js:Javascript Web3替代方案。
- Ethers.js:Javascript Web3替代,有用的實用程序和錢包功能。
- Web3Wrapper:Typescript Web3替代方案。
- Ethereumjs:以太坊的實用函數集合如ethereumjs-util和ethereumjs-tx。
- flex-contract和flex-ether現代零配置的用於與智能合約交互和進行交易的高級別庫。
- ez-ens簡單的零配置以太坊名稱服務地址解析器。
- web3x:web3.js的TypeScript端口。優勢包括包括與合約交互時微服務構建和完整類型安全。
- Nethereum:跨平臺的以太坊開發框架。
- Drizzle:使用Redux庫將前端連接到區塊鏈。
- Tasit SDK:一個JavaScript SDK,用於使用React Native製作原生移動端的以太坊dapps。
- Subproviders:與Web3-provider-engine 結合使用的幾個有用的子提供程序,包括用於爲你的dApp添加Ledger硬件錢包支持的LedgerSubprovider。
- web3-react:用於構建單頁以太坊dApp的React框架。
- Vortex:一個Dapp-ready Redux Store。藉助WebSockets,智能和動態後臺數據刷新。Truffle和Embark。
-
其他Javascript替代品
以太坊後端APIs/Backend
- 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:以太坊項目的Python核心庫。
- Eventeum:以太坊智能合約事件和後端微服務之間的橋樑,由Kauri用Java編寫。
- Ethereumex:Ethereum區塊鏈的Elixir JSON-RPC客戶端。
- EthContract:幫助查詢Elixir中的ETH智能合約的一組幫助方法。
Bootstrap/out of box tools
- Truffle boxes:以太坊生態系統的打包組件。
- Pantheon Private Network:在Docker容器中運行Pantheon節點的專用網絡。
- Testchains:預配置的.NET devchains,用於快速響應(PoA)。
- Blazor/Blockchain Explorer:Wasm區塊鏈資源管理器(功能樣本)。
- Local Raiden:在Docker容器中運行本地Raiden網絡,以進行演示和測試。
- Private networks deployment scripts:私有PoA網絡的即插即用部署腳本。
- Parity Demo-PoA Tutorial:構建具有2個節點的PoA測試鏈的分步教程,具有奇偶校驗授權共識。
- Local Ethereum Network:私有PoW網絡的即插即用部署腳本。
- Kaleido:使用Kaleido打造財團區塊鏈網絡。非常適合PoC和測試。
- Cheshire:CryptoKitties API和智能合約的本地沙箱實現,可作爲Truffle Box使用。
- Aragon CLI:Aragon CLI用於創建和開發Aragon應用程序。
- ColonyJS:JavaScript客戶端,提供用於與Colony Network智能合約交互的API。
- ArcJS:便於javascript應用程序訪問DAOstack Arc以太坊智能合約的庫。
Ethereum ABI (Application Binary Interface) tools
- ABI decoder:用於解碼以太坊交易中的數據參數和事件的庫。
- ABI-gen:從合約ABI生成Typescript合約包裝。
- Ethereum ABI UI:從以太坊合約ABI自動生成UI表單字段定義和相關驗證器。
- headlong:Java中的類型安全合約ABI和遞歸長度前綴庫。
- One Click dApp:使用ABI在唯一的URL上即時創建dApp。
- Truffle Pig:一種開發工具,提供簡單的HTTP API,用於查找和讀取Truffle生成的合約文件,以便在本地開發期間使用。通過http提供新合約ABI。
模式和最佳實踐/Patterns & Best Practices
智能合約開發的模式/Patterns for Smart Contract Development
- 使用情況見Dapp-a-day 1-10和Dapp-a-day 11-25
-
OpenZeppelin: Solidity語言中可重用且安全的智能合約的開放框架。
- 可能是最廣泛使用的庫和智能合約。
- 與Dappsys類似,更多地集成到Truffle框架中。
- 關於安全審計的最佳實踐的博客
- Advanced Workshop with Assembly
- Simpler Ethereum Multisig:特別是Benefits。
- CryptoFin Solidity Auditing Checklist:常見審查結果清單,以及審覈主網啓動合約時需要注意的問題。
-
aragonOS: 構建DAO,Dapps和協議的智能合約框架
- 易讀性:智能合約可以升級到更新版本。
- 權限控制:通過使用
auth
和authP
修飾符,你可以保護功能,只有其他應用程序或實體才能訪問它。 - 轉發器:aragonOS應用程序可以將其意圖發送給其他應用程序,以便在滿足一系列要求時轉發意圖。
可升級性/Upgradebility
基礎設施/Infrastructure
客戶端/Ethereum Clients
- Pantheon:PegaSys的Java客戶端。
- Geth:Go客戶端。
- Parity:Rust客戶端。
- Aleth:C++客戶端。
- Pyethapp:使用pyethereum的Python客戶端。
- Trinity:使用py-evm的Python客戶端。
- Ethereumjs:使用ethereumjs-vm的JS客戶端。
- Ethereumj:以太坊基金會的Java客戶端。
- Harmony:EtherCamp的Java客戶端。
- Seth:Seth是一個以太坊客戶端工具,就像命令行的MetaMask。
- Mustekala:Metamask的以太坊輕客戶端項目。
- Exthereum:Elixir客戶端。
- EWF Parity:Tobalaba測試網絡的Energy Web Foundation客戶端。
- Quorum:JP Morgan支持的允許實施以太坊支持數據隱私。
- Mana:用Elixir編寫的以太坊全節點實現。
存儲/Storage
-
IPFS:去中心化存儲和文件引用。
- IPFS-Store:具有附加搜索功能的IPFS存儲服務。
- OrbitDB:IPFS之上的去中心化數據庫。
- JS IPFS API:IPFS HTTP API的客戶端庫,用JavaScript實現。
- TEMPORAL:易於使用的API到IPFS和其他分佈式/去中心化存儲協議。
- Swarm:分佈式存儲平臺和內容分發服務,以太坊web3堆棧的本機基礎層服務。
消息傳遞/Messaging
- Whisper:DApps相互通信的通信協議,是以太坊web3堆棧的本機基礎層服務。
- DEVp2p Wire Protocol:運行以太坊/Whisper的節點之間的對等通信。
- Pydevp2p:RLPx網絡層的Python實現。
測試工具/Testing Tools
- Solidity code coverage:Solidity代碼覆蓋率工具。
- Solidity coverage:Solidity智能合約的替代代碼覆蓋範圍。
- Solidity function profiler:Solidity智能合約分析器。
- Sol-profiler:備選和更新的Solidity智能合約分析器。
- Espresso:快速,並行化,熱重載solidity測試框架。
- Eth tester:用於測試以太坊應用程序的工具套件。
- Cliquebait:使用非常類似於實際區塊鏈網絡的docker實例簡化集成並接受智能合約應用程序的測試。
- Hevm:hevm項目是以太坊虛擬機(EVM)的一個實現,專門用於單元測試和調試智能合約。
- Ethereum graph debugger:Solidity圖形調試器。
- Tenderly CLI:利用人類可讀的堆棧跟蹤加速你的開發。
- Solhint:爲智能合約驗證提供安全性,樣式指南和最佳實踐規則。
- Ethlint:用於識別和修復Solidity(以前稱Solium)中的樣式和安全問題的Linter。
- Decode:npm包解析提交給本地testrpc節點的tx,使其更易讀,更易理解。
- truffle-assertions:一個帶有額外斷言和實用程序的npm包,用於測試與松露的Solidity智能合約。最重要的是,它增加了斷言特定事件是否已經發出的能力。
- Psol:具有mustache.js樣式語法,宏,條件編譯和自動遠程依賴包含的Solidity詞法預處理器。
- solpp:Solidity預處理器和flattener,具有全面的指令和表達式語言,高精度數學和許多有用的輔助函數。
- Decode and Publish:解碼併發布原始以太坊tx,https://live.blockcypher.com/...
- Doppelgänger:用於在單元測試期間模擬智能合約依賴關係的庫。
- rocketh:一個簡單的lib來測試以太坊智能合約,允許使用你選擇的任何web3 lib和測試運行器。
安全工具/Security Tools
- MythX:以太坊開發人員的安全驗證平臺和工具生態系統。
- Mythril Classic:開源EVM字節碼安全分析工具。
- Oyente:替代靜態智能合約安全性分析。
- Securify:以太坊智能合約的安全掃描程序。
- SmartCheck:靜態智能合約安全分析器。
- Porosity:基於區塊鏈的以太坊智能合約的反編譯器和安全分析工具。
- Ethersplay:EVM反彙編程序。
- Evmdis:替代EVM反彙編程序。
- Hydra:加密經濟合約安全框架,去中心化安全獎勵。
- Solgraph:可視化智能合約安全性分析的Solidity控制流程。
- Manticore:智能合約和二進制文件的符號執行工具。
- Slither:一個Solidity靜態分析框架。
- Adelaide:Solidity編譯器的SECBIT靜態分析擴展。
- Solidity security blog:已知攻擊向量和常見反模式的綜合列表。
- Awesome Buggy ERC20 Tokens:ERC20與Token智能合約中的漏洞集合。
- Free Smart Contract Security Audit:來自Callisto Network的免費智能合約安全審計。
監控/Monitoring
- Neufund - Smart Contract Watch:一種監控大量智能合約和交易的工具。
- Scout:以太坊上智能合約的活動和事件日誌的實時數據Feed。
- Chainlyt:使用已解碼的交易數據探索智能合約,查看合約的使用方式以及使用特定函數調用搜索交易。
其他工具/Other Miscellaneous Tools
-
Truffle boxes:用於快速構建DApps的打包組件。
- Cheshire:CryptoKitties API和智能合約的本地沙箱實現,可作爲Truffle Box使用。
- Solc:Solidity編譯器。
- Sol-compiler:項目級Solidity編譯器。
- Solidity cli:更快,更簡單,更可靠地編譯solidity代碼。
- Solidity flattener:將solidity項目與平面文件實用程序相結合。用於可視化導入的合約或驗證你在Etherscan上的合約。
- Sol-merger:替代方案,將所有導入合併爲單個文件以獲得可靠性合約。
- RLP:JavaScript中的遞歸長度前綴編碼。
- eth-cli:一系列用於幫助以太坊學習和開發的CLI工具。
- Ethereal:Ethereal是一個命令行工具,用於管理以太坊中的常見任務。
- Eth crypto:用於以太坊的加密javascript函數以及將它們與web3js和solidity一起使用的教程。
- Parity Signer:移動應用程序允許簽署交易。
- py-eth:爲以太坊生態系統收集Python工具。
- truffle-flattener:在Truffle下開發的Concats solidity文件及其所有依賴項。
- Decode:npm包解析提交給本地testrpc節點的tx,使其更易讀,更易理解。
- TypeChain:以太坊智能合約的Typescript綁定。
- EthSum:一個簡單的以太坊地址校驗和工具。
- PHP based Blockchain indexer:允許索引塊或在PHP中監聽事件。
- Purser:基於以太坊的錢包的JavaScript通用錢包工具。支持軟件,硬件和Metamask,將所有錢包都集成到dApp開發的一致且可預測的界面中。
- Node-Metamask:從node.js連接到MetaMask。
- Solidity-docgen:Solidity項目的文檔生成器。
- Ethereum ETL:將以太坊區塊鏈數據導出爲CSV或JSON文件。
- prettier-plugin-solidity:用於格式化Solness代碼的更漂亮的插件。
- EthToolbox:一款爲以太坊開發人員提供離線工具的網絡應用程序。 EC恢復,地址格式化程序,單位轉換器,哈希函數,密鑰生成器等。
- Unity3dSimpleSample:以太坊和Unity集成演示。
- Flappy:以太坊和Unity集成演示/示例。
- Wonka:Nethereum業務規則引擎演示/示例。
智能合約標準庫/Smart Contract Standards & Libraries
ERCs:Ethereum Request for Comment資料庫
熱門智能合約庫/Popular Smart Contract Libraries
- Zeppelin:包含經過測試的可重用智能合約SafeMath和ZeppelinOS library可升級智能合約。
- cryptofin-solidity:一系列Solidity庫,用於在以太坊上構建安全,高效的智能合約。
- Modular Libraries:一組使用以太坊虛擬機在區塊鏈上使用的軟件包。
- DateTime Library:一個節氣的Solidity日期和時間庫。
- Aragon:DAO協議。包含aragonOS smart contract framework重點關注可升級性和治理。
- ARC:DAO的操作系統和DAO堆棧的基礎層。
- 0x:DEX protocol
- Token Libraries with Proofs:包含通證合約的正確性證明。給定規格和高級屬性。
第二層基礎架構的開發人員指南/Developer Guides for 2nd Layer Infrastructure
可伸縮性/Scalability
支付和狀態 / Payment/State Channels
- Ethereum Payment Channel:以太網支付通道50行代碼。
- µRaiden Documentation:µRaiden發送者/接收者用例的指南和樣本。
Plasma
- Learn Plasma:網站作爲節點應用程序,開始於康奈爾大學2018年IC3-Ethereum Crypto訓練營,涵蓋所有Plasma variants (MVP/Cash/Debit)。
- Plasma MVP:OmiseGO對最小可行Plasma的研究實施。
- Plasma MVP Golang:Golang實現和最小可行Plasma規範的擴展。
- Plasma Cash:簡單的Plasma現金實施。
側鏈/Side-Chains
隱私Privacy / 保密Confidentiality
zkSNARKs
- ZoKrates:以太坊上的zkSNARKS工具箱。
- The AZTEC Protocol:以太坊網絡上的機密交易,在以太坊主網上實施。
預編譯UI組件/Prebuilt UI Components
- ui.aragon.org:包含Dapp組件的React庫。
- components.bounties.network:包含Dapp組件的React庫。
- lorikeet.design:包含Dapp組件的React庫。
- ui.decentraland.org:包含Dapp組件的React庫。
- dapparatus:可重複使用的React Dapp組件。
- Metamask ui:Metamask React組件。
- DappHybrid:基於Web的去中心化應用程序的跨平臺混合託管機制。
- Nethereum.UI.Desktop:跨平臺桌面錢包示例。
======================================================================
分享一些以太坊、EOS、比特幣等區塊鏈相關的交互式在線編程實戰教程:
- java以太坊開發教程,主要是針對java和android程序員進行區塊鏈以太坊開發的web3j詳解。
- php以太坊,主要是介紹使用php進行智能合約開發交互,進行賬號創建、交易、轉賬、代幣開發以及過濾器和交易等內容。
- python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
- 以太坊入門教程,主要介紹智能合約與dapp應用開發,適合入門。
- 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
- ERC721以太坊通證實戰,課程以一個數字藝術品創作與分享DApp的實戰開發爲主線,深入講解以太坊非同質化通證的概念、標準與開發方案。內容包含ERC-721標準的自主實現,講解OpenZeppelin合約代碼庫二次開發,實戰項目採用Truffle,IPFS,實現了通證以及去中心化的通證交易所。
- C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智能合約開發與交互、過濾器和交易等。
- EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
- java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Java代碼中集成比特幣支持功能,例如創建地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
- php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Php代碼中集成比特幣支持功能,例如創建地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
- tendermint區塊鏈開發詳解,本課程適合希望使用tendermint進行區塊鏈開發的工程師,課程內容即包括tendermint應用開發模型中的核心概念,例如ABCI接口、默克爾樹、多版本狀態庫等,也包括代幣發行等豐富的實操代碼,是go語言工程師快速入門區塊鏈開發的最佳選擇。
匯智網原創翻譯,轉載請標明出處。這裏是以太坊開發者工具的最新清單