赞
踩
参考文章:
接入以太网网络,要首先连接到以太坊网络节点,然后通过节点与公链中的应用进行交互。
提供以太网节点的第三方:https://infura.io/zh/
目前 Infura 对以太坊提供主网和两个测试网的节点服务,通过 WebSocket 或者 HTTPS 接入网络,接入URL如下:Infura教程-Choose a network
Mainnet
JSON-RPC over HTTPS
https://mainnet.infura.io/v3/YOUR-API-KEY
Mainnet
JSON-RPC over WebSocket
wss://mainnet.infura.io/ws/v3/YOUR-API-KEY
Goerli
JSON-RPC over HTTPS
https://goerli.infura.io/v3/YOUR-API-KEY
Goerli
JSON-RPC over WebSocket
wss://goerli.infura.io/ws/v3/YOUR-API-KEY
Sepolia
JSON-RPC over HTTPS
https://sepolia.infura.io/v3/YOUR-API-KEY
Sepolia
JSON-RPC over WebSocket
wss://sepolia.infura.io/ws/v3/YOUR-API-KEY
交互教程:infura教程-Use Python
下载 python 需要的类库:
pip3 install web3
pip3 install python-dotenv
连接网络:
# encoding=UTF-8
import os
from dotenv import load_dotenv
from web3 import Web3
load_dotenv()
# 根据 Goerli 测试网的节点,接入网络
infura_url = "https://goerli.infura.io/v3/748faf8c484d4d90a301284e526dba36"
# 从钱包导出签名私钥,保存到 .env 文件
private_key = os.getenv('SIGNER_PRIVATE_KEY')
# 通过节点接入以太网络
web3 = Web3(Web3.HTTPProvider(infura_url))
# print("是否接入以太坊网络:" + web3.isConnected())
参考文章:Web3 库,Web3-API文档
每个类evm的公链都有很多RPC,当你不知道某公链的RPC,可以去 chainlist.org 搜索。
使用 infura 提供的节点连接不上以太坊主网,根据参考文章选择以太坊主网的 RPC 进行调用连接,成功查询到个人钱包的 ETH余额
:
# encoding=UTF-8
import os
from dotenv import load_dotenv
from web3 import Web3
load_dotenv()
# 以太坊主网的RPC调用地址
rpc = "https://cloudflare-eth.com"
# 通过RPC调用接入以太坊主网
web3 = Web3(Web3.HTTPProvider(rpc))
print("是否接入以太坊网络:" + str(web3.isConnected()))
# 钱包地址
address = "0x281aF131Fc854Cb6756A7e2F57D895bcCf6DaFd5"
# 查询余额
balance = web3.fromWei(web3.eth.getBalance(address), "ether")
print(balance)
# encoding=UTF-8
import os
from dotenv import load_dotenv
from web3 import Web3
load_dotenv()
def select_balance(web3, address):
# 查询余额
balance = web3.fromWei(web3.eth.getBalance(address), "ether")
print(balance)
def access_eth_main():
# 以太坊主网的RPC调用地址
rpc = "https://cloudflare-eth.com"
# 通过RPC调用接入以太坊主网
web3 = Web3(Web3.HTTPProvider(rpc))
print("是否接入以太坊网络:" + str(web3.isConnected()))
return web3
address = "0x281aF131Fc854Cb6756A7e2F57D895bcCf6DaFd5"
web3 = access_eth_main()
select_balance(web3, address)
经过资料检索和尝试,发现 Python 的 Web3 类库相关的教程资料很少,但 JavaScript 的教程很多,所以计划学习 JavaScript 与区块链网络进行交互。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。