728x90
온체인데이터분석!!
블록체인의 특징중 하나가 모든 거래내역(원장)이 공개된다는점인데요!
이에 이 공개된 원장을 기반으로 분석을 하는 것을 온체인 데이터 분석이라고 합니다!
이런분석을 통하여 아래와 같은 기사가 나기도하지요!!
https://m.coinreaders.com/98828
이번 포스팅은 이 온체인 데이터 분석의 기본,
블록 내의 Transaction 정보 보기를 알아보겠습니다!
1. 관련 패키지 호출
> 분석에 필요한 패키지들을 호출합니다.
from web3 import Web3
import requests
import json
from decimal import Decimal
ETH_ADR = "https://rpc.ankr.com/eth"
2. 관련 함수선언
> 이더리움의 블록에는 timestamp 형식으로 시간이 저장되어있습니다.
> 이에 서울시간으로 변형하는함수를 만들어줍니다!
from pytz import timezone, utc
def from_timestamp_to_seoul(timestamp):
# Assuming timestamp is in UTC
gmt_minus_9_tz = timezone('Asia/Seoul')
target_format = "%Y%m%d-%H%M%S"
utc_datetime = datetime.datetime.utcfromtimestamp(timestamp)
seoul_datetime = utc_datetime.astimezone(gmt_minus_9_tz)
formatted_date = seoul_datetime.strftime(target_format)
return formatted_date
3. 대상 블록번호를 설정하고, 해당 블록에서 거래정보 추출
### 기존 계정조회하기 USING Web3
web3 = Web3(Web3.HTTPProvider(ETH_ADR))
## 최근 10번째 블록을 대상으로!
block_number = web3.eth.block_number -10
block_number
block = web3.eth.get_block(block_number)
block_time = from_timestamp_to_seoul(block.timestamp)
print("Block Number:", block['number'])
print("Block Time:", block_time)
print("Block Hash:", block['hash'])
print("Transactions in this block:")
for tx_hash in block['transactions']:
tx = web3.eth.get_transaction(tx_hash)
print("Transaction Hash:", tx['hash'])
print("From:", tx['from'])
print("To:", tx['to'])
print("Value:", web3.from_wei(tx['value'], 'ether'), "ETH")
print("Gas Used:", tx['gas'])
print("Gas Price:", web3.from_wei(tx['gasPrice'], 'gwei'), "Gwei")
블록 내의 모든 거래데이터가 잘 추출됨을확인할 수 있습니다~!
728x90
'블록체인 > On Chain Analysis' 카테고리의 다른 글
[On-Chain 데이터분석] ETH 블록 내 Smart Contract 갯수 확인 (feat python, web3) (0) | 2024.02.23 |
---|---|
[On-Chain 데이터분석] 이더리움 네트워크의 가스비 트렌드 확인 (feat python, web3) (0) | 2024.02.21 |
댓글