파이썬 web3 모듈

파이썬의 web3 모듈을 사용하면

이더리움 블록체인에서 스마트 컨트랙의

정보를 읽어올 수 있습니다.

 

이 튜토리얼에서는 이더리움의

메인넷에 접속하여 ERC20 토큰의

스마트 컨트랙 정보를 읽어오는 것 까지

실행해보겠습니다.

 

블록체인 자체가 또 하나의 인터넷이니까

약간 웹스크래핑과 닮은 구석이 있습니다.

 

블록체인의 네트워크 작동 원리는

꽤나 복잡하지만 역시 파이썬 모듈을

사용하면 편리하게 접속할 수 있습니다.

 

Infura

 

 

이더리움 API를 사용하려면 Infura에

가입을 해서 메인넷 url 을 생성해야 합니다.

 

Ethereum API | IPFS API & Gateway | ETH Nodes as a Service | Infura

 

Ethereum API | IPFS API & Gateway | ETH Nodes as a Service | Infura

Infura's development suite provides instant, scalable API access to the Ethereum and IPFS networks. Connect your app to Ethereum and IPFS now, for free!

infura.io

Infura 는 전세계에 있는 이더리움 네트워크에

접속하기 위한 게이트웨이(대문)이라고 보면 됩니다.

 

이더리움 API 리퀘스트를 보내는 것은 

물론 공짜는 아닙니다. 이더리움 API를

사용한 웹사이트를 운영하기 위해서는

유료 플랜에 가입해야 될겁니다.

 

다만 기본 플랜인 Core의 경우

3개 프로젝트에 10만개/일 의 요청이

가능하기 때문에 학습이나 테스트를

하기에는 적당합니다.

 

일단 학습용이면 유료 결제를 할

필요는 없을 것 같습니다.

 

Infura에 가입후 아래 이미지의

우측 상단에 있는 Create New Project를

만들겠습니다.

 

이름 NAME만 입력하면

프로젝트가 생성됩니다.

 

Infura 프로젝트
Infura 프로젝트

가운데 KEYS 항목에서

ENDPOINTS를 Mainnet 으로 하고

URL 주소를 복사합니다.

 

이는 앞으로 Infura를 통해서

이더리움 기반 블록체인에 접속할 때

필요한 주소입니다.

 

web3 모듈 설치

pip install web3

pip 명령어로 설치합니다.

 

첫번째 블록체인 프로그램

일단은 블록체인에 접속이 잘되는지

확인을 하도록 하겠습니다.

 

아까 위에서 받은 인퓨라의 메인넷

접속주소를 사용할 것 입니다.

 

from web3 import Web3

infura_url = "메인넷 URL"
web3 = Web3(Web3.HTTPProvider(infura_url))
print("- Connection : ", web3.isConnected())

print("- Current Block No.: ", web3.eth.block_number)
balance = web3.eth.getBalance("이더리움 지갑주소")
print("- balance : ", balance)
- Connection :  True
- Current Block No.:  12582264
- balance :  0

block_number 는 현재 이더리움의 블록번호를 말합니다.

 

이 번호는 epic time과 마찬가지로

앞으로 증가하기만 하죠.

 

그리고 이더리움 지갑주소는

어차피 공개키이고 공개되있기 때문에

다른 사람들 지갑을 확인하는 것도 가능한데요.

(블록체인은 공개 장부라 코인이 얼마나

들어있는지도 확인이 가능함)

 

앱을 만들면서 사용할 수 있는

자기 자신의 지갑주소를 만들어두는게 좋습니다.

 

이더리움 지갑은 메타마스크를

사용해서 만들 수 있습니다.

 

Metamask의 설치와 가입은 아래와 같습니다.

 

Metamask 설치와 가입하기 - 암호화폐 이더리움 지갑 Crypto Ethereum Wallet

 

Metamask 설치와 가입하기 - 암호화폐 이더리움 지갑 Crypto Ethereum Wallet

Meatmask Metamask - 메타마스크는 이더리움 지갑입니다. 블록체인계의 기축통화라고 할 수 있는 이더리움을 보내거나 받을 수 있으며 구매도 가능하고 다양한 토큰으로 스왑 할 수 있는 이더리움 브

digiconfactory.tistory.com

결과창을 다시 보면 첫번째로 connection 이

True 인지 확인하는 것이 있고요.

True 면 접속된거고 False 면 접속안된겁니다.

 

그 다음 이더리움의 최신 블록을 가져옵니다.

Etherscan 사이트에 가면 최신 정보를 볼 수 있습니다.

최신의 정보와 일치하는지 확인합니다.

 

- Connection :  True
- Current Block No.:  12582264
- balance :  0

 

그 다음 balance 는 0입니다.

아무것도 안들어있는 지갑을 막 생성한 후

잔고를 확인해봤습니다.

 

이 지갑에 이더리움을 전송했다면

잔고가 표시되야 합니다.

 

여기까지가 블록체인으로 접속하는 것 까지 입니다.

 

뭐 간단하지만 시작이 반이라고

생각해야 겠습니다.

 

다음 포스팅에서는 이더리움 기반

ERC20 토큰의 스마트 컨트랙에 접속해서

정보를 가져오는 코드를 작성해보겠습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band