2022.08.13 - [일등박사의 생각/데이터분석] - [이더리움] Private Block Chain vs Public Block Chain
2022.08.13 - [일등박사의 생각/데이터분석] - [GANACHE] 가나슈 설치하기!!! (Python api 연결준비)
2022.08.14 - [일등박사의 생각/블록체인] - [GETH]API를 활용, PYTHON으로 ganache의 데이터 불러오기!!
지난 포스팅에이어 Python을 활용하여 이더리움 네트워크와 데이터를 주고 받는 법을 연습해보고자합니다!!
쉽게 나만의 Private 이더리움 환경을 구축하고자!
오늘도 GANACHE(가나슈)의 힘을 빌립니다1!
지난 포스팅에서는 Python Request 패키지를 사용했었는데요@
오늘은 이더리움 네트워크에 최적화된!!!
Web3라는 패키지를 사용할 것입니다!!
우선 환경에 pip 로 인스톨이 되어야겠지요!
web3 설치는 참 간단하게 잘되더라구요!^^
pip install web3
설치가 끝났으면 이제 파이썬 환경에서
package를 불러온뒤, 간단히 계정 조회하기를 테스트해봅니다!!
from web3 import Web3
# 가나슈에서 제공되는 주소
BLOCKCHAIN_ADR = "HTTP://127.0.0.1:8545"
### 기존 계정조회하기 USING Web3
w3 = Web3(Web3.HTTPProvider(BLOCKCHAIN_ADR))
w3.eth.accounts
어떄요!?? 계정정보가 잘 불러와지나요!??
가나슈에서 보이는 계정정보가 동일하게 불러와짐을 확인할 수 있습니다.
지난 포스팅의 request를 사용한것과도 똑같구요!
import requests
import json
blockchain_network = "http://127.0.0.1:8545"
res = requests.post(
blockchain_network,
headers = {"Content-Type":"application/json"},
data = '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1}')
json.loads(res.text)
즉 Web3는 이더리움 네트워크에 api Request로 주고받을 데이터를
쉽고 깔끔하게 요약해서 정리한 패키지라고 생각하시면 됩니다!!
그럼 web3를 활용한 몇가지 예시를 더 알아보아요!!
1. 계정 잔고 조회하기!!
from web3 import Web3
BLOCKCHAIN_ADR = "HTTP://127.0.0.1:8545"
### w3로 comnnection 만들기
w3 = Web3(Web3.HTTPProvider(BLOCKCHAIN_ADR))
## accounts 리스트중 가장 마지막에 생성된 지갑의 잔고를 조회한다
w3.eth.getBalance(w3.eth.accounts[-1])
2. WEI에서 ETHER로 단위 변환하기
from web3 import Web3
BLOCKCHAIN_ADR = "HTTP://127.0.0.1:8545"
### w3로 comnnection 만들기
w3 = Web3(Web3.HTTPProvider(BLOCKCHAIN_ADR))
## WEI에서 이더로 단위 변환하기
Web3.fromWei(w3.eth.getBalance(w3.eth.accounts[-1]), 'ether')
3. 채글하기!!
import time
from web3 import Web3
BLOCKCHAIN_ADR = "HTTP://127.0.0.1:8545"
### w3로 comnnection 만들기
w3 = Web3(Web3.HTTPProvider(BLOCKCHAIN_ADR))
## 채굴 5초간 하기
w3.geth.miner.start()
time.sleep(5)
w3.geth.miner.stop()
4. 송금하기
import time
from web3 import Web3
BLOCKCHAIN_ADR = "HTTP://127.0.0.1:8545"
### w3로 comnnection 만들기
w3 = Web3(Web3.HTTPProvider(BLOCKCHAIN_ADR))
## 비번보는법은 위의 사진 참고!!
w3.geth.personal.unlock_account(w3.eth.accounts[1], "9b8acf58aae15520daac7cfd299592bf092c162ad5655c69626c2f4e132e9d8a", duration=None)
w3.eth.send_transaction({
## 마지막 계정에서
'to': w3.eth.accounts[-1],
## 2번쨰 계정으로
'from': w3.eth.accounts[1],
## 1이더 보내기
'value': Web3.toWei(1, 'ether')
})
## 이후 채굴을 해야 거래가 채결됨!!
w3.geth.miner.start()
time.sleep(5)
w3.geth.miner.stop()
이상으로 web3를 활용한 기능들을 알아보았습니다@
이 외에도 어마어마한 기능이 많은데!!
아래의 웹사이트에서 다양한 기능들을 찾아서 사용해볼 수있습니다!^^
https://web3py.readthedocs.io/en/stable/
'블록체인 > [파공이]파이썬으로 공부하는 이더리움(Web3)' 카테고리의 다른 글
[web3]PYTHON web3를 활용하여 Smart Contract 배포하기!!(4) - Token 제작 (0) | 2022.09.25 |
---|---|
[web3]PYTHON web3를 활용하여 Smart Contract 배포하기!!(3) - 데이터 저장 함수 (1) | 2022.08.21 |
[web3]PYTHON web3를 활용하여 Smart Contract 배포하기!!(2) - 더하기 함수 (1) | 2022.08.20 |
[web3]PYTHON web3를 활용하여 Smart Contract 배포하기!!(1) - Hello World 프린트 (0) | 2022.08.17 |
[GETH]API를 활용, PYTHON으로 ganache의 데이터 불러오기!! (0) | 2022.08.14 |
댓글