Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembangunan Web3 Python: Menggunakan Kontrak Pintar dengan Brownie

Pembangunan Web3 Python: Menggunakan Kontrak Pintar dengan Brownie

WBOY
WBOYke hadapan
2023-05-19 17:34:061834semak imbas

Python Web3 开发:用 Brownie 部署智能合约

Python ialah salah satu bahasa pengaturcaraan yang paling serba boleh: daripada penyelidik menjalankan model ujian mereka kepada pembangun yang menggunakannya dalam persekitaran pengeluaran yang berat, dalam hampir setiap domain teknologi yang mungkin Terdapat kes penggunaan. Dalam panduan hari ini, kita akan melihat Brownie, alat berasaskan Python untuk menulis dan menggunakan kontrak pintar.

Sediakan

  • Pasang Python3
  • Nod Ethereum
  • Editor Teks
  • Terminal

Apa itu Brownie?

Pembangunan kontrak pintar didominasi terutamanya oleh perpustakaan berasaskan JavaScript, seperti web3.js, ethers.js, Truffle dan Hardhat. Python ialah bahasa tujuan umum yang sangat digunakan yang juga boleh digunakan untuk pembangunan kontrak pintar/web3.py ialah perpustakaan Python yang menarik yang memenuhi keperluan web3. Rangka kerja Brownie dibina di atas web3.py.

Brownie pada asalnya merujuk kepada gula-gula kecil segi empat tepat, tetapi Brownie yang kita bincangkan hari ini ialah rangka kerja berasaskan Python untuk membangun dan menguji kontrak pintar. Brownie menyokong kedua-dua kontrak Solidity dan Vyper, malah ia boleh menyediakan ujian kontrak melalui pytest.

Untuk menunjukkan proses menulis dan menggunakan kontrak pintar dengan Brownie, kami akan menggunakan Brownie-mixes, iaitu projek templat. Khususnya, kami akan menggunakan campuran token, yang merupakan templat untuk pelaksanaan ERC-20.

Pasang pakej pergantungan

Brownie dibina pada python3, jadi kami perlu memasangnya untuk berfungsi dengan brownie, mari semak sama ada python3 dipasang pada sistem kami. Untuk melakukan ini, masukkan yang berikut ke dalam terminal/cmd anda.

python3 -V

Arahan ini akan mengembalikan versi python3 yang dipasang. Jika ia tidak dipasang, sila muat turun dan pasang dari laman web rasmi python.

Biar kami mencipta direktori projek sebelum memasang brownie dan menjadikan direktori projek sebagai direktori kerja semasa kami.

mkdir brownieDemo
cd brownieDemo

Sekarang anda telah memasang python3 pada sistem anda, mari pasang brownie menggunakan pip, pengurus pakej Python. pip adalah serupa dengan apa yang npm lakukan untuk JavaScript. Taip yang berikut ke dalam terminal/cmd anda:

pip3 install eth-brownie
## If the install failS, use the following command for better luck.
sudo pip3 install eth-brownie

Untuk menyemak sama ada Brownie dipasang dengan betul, taip brownie ke dalam terminal/cmd anda dan ia sepatutnya memberikan output berikut:

Python Web3 开发:用 Brownie 部署智能合约

Untuk mendapatkan campuran token, masukkan yang berikut ke dalam terminal/cmd anda:

brownie bake token

Ini akan mencipta yang baharu dalam token Direktori direktori brownieDemo kami/.

Struktur fail

Mula-mula, biarkan kami memasukkan cd ke dalam direktori token.

cd token

Sekarang, buka direktori token dalam editor teks anda. Di bawah kontrak/ folder anda akan menemui Token.sol, yang merupakan kontrak utama kami, anda boleh menulis kontrak anda sendiri atau mengubah suai ini. Di bawah skrip/ folder, anda akan menemui skrip token.py skrip ini akan digunakan untuk menggunakan kontrak dan perlu diubah suai mengikut kontrak.

Python Web3 开发:用 Brownie 部署智能合约

Kontrak ini ialah kontrak ERC-20.

Mulakan nod Ethereum kami

Kami akan menggunakan kontrak kami pada testnet Ropsten dan bukannya menjalankan nod kami sendiri. Sila pastikan untuk memilih Ethereum sebagai rantaian dan Ropsten sebagai rangkaian semasa pembayaran.

Python Web3 开发:用 Brownie 部署智能合约

Simpan URL HTTP. Kami akan memerlukannya dalam langkah seterusnya.

Tetapan Rangkaian dan Akaun

Kami perlu menyediakan nod percuma QuickNode dalam Brownie. Untuk melakukan ini, masukkan yang berikut ke dalam terminal/cmd anda.

brownie networks add Ethereum ropstenquicknode host=YOUR_QUICKNODE_URL chainid=3

Ganti YOUR_QUICKNODE_URL dengan RopstenURL yang kami dapat pada langkah sebelumnya.

Dalam arahan di atas, Ethereum ialah nama persekitaran dan ropstenquicknode ialah nama tersuai bagi rangkaian anda boleh memberikan sebarang nama kepada rangkaian tersuai anda.

Perkara seterusnya yang perlu kita lakukan di sini ialah mencipta dompet baharu menggunakan Brownie. Untuk melakukan ini, masukkan yang berikut ke dalam terminal/cmd anda. Anda akan diminta untuk menetapkan kata laluan untuk akaun anda.

brownie accounts generate testac

Ini akan menjana akaun dan frasa yang tidak dapat dilupakan dan menyimpannya di luar talian. Nama testac ialah nama akaun kami. Anda boleh memilih mana-mana nama yang anda mahu.

Python Web3 开发:用 Brownie 部署智能合约

Salin alamat akaun supaya kami boleh mendapatkan beberapa ETH untuk ujian, yang diperlukan untuk menggunakan kontrak kami.

获取ETH测试币

由于我们的合约将被部署在Ropsten测试网,我们需要一些Ropsten测试ETH来支付gas费。前往Ropsten水龙头,将您的地址粘贴在该区域,然后点击 "Send me test Ether"。

Python Web3 开发:用 Brownie 部署智能合约

部署我们的合约

在部署合约之前,我们需要用以下方法编译它。

brownie compile

Python Web3 开发:用 Brownie 部署智能合约

现在在你的文本编辑器中打开scripts/token.py,并做如下修改。

#!/usr/bin/python3
from brownie import Token, accounts
def main():
acct = accounts.load('testac')
return Token.deploy("Test Token", "TST", 18, 1e21, {'from': acct})

第6行。我们添加这一行是为了导入我们先前创建的testac账户,并将其存储在acct变量中。

第7行。在这一行,我们编辑了 'From':部分,以获取我们的acct变量。

最后,我们将使用脚本(这里是 scripts/token.py)部署我们的合约。

brownie run token.py --network ropstenquicknode

在上面的命令中,ropstenquicknode是我们之前创建的自定义网络的名称。提示将要求你提供我们之前在建立账户时设置的密码。运行上述命令后,你必须得到交易哈希值,Brownie将等待交易得到确认。一旦交易被确认,它将返回我们的合约在Ropsten测试网上部署的地址。

Python Web3 开发:用 Brownie 部署智能合约

你可以在Ropsten etherscan复制粘贴合约地址,查看已部署的合约。

总结

我们学会了如何导入一个Brownie-mix,添加一个自定义网络,创建一个账户,以及编译和部署一个合约,整个过程中我们都使用了Brownie框架。

Atas ialah kandungan terperinci Pembangunan Web3 Python: Menggunakan Kontrak Pintar dengan Brownie. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam