Brownie Web3 – Python을 사용하여 Ethereum 스마트 계약 개발

Brownie Web3에 대한 기본 지식을 공유하고 이를 사용하여 블록체인에 배포된 Ethereum 스마트 계약을 개발하는 방법을 확장합니다.

Web3.0 스마트 계약 개발자의 경우 Brownies는 Ethereum 블록체인 네트워크에 배포된 스마트 계약을 훨씬 쉽게 개발, 가져오기, 테스트 및 디버그할 수 있도록 합니다. 또한 Ethereum과 상호 작용할 트랜잭션, 메서드 및 변수를 쉽게 설정할 수 있습니다.

그 이후로 브라우니에 대한 기본 지식을 살펴보고 브라우니를 사용하여 이더리움 스마트 계약을 개발하고 블록체인 네트워크에 배포하는 방법에 대해 확장할 것입니다.

Brownie Web3.0 – 암호화폐 네트워크와 상호 작용하는 이더리움 스마트 계약을 개발하기 위한 요소

브라우니, Python, Infura, os, Ganache, MetaMask, ETH Goerli 테스트 네트워크

내용의 테이블

브라우니가 뭐야

Brownie는 Ethereum 스마트 계약을 개발하기 위한 친숙하고 사용하기 쉬운 프레임워크입니다. 기능 범위의 주요 가치에는 3가지 측면이 있습니다.

블록체인 네트워크에 필요한 스마트 계약 배포

스마트 계약의 다양한 유형과 목적을 생성하고 Ethereum과 같은 블록체인에 배포합니다. 또한 블록체인과의 상호 작용에 중요한 모든 트랜잭션 요소를 생성하고 시작할 수 있습니다.

스마트 계약과 상호 작용

브라우니 프레임워크 및 폴더 경로를 통해 스크립트를 작성하거나 브라우니 콘솔을 사용하여 메인넷에 배포된 스마트 계약과 상호 작용할 수 있습니다. 또는 로컬 블록체인 환경에서 UAT를 구현할 수 있습니다. 예: Ganache

개발 중인 스마트 계약 테스트

브라우니는 빠르고 친숙하며 사용하기 쉬운 스마트 컨트랙트 개발 테스트 환경과 테스트 구현을 위한 관련 기능을 제공합니다. 예를 들어 트랜잭션이 복구될 때 문제를 신속하게 파악하는 데 도움이 되는 자세한 정보를 얻을 수 있습니다.

브라우니 활성화 및 가나슈 로컬 블록체인 설치 설치

1단계: 브라우니 설치

예를 들어 MacOS 환경을 살펴보겠습니다. 먼저 터미널에 다음과 같이 코드를 입력하여 브라우니의 비주얼 환경을 설치해야 합니다.

Python3 -m pip install –user pipx

Python3 -m pipx ensure path

설치가 완료되면 충돌을 피하거나 시각적 환경을 활성화하기 위해 반드시 터미널을 닫으십시오.

그런 다음 다음과 같이 코드 줄을 입력하여 브라우니를 설치하십시오.

Pips install eth-brownie

Mac에 설치했는지 확인하려면 다른 패키지 검사와 동일한 검사기 명령을 입력할 수 있습니다.

2단계: 첫 번째 Brownie 스크립트 폴더 및 프로젝트 생성

코딩 소프트웨어에 새 폴더(예: Visual Studio Code)를 만들었다고 가정합니다. 이제 새로운 브라우니 프로젝트를 만들 수 있습니다. 시작 코드는 다음과 같습니다.

Brownie init

시작과 반응 설치가 완료되면 Brownie 폴더에 기본적으로 폴더 목록이 나타납니다. 다음과 같이 기능이 다른 폴더입니다.

  • 짓다
  • 계약
  • 인터페이스
  • 보고서
  • 스크립트
  • 테스트

3단계: 로컬 Ganache Cli 설치

브라우니는 기본적으로 로컬 블록체인 시각적 환경인 터미널의 Ganache CLI와 함께 작동합니다. 이전 기사에서 스크립트는 웹 UI 버전에 직접 연결됩니다. 이번에는 Ganache CLI를 설치해야 합니다.

  • node.js (여기에 macOS 버전이 있음)를 다운로드하고 장치에 설치합니다.
  • 명령: npm install –global yarn . 우리는 실제로 Ganache CLI와 같은 조각과 패키지를 다운로드할 수 있게 해주는 패키지 관리자인 yarn을 설치해야 합니다. 장치가 Yarn 설치 권한이 없다고 응답할 수 있는 경우 sudo 추가해야 합니다.
  • 다음 명령을 사용하여 Ganache CLI를 설치하십시오: yarn global add ganache-cli . 다시 말하지만 장치가 다시 거부하면 sudo 추가해야 합니다.

첫 번째 스마트 계약을 생성하고 이를 Ganache CLI에 배포합니다.

스마트 계약 추가

Brownie의 계약 폴더에는 easy2digitalStore.sol 과 같은 스마트 계약 파일을 저장하는 것이 있습니다. 이 폴더 아래에 파일을 추가한 후 다음과 같이 이 코드 줄을 입력할 수 있습니다.

Brownie compile

주어진 sol 파일을 컴파일하면 contract 폴더의 build 폴더 아래에 JSON 형식으로 저장된 컴파일된 모든 정보를 볼 수 있습니다.

ETH 블록체인에 배포

먼저 스크립트 폴더 아래에 새 Python 파일을 만들어야 합니다.

Deployment.py

스크립트에서 로컬 비주얼 블록체인인 Ganache CLI와 상호 작용하기 위한 하나의 브라우니 메서드인 accounts() 사용해야 합니다. 코드 샘플은 다음과 같습니다.

Import brownie import accounts

def single_contract():

localGanacheAccount = accounts[0]

print(localGanacheAccount)

Def main():

single_contracct()

그리고 브라우니 실행을 사용하여 터미널에서 파이썬 스크립트를 활성화할 수 있습니다.

새 계정을 추가하고 실제 테스트 네트워크에 연결

Ganache CLI를 사용하는 대신 새 계정을 만들 수 있습니다. 다음은 명령과 코드입니다.

터미널에서:

Brownie accounts new easy2digitalAccount-account

그런 다음 이 새 계정에 대한 개인 키를 추가해야 합니다. MetaMask 개인 키를 복사하여 여기에 붙여넣을 수 있습니다.

마지막으로 브라우니는 암호를 사용하여 개인 키를 암호화합니다. 따라서 원하는 대로 비밀번호를 입력하면 됩니다.

방금 만든 새 계정을 조회하기 위해 load 메서드를 사용하여 실행하려고 하면 다음과 같은 결과가 나타납니다.

실제 테스트 네트워크에 연결

Brownie는 선언된 네트워크 목록을 제공합니다. 확인을 원하시면 터미널에 브라우니 네트워크 목록 명령어를 입력하시면 됩니다.

이전 기사에서는 이더리움에 연결하기 위해 Infura를 타사 플랫폼으로 사용했습니다. 따라서 여기에서도 INFURA를 사용합니다.

먼저 INFURA의 HTTP 공급자 프로토콜이 필요합니다. 브라우니에는 Infura와 연결하는 방법이 있습니다. 이것을 .env에 추가하십시오

WEB3_INFURA_PROJECT_ID = your infura http endpoint unique ID.

그런 다음 Ganache CLI에서 계정을 가져오는 대신 이제 MetaMask goerli 테스트 네트워크에서 계정을 가져와야 합니다.

MetaMask 지갑과 같이 추가하려는 개인 키를 추가하십시오. MetaMask 개인 키 앞에 0x를 추가해야 합니다. 여기서 우리는 세 가지 일을 해야 합니다.

  • MetaMask 지갑 개인 키 정보를 가져올 get_account 함수를 만듭니다.
  • 기본 디렉터리 폴더에 brownie-config.yaml 파일을 추가하여 개인 키와 INFURA 엔드포인트 고유 ID가 포함된 .env로 연결합니다.
  • Ganache Cli 테스트 스크립트에서 account[0]을 get_account()로 바꾸십시오.

마지막으로 Python 스크립트가 사용할 ETH 테스트 네트워크를 Infura에 알려야 합니다. 이전 기사에서 goerili를 사용했듯 여기서는 터미널에 명령어를 입력하여 같은 것을 사용한다.

Brownie run scripts/deployment.py –network goerli

연결되면 build 폴더 아래의 배포 섹션으로 이동하면 지도 JSON 파일이 생성됩니다.

스마트 계약 테스트 및 디버그

브라우니의 강력한 기능 중 하나는 테스트 환경일 것입니다. 스마트 계약 개발자는 UAT를 구현하고 실행하기 전에 버그를 수정할 수 있습니다.

테스트 폴더에 생성한 deployment.py 스크립트와 마찬가지로 스크립트를 생성해 보겠습니다.

먼저 브라우니는 개발자가 스마트 계약을 파이썬 스크립트로 직접 가져올 수 있기 때문에 매우 편리합니다.

코드 샘플은 다음과 같습니다.

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 test –pdb

Brownie Web3.0의 전체 Python 스크립트 – Brownie 및 Python을 사용하여 스마트 계약 개발 및 ETH와의 상호 작용 활성화

Web3.0 튜토리얼 3 – Brownie in Web3.0 – Develop Ethereum Smart Contracts Interacting with Cryptocurrency Network Using Brownie and Python, "Web3.0 튜토리얼 3"이라는 메시지를 추가하여 뉴스레터를 구독 하십시오. . 귀하의 사서함으로 스크립트를 즉시 보내드립니다.

Web3.0 튜토리얼 3 – Brownie in Web3.0 – Develop Ethereum Smart Contracts Interacting with Cryptocurrency Network Using Brownie and Python을 읽어 보시기 바랍니다. 그렇게 했다면 아래 나열된 작업 중 하나를 수행하여 지원해 주십시오. 우리 채널.

  • PayPal( paypal.me/Easy2digital )을 통해 내 채널을 지원하고 기부하세요.
  • 제 채널 구독하시고 알림벨을 켜주세요 Easy2Digital 유튜브 채널 .
  • 내 페이지 팔로우 및 좋아요 Easy2Digital Facebook 페이지
  • #easy2digital 해시태그를 사용하여 소셜 네트워크에 기사를 공유하세요.
  • Easy2Digital 최신 기사, 비디오 및 할인 코드를 받으려면 주간 뉴스레터에 가입하십시오.
  • 독점적인 혜택을 누리려면 Patreon을 통해 월간 멤버십을 구독하세요( www.patreon.com/louisludigital ).