Rumah > Artikel > pembangunan bahagian belakang > Pembangunan Web3 Python: Menggunakan Kontrak Pintar dengan 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.
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.
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:
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/.
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.
Kontrak ini ialah kontrak ERC-20.
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.
Simpan URL HTTP. Kami akan memerlukannya dalam langkah seterusnya.
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.
Salin alamat akaun supaya kami boleh mendapatkan beberapa ETH untuk ujian, yang diperlukan untuk menggunakan kontrak kami.
由于我们的合约将被部署在Ropsten测试网,我们需要一些Ropsten测试ETH来支付gas费。前往Ropsten水龙头,将您的地址粘贴在该区域,然后点击 "Send me test Ether"。
在部署合约之前,我们需要用以下方法编译它。
brownie compile
现在在你的文本编辑器中打开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测试网上部署的地址。
你可以在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!