Brownie Web3 — разработка смарт-контрактов Ethereum с использованием Python
Поделитесь базовыми знаниями о Brownie Web3 и расскажите, как использовать его для разработки смарт-контрактов Ethereum, развернутых на блокчейне.
Для разработчиков смарт-контрактов Web3.0 Brownies значительно упрощает разработку, импорт, тестирование и отладку смарт-контрактов, развернутых в сети блокчейна Ethereum. Более того, это облегчает настройку транзакций, методов и переменных для взаимодействия с Ethereum.
После этого я пройдусь по базовым знаниям о Brownie и расскажу, как использовать Brownie для разработки смарт-контрактов Ethereum и развертывания их в сети блокчейна.
Brownie Web3.0 — ингредиенты для разработки смарт-контрактов Ethereum, взаимодействующих с криптовалютной сетью
Brownie, Python, Infura, os, Ganache, MetaMask, тестовая сеть ETH Goerli
Содержание
- Что такое Брауни
- Активируйте Brownie и установите Ganache Local Blockchain.
- Создайте первый смарт-контракт и разверните его в интерфейсе командной строки Ganache.
- Добавьте новую учетную запись и подключение к реальной тестовой сети.
- Тестируйте и отлаживайте свои смарт-контракты
- Консоль Brownie для любого специального функционального тестирования и разработки
- Полный скрипт Python для Brownie Web3.0 — разработка смарт-контрактов и активация взаимодействия с ETH с использованием Brownie и Python
Что такое Брауни
Brownie — это удобный и простой в использовании фреймворк для разработки смарт-контрактов Ethereum. Основное значение из объема его функций имеет 3 аспекта:
Разверните смарт-контракты, необходимые в сетях блокчейна.
Создавайте различные типы и цели смарт-контрактов и развертывайте их в блокчейне, таком как Ethereum. И вы можете создавать и инициировать любые транзакционные элементы, которые имеют значение во взаимодействии с блокчейном.
Взаимодействие со смарт-контрактами
Платформа Brownie и путь к папке облегчают вам написание сценариев или использование консоли Brownie для взаимодействия со смарт-контрактами, развернутыми в основной сети. Или вы можете реализовать UAT в локальной среде блокчейна, например: Ganache.
Протестируйте разрабатываемые смарт-контракты
Brownie предоставляет быструю, удобную и простую в использовании среду тестирования разработки смарт-контрактов и соответствующие функции для реализации теста. Например, вы можете получить подробную информацию, когда транзакция отменяется, чтобы помочь вам быстро определить проблему.
Активируйте Brownie и установите Ganache Local Blockchain.
Шаг 1: Установка Брауни
Возьмем, к примеру, среду MacOS. Прежде всего, нам нужно установить визуальную среду для Brownie, введя в терминале строку кодов, как показано ниже.
Python3 -m pip install –user pipx
Python3 -m pipx ensure path
После завершения установки обязательно закройте терминал во избежание конфликта или активируйте визуальную среду.
Затем введите следующую строку кодов, чтобы установить Brownie.
Pips install eth-brownie
Чтобы проверить, установили ли вы его на свой Mac, мы можем ввести команду проверки, которая аналогична любой другой проверке пакетов.
Шаг 2: Создайте первую папку сценария Brownie и проект
Я предполагаю, что вы создали новую папку в своем программном обеспечении для кодирования, например: Visual Studio Code. Теперь мы можем попробовать создать новый проект домового. Вот код для инициации следующим образом:
Brownie init
После того, как инициация завершена, а также реакция на установку, папка Brownie по умолчанию содержит список папок. Это папки, которые выполняют следующие функции:
- Строить
- Контракты
- Интерфейсы
- Отчеты
- Скрипты
- Тесты
Шаг 3: Установите локальный Ganache Cli
Brownie по умолчанию работает с интерфейсом командной строки Ganache в терминале, который представляет собой локальную визуальную среду блокчейна. В нашей предыдущей статье скрипт напрямую подключался к версии веб-интерфейса. На этот раз нам нужно установить Ganache CLI.
- Загрузите
node.js
(вот версия для macOS) и установите его на устройство. - Команда:
npm install –global yarn
. Нам нужно установить пряжу, которая представляет собой менеджер пакетов, который фактически позволяет нам загружать части и пакеты, такие как интерфейс командной строки Ganache. Обязательно добавьтеsudo
если ваше устройство может ответить, что у вас нет разрешения на установку пряжи. - Установите Ganache CLI с помощью команд:
yarn global add ganache-cli
. Опять же, обязательно добавьтеsudo
если ваше устройство снова отклонит запрос.
Создайте первый смарт-контракт и разверните его в интерфейсе командной строки Ganache.
Добавьте смарт-контракт
В папках контрактов Brownie вы должны сохранить файл смарт-контракта, например easy2digitalStore.sol
. После того, как вы добавите файл в эту папку, вы можете ввести эту строку кода следующим образом:
Brownie compile
После компиляции данного файла sol вы можете увидеть всю скомпилированную информацию, сохраненную в папке сборки в папке контракта, в формате JSON.
Развертывание в блокчейне ETH
Прежде всего, нам нужно создать новый файл Python в папке скрипта.
Deployment.py
В скрипте нам нужно использовать один метод брауни, который называется accounts()
, который предназначен для взаимодействия с локальной визуальной цепочкой блоков, Ganache CLI. Вот примеры кода:
Import brownie import accounts
def single_contract():
localGanacheAccount = accounts[0]
print(localGanacheAccount)
Def main():
single_contracct()
И мы можем использовать брауни для активации скрипта Python в терминале.

Добавьте новую учетную запись и подключитесь к реальной тестовой сети.
Мы можем создать новую учетную запись вместо использования Ganache CLI. Вот как команда, так и код:
В терминале:
Brownie accounts new easy2digitalAccount-account
Затем вам нужно добавить закрытый ключ для этой новой учетной записи. Мы можем скопировать закрытый ключ MetaMask и вставить его сюда.
И последнее, но не менее важное: Брауни зашифрует ваш закрытый ключ с помощью пароля. Таким образом, просто введите пароль, как вам нравится.
Если вы попытаетесь запустить метод load для поиска новой учетной записи, которую вы только что создали, результат будет выглядеть следующим образом:
Подключиться к реальной тестовой сети
Brownie предоставляет список заявленных сетей. Если вы хотите проверить, просто введите в терминал список сетей.

В предыдущей статье мы использовали Infura в качестве сторонней платформы для подключения к Ethereum. Так что здесь мы также будем использовать INFURA.
Прежде всего, нам нужен протокол HTTP-провайдера от INFURA. В Домовом у нас есть метод соединения с Инфурой. Пожалуйста, добавьте это в .env
WEB3_INFURA_PROJECT_ID = your infura http endpoint unique ID.
Затем, вместо получения учетной записи из CLI Ganache, теперь нам нужно получить учетную запись из вашей тестовой сети MetaMask goerli.
Добавьте закрытый ключ, который вы хотите добавить, например кошелек MetaMask. Обязательно добавьте 0x перед закрытым ключом MetaMask. Здесь нам нужно сделать три вещи
- Создайте функцию get_account, которая будет получать информацию о закрытом ключе кошелька MetaMask.
- Добавьте файл
brownie-config.yaml
в папку основного каталога для подключения к .env, который включает закрытый ключ и уникальный идентификатор конечной точки INFURA. - Замените account[0] на get_account() в сценарии тестирования Ganache Cli.
Наконец, нам нужно сообщить Infura, какую тестовую сеть ETH будет использовать скрипт Python. Как мы использовали goerili в предыдущей статье, здесь используйте тот же, введя команду в терминале
Brownie run scripts/deployment.py –network goerli
После подключения вы можете перейти в раздел развертывания в папке сборки, там будет создан JSON-файл карты.
Тестируйте и отлаживайте свои смарт-контракты
Одной из мощных функций Brownie должна быть тестовая среда. Разработчики смарт-контрактов могут внедрить UAT и исправить ошибки перед запуском.
Давайте создадим скрипт точно так же, как скрипт deployment.py, который мы создали в тестовой папке.
Во-первых, Brownie очень удобен, потому что он позволяет разработчикам напрямую импортировать смарт-контракт в скрипт Python.
Вот пример кода:
From brownie import easy2idigitalContract, accounts
Таким образом, мы можем напрямую использовать имя контракта с методом deploy()
для развертывания учетной записи в блокчейне. Например:
Def test_deployment():
##Arrange a specific smart contract address
walletAccount = accounts[0]
##Deploy the contract to the account
Single_contract = easy2idigitalContract.deploy({“from”: walletAccount})
Starting_value = single_contract.retrieve()
Во-вторых, поскольку это тест, нам нужно проверить, равно ли полученное значение ожидаемому значению, которым оно должно быть. Итак, вот пример кодов следующим образом:
Expected == 0
Assert starting_value == expected
Затем введите команду в терминал, чтобы увидеть, равно ли значение. Если результат пройден, он будет показан зеленым цветом.
Brownie test

Консоль Brownie для любого специального функционального тестирования и разработки
Для тестирования скрипта, если вы хотите создать оболочку или консоль для тестирования и запуска скрипта. Вы можете попробовать ввести код следующим образом, где вы можете напрямую обновить скрипт и распечатать его, чтобы сразу получить результат.
Brownie test –pdb
Полный скрипт Python для Brownie Web3.0 — разработка смарт-контрактов и активация взаимодействия с ETH с использованием Brownie и Python
Если вас интересует учебник 3 по Web3.0 — Brownie в Web3.0 — разработка смарт-контрактов Ethereum, взаимодействующих с криптовалютной сетью с использованием Brownie и Python, пожалуйста , подпишитесь на нашу рассылку , добавив сообщение «Учебник Web3.0 3» . Мы отправим вам сценарий немедленно на ваш почтовый ящик.
Надеюсь, вам понравится читать учебник 3 по Web3.0 — Brownie в Web3.0 — Разработка смарт-контрактов Ethereum Взаимодействие с криптовалютной сетью с использованием Brownie и Python Если да, поддержите нас, выполнив одно из действий, перечисленных ниже, потому что это всегда помогает наш канал.
- Поддержите и пожертвуйте мой канал через PayPal ( paypal.me/Easy2digital )
- Подпишитесь на мой канал и включите колокольчик уведомлений канала Easy2Digital Youtube .
- Подписывайтесь и лайкайте мою страницу Страница Easy2Digital в Facebook
- Поделитесь статьей в своей социальной сети с хэштегом #easy2digital
- Вы подписываетесь на нашу еженедельную рассылку, чтобы получать последние статьи, видео и коды скидок Easy2Digital.
- Подпишитесь на наше ежемесячное членство через Patreon, чтобы пользоваться эксклюзивными преимуществами ( www.patreon.com/louisludigital )