如何使用Brownie部署智能合约

  • QuickNode
  • 发布于 2025-01-30 13:25
  • 阅读 24

本文介绍了Brownie框架,该框架是一个Python基础的智能合约开发和测试工具。虽然Brownie目前不再积极维护,建议用户转向Ape框架。文章详细说明了项目的安装、使用和部署过程,包括创建项目目录、安装依赖、设置网络和账户、获取测试ETH以及部署合约的完整步骤,适合对智能合约开发感兴趣的Python开发者。

info

Brownie,一个基于 Python 的智能合约开发和测试框架,已不再积极维护。虽然未来可能会偶尔发布更新,但也可能根本不会发布。建议使用 Ape Framework 来满足你所有的 Python Ethereum 开发需求。请点击这里查看我们的 Ape Framework 指南。如果你有任何问题或需要在过渡到替代解决方案时获得指导,请 联系我们

概述

Python 是最通用的编程语言之一;从研究人员运行测试模型到开发人员在重生产环境中使用它,Python 在各个技术领域都有用例。在今天的指南中,我们将学习 Brownie,这是一款用于编写和部署智能合约的基于 Python 的工具。

先决条件

  • 安装了 Python3
  • Ethereum 节点
  • 文本编辑器
  • 命令行
  • 对 brownies 的热爱

什么是 Brownie?

智能合约开发主要由基于 JavaScript 的库主导,如 web3.jsethers.jsTruffleHardhat。Python 是一种多功能且广泛使用的语言,也可以用于智能合约/web3 开发;web3.py 是一个有力的 Python 库,满足 web3 需求。Brownie 框架构建在 web3.py 之上。

Brownies 是每个人都喜爱的矩形小甜点,但我们今天要讨论的 Brownie 是一个用于开发和测试智能合约的基于 Python 的框架。Brownie 同时支持 Solidity 和 Vyper 合约,甚至通过 pytest 提供合约测试。

为了演示使用 Brownie 编写和部署智能合约的过程,我们将使用 Brownie-mixes,这些是模板项目。具体来说,我们将使用 token mix,这是 ERC-20 实现的模板。

安装依赖

Brownie 建立在 python3 之上,所以我们需要安装 python3 才能使用 brownie;让我们检查系统是否安装了 python3。要做到这一点,在终端/cmd 中输入以下内容:

python3 -V

这应该返回安装的 python3 版本。如果没有安装,请从官方 python 网站 下载并安装。

在安装 brownie 之前,让我们先创建一个项目目录,并将该项目目录作为当前工作目录:

mkdir brownieDemo
cd brownieDemo

现在你系统上已安装 Python3,让我们使用 pip(Python 的包管理器)安装 brownie。Pip 类似于 JavaScript 的 npm。请在终端/cmd 中输入以下内容:

pip3 install eth-brownie
## 如果安装失败,请使用以下命令以获得更好的运气。
sudo pip3 install eth-brownie

要检查 Brownie 是否正确安装,请在终端/cmd 中输入 brownie,它应该给出以下输出:

要获取 token mix,请在终端/cmd 中输入以下内容:

brownie bake token

这将在我们的 brownieDemo 目录中创建一个新目录 token/

文件结构

首先,让我们进入 token 目录:

cd token

现在,在文本编辑器中打开 token 目录。在 contracts/ 文件夹下,你会找到 Token.sol,这是我们的主合约;你可以编写自己的合约或修改此合约。在 scripts/ 文件夹下,你会找到 token.py Python 脚本;此脚本将用于部署合约,根据合约的不同需要进行修改。

该合约是一个 ERC-20 合约;你可以在这个 ERC-20 代币指南 中了解更多关于 ERC-20 标准和合约的信息。

设置你的 QuickNode Ethereum 端点

我们将把合约部署到 Ropsten 测试网,而不是运行自己的节点。注册一个免费的 QuickNode 账户 这里 并创建一个 Ethereum 端点会更方便。在结算过程中确保选择 Ethereum 作为链,Ropsten 作为网络。

Screenshot of Quicknode Ropsten Endpoint

保存 HTTP URL。我们将在下一步中需要它。

网络和账户设置。

我们需要将 QuickNode 端点与 Brownie 配置。为此,请在终端/cmd 中输入以下内容:

brownie networks add Ethereum ropstenquicknode host=YOUR_QUICKNODE_URL chainid=3

YOUR_QUICKNODE_URL 替换为我们在上一步中获得的 Ropsten URL。

在上面的命令中,Ethereum 是环境的名称,ropstenquicknode 是网络的自定义名称;你可以为自定义网络指定任何名称。

接下来,我们需要在 Brownie 中创建一个新钱包。为此,请在终端/cmd 中输入以下内容。系统会要求你为账户设置密码。

brownie accounts generate testac

这将生成一个账户及其助记词,并将其保存在离线。testac 是我们账户的名称。你可以选择任何你喜欢的名称。

注意:助记词可用于恢复账户或将账户导入其他 非托管钱包。你在上面图片中看到的账户是专门为本指南创建的。

复制账户地址,以便我们可以获得一些测试 ETH,这在部署合约时是必需的。

获取测试 ETH

由于我们的合约将部署在 Ropsten 测试网上,我们将需要一些 Ropsten 测试 ETH 以支付 gas 费用。前往 Ropsten 水龙头,将你的地址粘贴在字段中,然后单击“发送我测试 Ether”。

部署我们的合约

在部署合约之前,我们需要使用以下命令编译它:

brownie compile

现在在文本编辑器中打开 scripts/ token.py,并进行以下更改:

#!/usr/bin/3

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 粘贴合约地址来查看已部署的合约。

结论

因此,今天我们了解到 brownies 非常美味,但 Brownie 框架是最好的。我们学习了如何导入 Brownie-mix、添加自定义网络、创建账户、编译和部署合约,并且我们在整个过程中使用了 Brownie!

请订阅我们的 通讯,获取更多关于 Ethereum 的文章和指南。如果你有任何反馈,请随时通过 Twitter 联系我们。你也可以在我们的 Discord 社区服务器上与我们聊天,那里聚集了一些你见过的最酷的开发者 :)

  • 原文链接: quicknode.com/guides/oth...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。