1. 程式人生 > >《我學區塊鏈》—— 三十三、以太坊開發者資源工具集

《我學區塊鏈》—— 三十三、以太坊開發者資源工具集

三十三、以太坊安全之 以太坊開發者資源工具

開發語言、框架與工具

語言

  • Solidity - 官方推薦以太坊智慧合約開發語言,也是目前最為主流的智慧合約語言。
  • Bamboo - 是一種將智慧合約描述為有限狀態機的語言,把智慧合約看成一個狀態和交易的函式,同時生成一個新的狀態。
  • Vyper - 一種類 python 的面向合約程式語言,專注於以太坊虛擬機器,著重於安全、簡潔、和穩定性。

框架

  • Truffle - 最為流行的智慧合約開發、測試和部署框架。經常與 Ganache (也是由 Truffle 團隊開發) 一起搭配使用。
  • Embark - 一個 DApp 開發框架。
  • Populus
    - 用Python語言寫的智慧合約開發框架。
  • Etherlime - 基於 ethers.js 的 DApp 開發框架。

整合開發環境(IDE)

  • Remix - 一個基於solidity語言的線上智慧合約開發IDE,它提供從編譯,除錯到部署的全流程支援。
  • Pragma - 一個非常簡單的 solidity 合約線上 IDE。提供合約的編譯、部署與呼叫支援。
  • Superblocks Studio - Superblocks Studio 可以幫助你線上編寫、編譯與部署智慧合約。目前處於 beta 版本。
  • Vim solidity - 有了這個,使用 vim 也可以寫愉快地寫 solidity 了。
  • Visual Studio Code - VSCode 是我日常用的最多的工具,好多支援 solidity 的外掛。

常用以太坊互動程式碼庫

  • Web3.js - 以太坊官方的 Javascript API
  • Eth.js - 優化過的 Web3.js
  • Ethers.js - 更加完整的以太坊 Javascript 程式碼庫,包括 Web3.js 沒有的足記詞與 HD 錢包支援等。
  • Web3.py - Python 版的 Web3
  • Web3j - Java 版的 Web3, 這裡可以檢視具體使用樣例
  • Web3.hs - Haskell 版的 Web3
  • Pyethereum - Python 版的以太坊核心客戶端
  • Drizzle - 基於 Redux 的用於連結以太坊的前端程式碼庫
  • Eventeum - 以太坊智慧合約事件和後端微服務之間的橋樑
  • Vortex - 可直接用於 DApp 的 Redux Store。通過 WebSockets 實現智慧合約與後臺資料的自動重新整理。

相關工具

  • Local Raiden - 在 docker 容器中執行本地雷電網路以進行演示和測試
  • Kaleido - 使用 Kaleido 啟動聯盟區塊鏈網路。非常適合 PoC 和測試
  • Cheshire - CryptoKitties API 和智慧合約的本地沙箱實現
  • Solc - Solidity 編譯器
  • Ethjs - 簡單好用的 JS 模組
  • RLP - RLP 編碼的 JS 版實現
  • Solium - 用於識別和修復 Solidity 中的程式碼格式和安全問題
  • Ethereal - 一個命令列工具,用於管理以太坊中的常見任務
  • ABI decoder - 用於解碼以太坊交易中資料引數和事件的庫
  • Ethereum ABI UI - 根據以太坊合約 ABI 自動生成 UI 表單欄位和關聯的驗證器
  • Eth crypto - 用於以太坊的加密javascript 函式以及將它們與 web3js 和 solidity 一起使用的教程
  • Solidity flattener - 一個可以將工程中相互引用的合約合併到一個合約檔案的工具
  • truffle-flattener - 一個可以將truffle 工程中相互引用的合約合併到一個合約檔案的工具
  • JS IPFS API - JS 實現的與 IPFS API 互動的程式碼庫
  • Ganache - 具有 UI 的本地以太坊簡單實現
  • py-eth - 以太坊 Python 語言工具集
  • Decode - 用以解析提交給本地 testrpc 節點的交易,使其更易讀,更易於理解

基礎架構相關

客戶端

  • Geth - Go 語言實現版本
  • Parity - Rust 語言實現版本
  • Harmony - 基於 Ethereumj 的以太坊節點實現,EtherCamp出品
  • Seth - 命令列版的 MetaMask
  • Mustekala - 以太坊輕客戶端實現,MetaMask 團隊出品
  • EWF Parity - 相容以太坊的能源區塊鏈客戶端
  • Quorum - 基於以太坊改造的關注資料隱私的授權訪問區塊鏈, JP Morgan 出品

儲存

  • Swarm - 去中心化儲存平臺和內容分發服務,是以太坊 web3 技術棧的基礎層服務
  • IPFS - 去中心化儲存網路,致力於使網路更快,更安全,更開放的點對點超媒體協議
  • IPFS-Store - 帶檢索功能的 IPFS 服務 API
  • OrbitDB - 基於 IPFS 的去中心化資料庫

訊息

  • Whisper - DApps 相互通訊的通訊協議, 以太坊 web3 技術棧的基礎層服務

錢包

  • Metamask - 廣為實用的瀏覽器外掛錢包
  • Mist - 官方錢包
  • MyCrypto - 和 MyEtherWallet 類似的錢包工具
  • Portis - 方便使用者使用 DApp 的 web 端錢包
  • Toshi - 移動端 DApp 瀏覽器
  • Trust - 移動端以太坊錢包
  • Status - 基於 react 實現的移動端以太坊作業系統
  • WallETH - 開源的 Android 以太坊錢包
  • Trezor - 知名度很高的硬體錢包
  • Ledger - 支援多幣種的硬體錢包

瀏覽器

  • Etherscan - 最為流行的以太坊瀏覽器,用於檢視交易資訊和合約程式碼

Gas 計算

相關服務

測試網路水龍頭(faucet)

合約程式碼庫

測試

安全

另一組研究人員新近開發了一種更先進的工具Maian。這個工具在搜尋合約中的漏洞時特別有用。但是,由於存在被攻擊者非法利用的可能,Maian團隊沒有對外公開這個工具。

知識

治理

  • Ethresear.ch - 參與以太坊研究工作的論壇, 包括但不限於: Casper, Sharding, EVM improvements, Crytpeconomics, Plasma and State-channels
  • EIPs - 以太坊改進提案庫
  • ERCs - The Ethereum Request for Comment repository

參考資料