📅  最后修改于: 2023-12-03 14:48:44.286000             🧑  作者: Mango
本文介绍了如何获取以太坊主要区块信息和交易记录,使用的是 BlockCypher 的 API。API 接口为 https://api.blockcypher.com/v1/eth/main/blocks/{block_hash_or_height}?txstart={txstart}&limit={limit}
。
https://api.blockcypher.com/v1/eth/main/blocks/{block_hash_or_height}?txstart={txstart}&limit={limit}
,其中:
{block_hash_or_height}
是以太坊区块的哈希值或块号。{txstart}
是可选的,表示页码,默认为 0。{limit}
是可选的,表示每页显示的交易项数量,默认为 20。GET
hash
:string,区块的哈希值。height
:integer,区块的高度。total
:integer,区块中交易的总数量。fees
:integer,区块中所有交易的手续费之和。size
:integer,区块数据大小。ver
:integer,区块版本号。prev_block
:string,前一区块的哈希值。next_block
:string,后一区块的哈希值。time
:string,区块创建时间戳。received_time
:string,区块被 BlockCypher 服务器接收的时间戳。bits
:integer,区块难度。nonce
:integer,区块 nonce 值。n_tx
:integer,区块中交易的数量。tx
:array,交易数组。交易数组:
hash
:string,交易的哈希值。block_height
:integer,交易所在区块的高度。block_index
:integer,交易在所在区块中的索引。inputs
:array,输入数组。outputs
:array,输出数组。confirmations
:integer,交易被确认的次数。输入数组:
prev_hash
:string,上一笔交易的哈希值。output_index
:integer,上一笔交易的所在输出的索引。script
:string,交易签名 Script。output_value
:integer,上一笔交易的输出数量。输出数组:
value
:integer,输出数量。script
:string,输出的 Script。import requests
import json
# 以太坊主网的 API 接口地址
url = "https://api.blockcypher.com/v1/eth/main/blocks/b83ac85e42af87b8100bb1d653288e7649feb4b55fa6a1f9505c56e8f8b12025?txstart=20&limit=20"
# 发送 GET 请求,获取 JSON 格式数据
response = requests.get(url)
data = json.loads(response.text)
# 打印区块信息
print("区块哈希值:", data["hash"])
print("区块高度:", data["height"])
print("区块中交易的总数量:", data["total"])
# 打印交易信息
for tx in data["tx"]:
print("交易哈希值:", tx["hash"])
print("交易所在区块的高度:", tx["block_height"])
print("交易输入数量:", len(tx["inputs"]))
print("交易输出数量:", len(tx["outputs"]))
区块哈希值: b83ac85e42af87b8100bb1d653288e7649feb4b55fa6a1f9505c56e8f8b12025
区块高度: 12628509
区块中交易的总数量: 112
交易哈希值: 0xf5d8f3dd24fc921afa600dbafa3819c441fe559f035669525396fb87c5540369
交易所在区块的高度: 12628509
交易输入数量: 1
交易输出数量: 2
交易哈希值: 0x2d4a95d75563976645ec3d18f23a6c00b87fecfeafa300c3775c668dc45a6cee
交易所在区块的高度: 12628509
交易输入数量: 2
交易输出数量: 2