以太坊開發者資源工具集合
阿新 • • 發佈:2019-01-03
開發語言、框架與工具
語言
- Solidity - 官方推薦以太坊智慧合約開發語言,也是目前最為主流的智慧合約語言。
- Bamboo - 是一種將智慧合約描述為有限狀態機的語言,把智慧合約看成一個狀態和交易的函式,同時生成一個新的狀態。
- Vyper - 一種類 python 的面向合約程式語言,專注於以太坊虛擬機器,著重於安全、簡潔、和穩定性。
框架
- Truffle - 最為流行的智慧合約開發、測試和部署框架。經常與 Ganache (也是由 Truffle 團隊開發) 一起搭配使用。
- Embark - 一個 DApp 開發框架。
- Populus - 用Python語言寫的智慧合約開發框架。
- Etherlime - 基於 ethers.js 的 DApp 開發框架。
整合開發環境(IDE)
- Remix - 一個基於solidity語言的線上智慧合約開發IDE,它提供從編譯,除錯到部署的全流程支援。
- Atom - Atom 編輯器可以結合 Atom Solidity Linter, Etheratom 等外掛進行智慧合約開發。
- Pragma - 一個非常簡單的 solidity 合約線上 IDE。提供合約的編譯、部署與呼叫支援。
- Superblocks Studio - Superblocks Studio 可以幫助你線上編寫、編譯與部署智慧合約。目前處於 beta 版本。
- Vim solidity - 有了這個,使用 vim 也可以寫愉快地寫 solidity 了。
- Visual Studio Code - VSCode 是我日常用的最多的工具,好多支援 solidity 的外掛。
- Intellij Solidity Plugin - JetBrains IntelliJ Idea IDE 上用的 solidity 外掛,支援語法高亮,格式化與程式碼自動補全。
常用以太坊互動程式碼庫
- Web3.js - 以太坊官方的 Javascript API
- Eth.js - 優化過的 Web3.js
- Ethers.js - 更加完整的以太坊 Javascript 程式碼庫,包括 Web3.js 沒有的足記詞與 HD 錢包支援等。
- Web3.py - Python 版的 Web3
- Web3.php - PHP 版的 Web3
- Web3j - Java 版的 Web3
- Nethereum - .Net 版的 Web3
- Ethereum.rb - Ruby 版的 Web3
- Web3.hs - Haskell 版的 Web3
- KEthereum - Kotlin 版的 Web3
- Pyethereum - Python 版的以太坊核心客戶端
- Drizzle - 基於 Redux 的用於連結以太坊的前端程式碼庫
- Eventeum - 以太坊智慧合約事件和後端微服務之間的橋樑
- Vortex - 可直接用於 DApp 的 Redux Store。通過 WebSockets 實現智慧合約與後臺資料的自動重新整理。
相關工具
- Truffle boxes - 一些打包好的元件
- Local Raiden - 在 docker 容器中執行本地雷電網路以進行演示和測試
- Private networks deployment scripts - 私有 PoA 網路的開箱即用部署指令碼
- Local Ethereum Network - 私有 PoW 網路的開箱即用部署指令碼
- Kaleido - 使用 Kaleido 啟動聯盟區塊鏈網路。非常適合 PoC 和測試
- Cheshire - CryptoKitties API 和智慧合約的本地沙箱實現
- Solc - Solidity 編譯器
- Solidity cli - 更快更好的編譯 Solidity
- Ethereumjs - 以太坊實用的 javascript 程式碼庫集合,比如 ethereumjs-util 和 ethereumjs-tx 等
- Ethjs - 簡單好用的 JS 模組
- Eth lightwallet - 在 Node 和瀏覽器裡用的以太坊輕錢包
- RLP - RLP 編碼的 JS 版實現
- Solium - 用於識別和修復 Solidity 中的程式碼格式和安全問題
- Ethereal - 一個命令列工具,用於管理以太坊中的常見任務
- ABI decoder - 用於解碼以太坊交易中資料引數和事件的庫
- Ethereum ABI UI - 根據以太坊合約 ABI 自動生成 UI 表單欄位和關聯的驗證器
- Eth crypto - 用於以太坊的加密javascript 函式以及將它們與 web3js 和 solidity 一起使用的教程
- Solidity flattener - 一個可以將工程中相互引用的合約合併到一個合約檔案的工具
- JS IPFS API - JS 實現的與 IPFS API 互動的程式碼庫
- Ganache - 具有 UI 的本地以太坊簡單實現
- SpankCard - 瀏覽器裡用的以太坊錢包
- Parity Signer - 允許簽署交易的移動應用
- py-eth - 以太坊 Python 語言工具集
- Decode - 用以解析提交給本地 testrpc節點的交易,使其更易讀,更易於理解
基礎架構相關
客戶端
- Geth - Go 語言實現版本
- Parity - Rust 語言實現版本
- Cpp-ethereum - C++ 語言實現版本
- Pyethapp - 基於 pyethereum 的 Python 語言實現版本
- Trinity - 基於 py-evm 的 Python 語言實現版本
- Ethereumjs - 基於 ethereumjs-vm 的 JS 實現版本
- Ethereumj - Java 語言實現版本
- Harmony - 基於 Ethereumj 的以太坊節點實現,EtherCamp出品
- Seth - 命令列版的 MetaMask
- Mustekala - 以太坊輕客戶端實現,MetaMask 團隊出品
- Exthereum - Elixir 語言實現版本
- EWF Parity - 相容以太坊的能源區塊鏈客戶端
- Quorum - 基於以太坊改造的關注資料隱私的授權訪問區塊鏈, JP Morgan 出品
儲存
- Swarm - 去中心化儲存平臺和內容分發服務,是以太坊 web3 技術棧的基礎層服務
- IPFS - 去中心化儲存網路,致力於使網路更快,更安全,更開放的點對點超媒體協議
- IPFS-Store - 帶檢索功能的 IPFS 服務 API
- OrbitDB - 基於 IPFS 的去中心化資料庫
訊息
- Whisper - DApps 相互通訊的通訊協議, 以太坊 web3 技術棧的基礎層服務
- DEVp2p Wire Protocol - 以太坊節點間的點對點通訊
錢包
- Metamask - 廣為實用的瀏覽器外掛錢包
- Gnosis multisig wallet - 多重簽名錢包
- Mist - 官方錢包
- MyEtherWallet - 安全方便地與區塊鏈互動的工具
- Ether Address Lookup - 以太坊地址檢測 Chrome 瀏覽器外掛
- MyCrypto - 和 MyEtherWallet 類似的錢包工具
- Portis - 方便使用者使用 DApp 的 web 端錢包
- Toshi - 移動端 DApp 瀏覽器
- Trust - 移動端以太坊錢包
- Status - 基於 react 實現的移動端以太坊作業系統
- imToken - 廣為使用的閉源錢包
- WallETH - 開源的 Android 以太坊錢包
- Trezor - 知名度很高的硬體錢包
- Ledger - 支援多幣種的硬體錢包
- KeepKey - 另一款硬體錢包
瀏覽器
- Etherscan - 最為流行的以太坊瀏覽器,用於檢視交易資訊和合約程式碼
- Etherchain Light - 用於以太坊私鏈的區塊鏈瀏覽器
- POA Explorer - 支援 POA 共識的以太坊瀏覽器
- QuickBlocks - 訪問以太坊區塊鏈資料的工具集
gas 計算
- EthGasStation - 估計交易費用和時間的網站
- Petrometer - 計算特定賬戶每天所花費的 gas
- CryptoProf - 智慧合約 gas 消耗測量工具
相關服務
- Oracalize - 預言機服務
- Infura - 以太坊節點服務
- Regis - 基於以太坊的數字資產登記平臺
- uPort - 身份認證
- Netstats - 以太坊網路統計
- ENS - 以太坊域名系統
- Name Bazaar - 以太坊域名市場
- Quantstamp - 安全審計
- SmartCheck - solidity 原始碼靜態分析
- MD4 Online Hash Function - hash 演算法線上工具
測試網路水龍頭(faucet)
- Rinkeby faucet
- Kovan faucet
- Ropsten faucet
合約程式碼庫
- Zeppelin - 經過測試的可重用合約庫比如 SafeMath、 ZeppelinOS 等
- Modular Libraries - 另一個合約庫
- DateTime Library - 省 gas 的solidity 時間處理庫
- Aragon - DAO 協議
- 0x - DEX 協議
測試
- Solidity code coverage - solidity 單元測試覆蓋率
- Solidity coverage - 另一個 solidity 程式碼覆蓋率工具
- Solidity function profiler - 列出合約函式
- Espresso - solidity 測試框架
- Eth tester - 以太坊應用測試套件
- Cliquebait - 簡化驗收測試的工具
- Hevm - 專為合約測試的 EVM 實現
- Ethereum graph debugger - solidity 除錯圖形化工具
安全
- Mythril - 智慧合約靜態安全分析
- Oyente - 智慧合約靜態安全分析
- Porosity - 智慧合約反編譯與靜態安全分析
- Ethersplay - EVM 反彙編
- Evmdis - EVM 反彙編
- Hydra - 去中心化的合約安全分析框架
- Solgraph - 圖形化智慧合約處理流程
- Manticore - 合約分析工具
- Solidity security blog - 合約安全分析部落格
- Awesome Buggy ERC20 Tokens - 問題合約彙集
- 智慧合約最佳實踐 - by ConsenSys
- Safety wiki - 以太坊安全
知識
- CryptoZombies - 以太坊殭屍教程
- Solidity idiosyncrasies - solidity 陷阱,侷限性和特質
- Ethereum development with Go - 用 go 語言進行以太坊開發
- Chainshot building blocks - 免費課程
- Delegate call - token 激勵的問答社群
- Stackexchange - 問答社群
- r/EthDev - Subreddit
- Ethernaut - 遊戲中掌握智慧合約安全
治理
- Ethresear.ch - 參與以太坊研究工作的論壇, 包括但不限於: Casper, Sharding, EVM improvements, Crytpeconomics, Plasma and State-channels
- Fellowship of Ethereum Magicians - 以太坊社群論壇
- EIPs - 以太坊改進提案庫
- ERCs - The Ethereum Request for Comment repository
參考資料
- Wiki - 以太坊知識庫
- Yellow Paper - 以太坊黃皮書
- Beige Paper - 不帶那些特殊符號的以太坊黃皮書
- 精通以太坊 - by Andreas M. Antonopoulos, Gavin Wood
- EVM opcodes - 以太坊指令集
- EVM illustrated - 以太坊虛擬機器的解釋文件
- 4bytes - 合約 4 位元組方法簽名庫
關注微信公眾
更多技術、架構、管理等知識分享,請關注微信公眾號:程式新視界(ID:ershixiong_see_world)
獲得一對一技術諮詢請掃碼加入知識星球(小密圈)