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

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

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

[[406081]]

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

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

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

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

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

現在我們為什么要使用 Chainlink + Python?正如 Python 是金融科技事實上的編程語言一樣,Chainlink 是將鏈下數據提供給 DeFi 智能合約的事實上的預言機解決方案,目前為頂級 DeFi 協議提供了超過 7B 美元的價值。這兩種技術的結合為去中心化金融科技領域提供了一個安全而強大的框架。

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

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

  1. python --version 

或者,如果使用 python3:   

  1. python3 --version 

您還需要安裝 Ganache。Ganache 是一個用 Python 編寫的一鍵式區塊鏈應用,可讓您輕松啟動本地區塊鏈。盡管您必須使用 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測試網獲得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 

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

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

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

設置環境變量

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

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

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

現在,要使它們成為環境變量,只需在終端中運行以下命令: 

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

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

部署您的智能合約

現在我們已經設置好了一切,我們甚至可以繼續將智能合約部署到 Kovan 測試網!

在我們的腳本文件夾中,我們有一個名為 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中文社區
相關推薦

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

去中心化交易區塊鏈

2023-04-07 15:33:09

2023-10-12 09:05:11

2021-05-11 16:38:36

區塊鏈工具金融

2022-07-06 14:20:05

區塊鏈去中心化金融

2023-10-30 08:00:00

區塊鏈去中心化

2023-09-28 16:15:01

Element XMatrix 2.0

2024-02-29 15:27:10

2023-08-24 16:23:09

2021-02-24 10:02:19

存儲云存儲去中心化存儲

2022-05-13 15:11:24

區塊鏈去中心化dapp

2021-02-05 10:03:31

區塊鏈技術智能

2018-06-19 10:19:02

StorjSiaFilecoin

2014-05-19 10:07:41

Dynamo去中心化

2022-04-26 23:33:33

區塊鏈去中心化數據結構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品福利网站 | 国产精品一区二区不卡 | 一级毛片免费视频观看 | av中文在线 | 在线免费观看黄色 | 久久综合久久自在自线精品自 | 狠狠操狠狠搞 | 国产精品欧美一区二区三区不卡 | 欧美精品国产精品 | 综合色播 | 亚洲美女在线一区 | 成人三级视频 | 日韩在线欧美 | 欧美一级在线观看 | 精品亚洲一区二区三区 | 久久宗合色 | 国产精品久久久久久久岛一牛影视 | 喷潮网站| 欧美激情精品久久久久久变态 | 久久国产99 | 国产一区二区精品在线 | 国产91精品久久久久久久网曝门 | 天天夜夜操 | 国产精品一区视频 | 日本电影韩国电影免费观看 | 中文字幕在线网 | 中文字幕精品一区二区三区精品 | 最新国产精品精品视频 | 亚洲一区精品在线 | 成人免费视屏 | 色欧美综合 | 亚洲av毛片 | a爱视频| 国产一级免费在线观看 | 日韩国产一区二区三区 | 国产精品永久免费视频 | 国产成人高清视频 | 五月天综合网 | 成人在线视频免费看 | 欧美日韩一区二区电影 | 97操操|