av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

用Python開發(fā)DeFi去中心化應用(上)

Python中文社區(qū) (ID:python-china)

目前創(chuàng)新互聯(lián)公司已為成百上千家的企業(yè)提供了網(wǎng)站建設、域名、雅安服務器托管、網(wǎng)站托管、企業(yè)網(wǎng)站設計、卡若網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

在本教程中,我們將介紹如何使用 Python 開發(fā) DeFi 項目。去中心化金融 (DeFi) 是區(qū)塊鏈和智能合約世界最重要的進步之一,通常被稱為“新金融科技”。目前,智能合約開發(fā)由 JavaScript 主導,部分原因可能是 JavaScript 是地球上最常用的語言,并且與 Node.js 配合構建全棧應用程序更容易。然而,量化分析師、股票交易員和對沖基金的金融科技世界并非如此。大多數(shù)金融科技公司出于各種原因使用 Python:

  •  更高效的開發(fā)體驗
  •  強大的人工智能和機器學習
  •  捆綁的金融科技包
  •  綜合分析工具
  •  生產(chǎn)環(huán)境中的可靠性

如此多的數(shù)據(jù)科學家、學者和金融科技機構使用 Python 是有原因的。DeFi 領域的一些項目,如yearn.finance,分享了這種觀點,并使用 Python 和 Solidity 構建了他們的整個 DeFi 平臺。正是由于像 web3.py 和 Brownie 這樣的庫和框架,我們才能看到這些項目變得生動起來。Brownie 是一個類似于 Truffle 的框架(它們都非?!皊weet”),它維護您的部署、腳本、測試,并允許您制作端到端的后臺。

Web3.py和Brownie還提供了“mix”,你可以在其中使用一些樣板代碼預打開項目。這就是我們今天將使用的Chainlink Brownie mix。

現(xiàn)在我們?yōu)槭裁匆褂?Chainlink + Python?正如 Python 是金融科技事實上的編程語言一樣,Chainlink 是將鏈下數(shù)據(jù)提供給 DeFi 智能合約的事實上的預言機解決方案,目前為頂級 DeFi 協(xié)議提供了超過 7B 美元的價值。這兩種技術的結合為去中心化金融科技領域提供了一個安全而強大的框架。

以下是 Chainlink 在 2020 年啟用的一些功能的快速瀏覽。

要開始使用 Brownie 和 Python 構建 DeFi 應用程序,您首先需要安裝 Python。此時不建議 Python 低于 3.4 版本,因此如果您的版本低于 3.4,請升級。您可以通過運行以下命令查看您的 Python 版本并驗證它是否已正確安裝:   

 
 
 
 
  1. python --version 

或者,如果使用 python3:   

 
 
 
 
  1. python3 --version 

您還需要安裝 Ganache。Ganache 是一個用 Python 編寫的一鍵式區(qū)塊鏈應用,可讓您輕松啟動本地區(qū)塊鏈。盡管您必須使用 npm 和 node.js 下載它,但這將是您必須與之交互的唯一 JavaScript 片段。

首先,您需要安裝 node.js 和 npm。Node.js 隨 npm 一起安裝。下載后,您可以通過運行以下命令來檢查它是否正確完成:   

 
 
 
 
  1. npm -v 

然后,您可以通過命令行安裝 Ganache。   

 
 
 
 
  1. npm install -g ganache-cli 

安裝完成后,我們將像安裝所有 Python 存儲庫一樣使用 pip 安裝 eth-brownie!   

 
 
 
 
  1. pip install eth-brownie 

或者如果使用 pip3:   

 
 
 
 
  1. pip3 install eth-brownie 

如果您在終端中運行 brownie,您就會知道您做對了,您會得到類似于以下內容的輸出: 

 
 
 
 
  1. Brownie v1.13.0- Python development framework forEthereum  
  2.  Usage:  brownie <command> [<args>...] [options <args>]  
  3.  Commands:  
  4.    init               Initialize a new brownie project  
  5.    bake               Initializefrom a brownie-mix template  
  6.    pm                 Installand manage external packages  
  7.    compile            Compile the contract source files  
  8.    console            Load the console  
  9.    test               Run test cases in the tests/ folder  
  10.    run                Run a script in the scripts/ folder  
  11.    accounts           Managelocal accounts  
  12.    networks           Manage network settings  
  13.    gui                Load the GUI to view opcodes and test coverage  
  14.    analyze            Find security vulnerabilities using the MythX API  
  15.  Options:  
  16.  --help -h          Displaythis message  
  17.  --version          Show version andexit  
  18.  Type'brownie <command> --help'for specific options and more information about  
  19.  each command. 

此外,您還需要一個 MetaMask 或其他以太坊錢包。請使用 Kovan測試網(wǎng)獲得ETH。請確保您的 ETH 錢包中有一些 testnet LINK 和 Kovan ETH。您可以在 LINK faucet 和 ETH Kovan faucet 中找到一些。

啟動 Chainlink 項目

要開始使用Brownie,,我們可以使用所謂的Brownie mix 來為我們提供樣板代碼。在這個例子中,我們將部署一個簡單的 Chainlink Price Feed 作為了解 Brownie 框架的一種方式。讓我們bake chainlink-mix。 

 
 
 
 
  1. brownie bake chainlink-mix  
  2.  cd chainlink 

這將使我們進入一個新項目,其中已經(jīng)為我們構建了一些默認代碼。如果我們運行 ls 我們可以看到文件的布局是什么樣的:

  •  build :這是項目跟蹤您部署的智能合約和編譯的合約的地方
  •  contracts:合同的源代碼,通常用 Solidity 或 Vyper 編寫
  •  interfaces :您需要使用已部署合同的接口布局。與合約的每次交互都需要一個 ABI 和一個地址。接口是獲取合約 ABI 的好方法
  •  scripts:我們創(chuàng)建的腳本來自動化處理我們的合同的過程 測試
  •  tests:測試
  •  brownie-config.yaml :這是我們?yōu)?Brownie 了解如何使用我們的智能合約提供所有信息的地方。我們要部署到哪個區(qū)塊鏈?有沒有我們想要設置的特殊參數(shù)?所有這些都在配置文件中設置。

現(xiàn)在可以忽略 requirements.txt 、 README.md 、 LICENSE 和 .gitignore。當您練習時,您會發(fā)現(xiàn)它們的用途。

設置環(huán)境變量

盡管我們只是安裝了 Ganache 來進行本地測試,但我們也希望能夠連接到 ETH 主網(wǎng)和測試網(wǎng),以便我們可以將它們部署在真實的測試網(wǎng)上。為此,我們需要設置 WEB3_INFURA_PROJECT_ID。您可以從 Infura 站點免費獲得一個 Infura ID。您也可以使用其他 web3 提供程序或您自己的節(jié)點,但您必須為此做更多的配置。

在您的 brownie-config.yaml 文件中,您可以使用主機密鑰設置網(wǎng)絡,并定義您不想使用 MetaMask 時想要連接的 URL。

現(xiàn)在您有了 web3 ID,我們需要將我們的私鑰作為環(huán)境變量,以便我們可以將我們的帳戶與我們的錢包一起使用。如果您使用 MetaMask,請查找導出密鑰。使用 MetaMask,您可能需要在私鑰的開頭添加 0x。建議在測試和導出密鑰時使用與主帳戶不同的帳戶,以防萬一。

現(xiàn)在,要使它們成為環(huán)境變量,只需在終端中運行以下命令: 

 
 
 
 
  1. export PRIVATE_KEY=0x96789…..  
  2. export WEB3_INFURA_PROJECT_ID=’dog cat mouse….’ 

如果你運行 printenv 并在那里看到你的環(huán)境變量,你就會知道你做對了。

部署您的智能合約

現(xiàn)在我們已經(jīng)設置好了一切,我們甚至可以繼續(xù)將智能合約部署到 Kovan 測試網(wǎng)!

在我們的腳本文件夾中,我們有一個名為 deploy_price_consumer_v3.py的腳本。這將部署我們的智能合約,以美元讀取以太坊的價格。

只需使用 brownie run 即可使用部署腳本:   

 
 
 
 
  1. brownie run scripts/price_feed_scripts/deploy_price_consumer_v3.py --network kovan 

你會看到這樣的東西: 

 
 
 
 
  1. Running'scripts/price_feed_scripts/deploy_price_consumer_v3.py::main'...  
  2. Transaction sent: 0x23d1dfa3937e0cfbab58f8d5ecabe2bfffc28bbe2349527dabe9289e747bac56  
  3. Gas price: 20.0 gwei   Gas limit: 145600Nonce: 1339  
  4. PriceFeed.constructor confirmed - Block: 22721813Gas used: 132364(90.91%) 
  5. PriceFeed deployed at: 0x6B2305935DbC77662811ff817cF3Aa54fc585816 

如果這工作正常,我們可以去 Kovan Etherscan 并找到我們部署的合約。上面的鏈接顯示了此示例中部署的合約。 


網(wǎng)站名稱:用Python開發(fā)DeFi去中心化應用(上)
轉載來源:http://uogjgqi.cn/article/cdpjhop.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流