Python 開發者的以太坊
了解如何使用基於 Python 的專案與工具在以太坊上進行開發
使用以太坊建立去中心化應用程式 (dapp),利用加密貨幣與區塊鏈技術的優勢。這些 dapp 是值得信賴的,這意味著一旦它們被部署到以太坊,就會始終按照程式設計的方式運行。它們可以控制數位資產,以建立新型態的金融應用程式。它們可以是去中心化的,這意味著沒有單一實體或個人控制它們,且幾乎不可能被審查。
開始使用智能合約與 Solidity 語言
邁出將 Python 與以太坊整合的第一步
需要先了解更基礎的入門知識嗎?請查看 ethereum.org/learn 或 ethereum.org/developers。
- 區塊鏈解釋 (在新分頁開啟)
- 了解智能合約 (在新分頁開啟)
- 撰寫你的第一個智能合約 (在新分頁開啟)
- 了解如何編譯與部署 Solidity (在新分頁開啟)
- 2023 年區塊鏈中的 Python 狀態報告 (在新分頁開啟)
初學者文章
- Web3.py 概覽 (在新分頁開啟)
- 以太坊 Python 生態系導覽 (在新分頁開啟)
- 給 (Python) 開發者的以太坊指南 (在新分頁開啟)
- 值得獲獎:以太坊 Python 黑客松指南 (在新分頁開啟)
- 使用 Vyper 的智能合約簡介 (在新分頁開啟)
- 如何使用 Python Flask 開發以太坊合約? (在新分頁開啟)
- Web3.py 簡介 · Python 開發者的以太坊 (在新分頁開啟)
- 如何使用 Python 與 Web3.py 呼叫智能合約函式 (在新分頁開啟)
中階文章
- Web3.py 之友:Ape 簡介 (在新分頁開啟)
- 給 Python 程式設計師的 dapp 開發 (在新分頁開啟)
- 建立 Python 以太坊介面:第 1 部分 (在新分頁開啟)
- Python 中的以太坊智能合約:(算得上) 全面的指南 (在新分頁開啟)
進階使用模式
- Web3.py 模式:即時事件訂閱 (在新分頁開啟)
- Web3.py 模式:WebSocketProvider (在新分頁開啟)
- 使用 Python 編譯、部署與呼叫以太坊智能合約 (在新分頁開啟)
- 使用斯立瑟分析 Solidity 智能合約 (在新分頁開啟)
- 區塊鏈金融科技教學:使用 Python 進行借貸與借款 (在新分頁開啟)
封存文章
- 使用 Python 與 Brownie 部署你自己的 ERC-20 代幣 (在新分頁開啟)
- 使用 Brownie 與 Python 部署智能合約 (在新分頁開啟)
- 使用 Brownie 在 OpenSea 上建立 NFT (在新分頁開啟)
Python 專案與工具
- Web3.py (在新分頁開啟) - 用於與以太坊互動的 Python 函式庫
- Vyper (在新分頁開啟) - 適用於 EVM 的 Python 風格智能合約語言
- Titanoboa (在新分頁開啟) - Vyper 的原生測試工具;一個具備主網分叉、除錯與美觀追蹤回溯 (tracebacks) 功能的直譯器
- Moccasin (在新分頁開啟) - 基於 Titanoboa 建構,適用於 Vyper 與 Python 的智能合約開發與測試框架
- Ape (在新分頁開啟) - 專為 Python 開發者、資料科學家與安全專家打造的智能合約開發工具
- py-evm (在新分頁開啟) - 以太坊虛擬機的實作
- eth-tester (在新分頁開啟) - 用於測試基於以太坊之應用程式的工具
- eth-utils (在新分頁開啟) - 用於處理以太坊相關程式碼庫的公用函式
- py-solc-x (在新分頁開啟) - 支援 0.5.x 版本的 solc Solidity 編譯器 Python 包裝器
- pymaker (在新分頁開啟) - 用於 Maker 合約的 Python API
- siwe (在新分頁開啟) - 適用於 Python 的以太坊登入 (SIWE)
- Web3 DeFi for Ethereum integrations (在新分頁開啟) - 一個包含 ERC-20、尤尼斯瓦普與其他熱門專案現成整合的 Python 套件
- Wake (在新分頁開啟) - 用於合約測試、模糊測試、部署、漏洞掃描與程式碼導覽的多合一 Python 框架 (語言伺服器 - Tools for Solidity (在新分頁開啟))
- DeFiPy (在新分頁開啟) - 用於去中心化金融 (DeFi) 分析以及跨尤尼斯瓦普 V2/V3、Balancer 與 Curve 進行自動做市商 (AMM) 模擬的 Python SDK
封存 / 不再維護:
- Trinity (在新分頁開啟) - 以太坊 Python 客戶端
- Mamba (在新分頁開啟) - 用於撰寫、編譯與部署以 Vyper 語言撰寫之智能合約的框架
- Brownie (在新分頁開啟) - 用於部署、測試與互動以太坊智能合約的 Python 框架
- pydevp2p (在新分頁開啟) - 以太坊 P2P 堆疊的實作
- py-wasm (在新分頁開啟) - WebAssembly 直譯器的 Python 實作
正在尋找更多資源嗎?請查看 ethereum.org/developers。
使用 Python 工具的專案
以下基於以太坊的專案使用了本頁面提及的工具。相關的開源儲存庫可作為範例程式碼與最佳實務的良好參考。
- Yearn Finance (在新分頁開啟) 與 Yearn 金庫合約儲存庫 (在新分頁開啟)
- Curve (在新分頁開啟) 與 Curve 智能合約儲存庫 (在新分頁開啟)
- BadgerDAO (在新分頁開啟) 與 使用 Brownie 工具鏈的智能合約 (在新分頁開啟)
- Sushi (在新分頁開啟) 使用 Python 來管理與部署他們的歸屬合約 (在新分頁開啟)
- Alpha Finance (在新分頁開啟) (以 Alpha Homora 聞名) 使用 Brownie 來測試與部署智能合約 (在新分頁開啟)
Python 社群討論
- 以太坊 Python 社群 Discord (在新分頁開啟),用於 Web3.py 與其他 Python 框架討論
- Vyper Discord (在新分頁開啟),用於 Vyper 智能合約程式設計討論
其他彙整清單
Vyper wiki 有一份極佳的 Vyper 資源清單 (在新分頁開啟)