在本教程中,我們將詳細介紹如何使用Python 開發DeFi 項目。去中心化金融(DeFi)重要是區塊和合約世界裡最重要的”,並且由智能鏈開發出智能的“智能合約”的一個重要領導,部分原因是金融科技JavaScript 是地球上最常用的語言,而且因為有“JavaScript全都在”的思想和對節點領域的應用程序帶來的好處。情況則有所不同。大多數金融科技公司中出於各種原因而選擇使用Python:
- 出色的開發者體驗
- 人工智能和機器學習的大力支持
- 配套的金融科技軟件工具包
- 全面的分析工具
- 生產環境中的
為什麼數據科學家、學者和金融科技機構使用Python 是有一定原因的。 DeFi 領域中的某個項目,例如嚮往金融,也認可此人,並已經使用Python 和Solidity 製造了他們的整個DeFi 平台。因為有web3.py和布朗尼這些類的庫和框架,有看到項目的框架,能夠支持項目部署,是一個腳本,我們測試等,並且能夠進行類似的開發機會。
Web3.py 也可以“混合使用”使用,你可以提前和我們打開一個項目,並在其中一些樣板這就是今天將要的Chainlink 布朗尼組合。
就像我們在Python 科技領域中的當前編程語言一樣,Chainlink 是我們為什麼要使用Chainlink + Python 的當前編程語言,Chainlink 750 也是將鏈下數據鏈下智能合約解決方案,正時守護著750 次智能機的解決方案,這個價值結合的頂級安全去中心化金融科技提供了DeFi技術的中心化金融科技領域的強大的框架支撐。
要開始使用Brownie 製造DeFi 應用,首先需要使用Python安裝Python目前建議Python的版本不能低於3.6,因此,如果使用3.6的最低版本,請先進行升級。你通過命令查看你的Python以下版本並驗證它是否已正確安裝:
python --version
或者,如果用的是Python3:
python3 --version
你還需要安裝伽納徹甘是用很容易啟動Python的一個鍵式鏈,它可以讓你啟動一個本地鏈。但你必須通過npm和節點.js來吧,這將是唯一需要下載的JavaScript相關內容。
首先,需要安裝node.js和npm。 Node.js會隨npm一起安裝。下載後,可以通過運行以下命令來檢查它是否正確安裝:
npm --version node --version
然後你可以通過高級安裝Ganache。
npm install -g ganache-cli
自己安裝完這些之後,我們來安裝eth-brownie。推薦使用pipx而不是pip,這樣我們就可以在它的環境中安裝eth-brownie。
首先安裝像素:
python3 -m pip install --user pipx python3 -m pipx ensurepath
然後關閉並重啟結束。VSCode,點擊它看起來像安裝成功了的圖標。現在pipx應該可以通過pipx –版本檢查。然後可以安裝Eth-布朗尼。
pipx install eth-brownie
如果你在這一步遇到問題。用google,可能有可能找到這個問題的多條信息。沒有相關的話,通過查詢堆棧溢出提問,並打上布朗尼標籤。
如果你想在沒有虛擬環境的情況下安裝,可以使用pip 或pip3:
pip3 install eth-brownie
如果你能在終端執行布朗尼並且,就表示成功安裝,得到的輸出類似於:
Brownie v1.17.0 - Python development framework for Ethereum Usage: brownie <command> [<args>...] [options <args>] Commands: init Initialize a new brownie project bake Initialize from a brownie-mix template pm Install and manage external packages compile Compile the contract source files console Load the console test Run test cases in the tests/ folder run Run a script in the scripts/ folder accounts Manage local accounts networks Manage network settings gui Load the GUI to view opcodes and test coverage analyze Find security vulnerabilities using the MythX API Options: --help -h Display this message --version Show version and exit Type 'brownie <command> --help' for specific options and more information about each command.
另外,你還需要一個MetaMask這個以太坊錢包展示。如果你以前經常可以使用ETH,則視頻下面的視頻輔助。需要注意的是,在Ropsten網絡上觀看或獲取ETH測試幣,但Chainlink已經不再支持了。如果你想按照視頻操作,請使用Kovan測試網絡。
最後,請確保你的ETH有一些測試網LINK代幣和Kovan測試網ETH代幣。你可以在友情鏈接和ETH 科萬中獲取一些。
開啟一個Chainlink項目
要開始使用布朗尼,我們可以使用布朗尼混合物為我們提供樣板代碼。在本文的示例中,我們將部署一個簡單的Chainlink 價格饋送,來了解布朗尼框架。現在我們就開始創作chainlink-mix項目吧。
brownie bake chainlink-mix cd chainlink
我們會進入到一個包含一些默認代碼的新項目。ls命令,我們可以看到文件的佈局:
- 建造: 這是項目使用已監視的智能合約和已編譯的合約部署的文件夾
- 合同: 合同的源代碼,通常以Solidity 或Vyper 語言編寫
- 接口: 一個和已部署的契約所需要的一個聯繫人。ABI和契約地址。接口是獲取契約的ABI 的好方法
- 腳本: 我們創建的用於自動執行合約的流程
- 測試:測試
- 布朗尼-config.yaml: 我們想部署到什麼特殊的行鍊網絡?
requirements.txt
, README.md
, LICENSE
以及 .gitignore
等文件現在可以被釋放。你將用於練習中了解他們的。
設置環境變量
我們剛剛安裝好Ganache本地測試,我們仍然能夠連接到以太坊主網和測試網,我們就可以將合約部署在真實的測試網上。為此,我們需要設置WEB3_INFURA_PROJECT_ID場。你可以從Infura網站免費獲得一個Infura ID,也可以使用其他web3 提供者或者自己的但是,你需要做更多的配置。
在布朗尼-config.yaml文件中,你可以設定主持人字段的網絡配置,如果不想使用MetaMask,還可以定義要連接的URL。
現在web3 ID,我們需要將密碼作為環境來使用,這樣我們就可以在錢包中使用我們的帳戶了。如果你使用的是MetaMask,請 導出密鑰必須使用MetaMask,你可能在私下的添加0x。為了一一,建議在測試和使用萬能鑰匙時使用與主賬戶不同的帳戶。
> 重要提示:請把你的公共私信發送到GitHub 或任何人!如果獲得了你的私人賬戶,他們將可以訪問你賬戶中的所有資金!進行測試。
現在我們需要讓他們成為環境變量我們將使用一種簡單的方法來設置環境變量,創建一個.env文件,並添加以下內容:
export PRIVATE_KEY=0x96789….. export WEB3_INFURA_PROJECT_ID=’dog cat mouse….’
PRIVATE_KEY是MetaMask錢包中的錢包,WEB3_INFURA_PROJECT_ID是來自Infura 的項目ID。然後,創建一個布朗尼-config.yaml文件(如果文件已經存在,給它添加下面的內容)並添加以下行:
dotenv: .env
現在我們就可以部署到測試網和本地網絡了!
部署你的智能合約
現在已經完成了所有的設置,我們將進一步把智能部署到Kovan 測試網上!
在腳本文件夾中,我們有一個名字deploy_price_consumer_v3.py的腳本。這將部署我們的智能合約,該合約會讀取以美元價格的以太坊價格數據。
如果你想看到一個很容易理解的功能如何描述的以及部署它的教程,隨時查看Chainlink的部署價合約的教程。
只使用布朗尼跑命令使用此腳本部署:
brownie run scripts/price_feed_scripts/deploy_price_consumer_v3.py --network kovan
您會看到以下輸出內容:
Running 'scripts/price_feed_scripts/deploy_price_consumer_v3.py::main'... Transaction sent: 0x23d1dfa3937e0cfbab58f8d5ecabe2bfffc28bbe2349527dabe9289e747bac56 Gas price: 20.0 gwei Gas limit: 145600 Nonce: 1339 PriceFeed.constructor confirmed - Block: 22721813 Gas used: 132364 (90.91%) PriceFeed deployed at: 0x6B2305935DbC77662811ff817cF3Aa54fc585816
如果腳本工作,我們可以到Kovan 瀏覽器上查看我們部署的合約。
讀懂你的智能合約
我們已經部署好了智能合約,我們可以從現在部署的中式中讀取我們以太坊的價格。我們將使用另一個腳本:
brownie run scripts/price_feed_scripts/read_price_feed.py --network kovan
我們將輸出:
Brownie v1.12.2 - Python development framework for Ethereum ChainlinkProject is the active project. Running 'scripts/price_feed_scripts/read_price_feed.py::main'... Reading data from 0x5A…. 122322000000
其中122322000000是ETH當前的美元價格! Solidity無法理解小數,而我們知道Chainlink的價格有8位小數,因此價格為$1,223.22。
至此你就完成了使用Python和Brownie部署你的第一個智能合約!
測試你的智能合約
這也是一個很好的關於如何智能合約的例子。我們甚至可以使用測試模擬對象在本地進行測試!
一次運行:
brownie test
你的測試將在本地Ganache 實例上運行!
您還可以在測試網上使用以下內容進行測試:
brownie test --network kovan
這些測試可以通過一些您是否使用網絡的功能進行測試。
更進一步
現在你知道瞭如何使用來部署合約,就可以開始基於此框架智能製造以進行更多感興趣的事情。 Python 具有諸如Numpy、Scikit、Pandas 和TensorFlow 的強大工具,可以用於執行工作,機器學習等。最終將這些技術結合中心是在金融科技新時代成功的秘訣:去化金融。
鏈上鍊接是一個外部靈活的和框架使用,鏈上鍊,並開發者將這些財務和應用程序集成到以數據為中心的你的丈夫,如熊貓。的應用連接到Chainlink,請訪問開發者文檔並加入不和諧中的技術。如果你使用Python,Chainlink 和Brownie 設計討論工作了不起的東西,請確保使用@chainlink 來標記,如果你使用我們的所有出色的產品
帖子 使用Python開發DeFi項目 首先出現在 Chainlink 博客.