成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 后端
在本教程中,我們將介紹如何使用 Python 開發(fā) DeFi 項目。

[[406081]]

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

在本教程中,我們將介紹如何使用 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 的框架(它們都非常“sweet”),它維護您的部署、腳本、測試,并允許您制作端到端的后臺。

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 并找到我們部署的合約。上面的鏈接顯示了此示例中部署的合約。 

 

責任編輯:龐桂玉 來源: Python中文社區(qū)
相關推薦

2021-06-17 08:37:53

PythonDeFi編程語言

2021-06-25 09:30:11

PythonDeFi借貸

2023-07-14 12:07:19

2018-09-05 14:39:05

2021-04-26 15:10:41

比特幣DeFi金融

2017-12-25 23:51:24

去中心化交易區(qū)塊鏈

2023-04-07 15:33:09

2023-10-12 09:05:11

2021-05-11 16:38:36

區(qū)塊鏈工具金融

2022-07-06 14:20:05

區(qū)塊鏈去中心化金融

2023-10-30 08:00:00

區(qū)塊鏈去中心化

2023-09-28 16:15:01

Element XMatrix 2.0

2023-08-24 16:23:09

2024-02-29 15:27:10

2021-02-24 10:02:19

存儲云存儲去中心化存儲

2022-05-13 15:11:24

區(qū)塊鏈去中心化dapp

2021-02-05 10:03:31

區(qū)塊鏈技術智能

2018-06-19 10:19:02

StorjSiaFilecoin

2014-05-19 10:07:41

Dynamo去中心化

2018-11-12 12:53:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品一区二区三区四区 | 国产精品亚洲片在线播放 | 中文字幕伊人 | 在线观看第一区 | 欧产日产国产精品视频 | 99久久精品一区二区毛片吞精 | 一区二区三区在线播放 | 91精品国产欧美一区二区成人 | 国产一级片久久久 | 日韩一区二区三区av | 午夜a区 | 亚洲色图综合 | 黄网站在线播放 | 国产欧美一区二区三区在线播放 | 久久亚洲精品久久国产一区二区 | 狠狠的干| 亚洲国产精品久久久久 | 精品久久久久久久久久久久久 | 超黄毛片| 久草成人网 | 久久777| 精品成人免费视频 | 欧美成人一区二区三区片免费 | 亚洲视频一区二区三区 | 婷婷在线免费 | 亚洲精品丝袜日韩 | 毛片国产 | 人人色视频 | 婷婷色国产偷v国产偷v小说 | 天堂网色 | 久草.com| 日韩欧美一级精品久久 | 午夜精品久久久久久久久久久久久 | 999观看免费高清www | 亚洲一一在线 | 国产精品一区二区久久精品爱微奶 | 免费成人在线网站 | 色综合久久天天综合网 | 国产精品久久久久久模特 | 欧美激情国产日韩精品一区18 | 欧美日韩高清 |