当前位置:   article > 正文

【区块链-前端交互】第一篇:使用python交互以太测试网(奔向JS)_python 以太坊 交互

python 以太坊 交互

参考资料

以太坊官网

安装和测试环境

通过节点接入网络

参考文章:

接入以太网网络,要首先连接到以太坊网络节点,然后通过节点与公链中的应用进行交互。

提供以太网节点的第三方: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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
使用Python连接所选网络

交互教程:infura教程-Use Python

下载 python 需要的类库:

pip3 install web3
pip3 install python-dotenv
  • 1
  • 2

连接网络:

# 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())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
查询主网上钱包的余额

参考文章: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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
封装代码-以太主网查询钱包余额
# 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

小结

经过资料检索和尝试,发现 Python 的 Web3 类库相关的教程资料很少,但 JavaScript 的教程很多,所以计划学习 JavaScript 与区块链网络进行交互。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/540287
推荐阅读
相关标签
  

闽ICP备14008679号