南京江宁网站建设,win本地网站建设,软件开发学校,深圳宝安网站建设公司推荐Web3.py是连接以太坊的python库#xff0c;它的API从web3.js中派生而来。如果你用过web3.js#xff0c;你会对它的API很熟悉。但惭愧的是#xff0c;作为一个以太坊上Dapp的开发者#xff0c;我几乎没有直接使用过web3.js#xff0c;也没有看过它的API。
官网#xff1a…Web3.py是连接以太坊的python库它的API从web3.js中派生而来。如果你用过web3.js你会对它的API很熟悉。但惭愧的是作为一个以太坊上Dapp的开发者我几乎没有直接使用过web3.js也没有看过它的API。
官网
https://web3py.readthedocs.io/
安装
pip install web3anaconda可以在环境中openTerninal进行安装
使用
web3py需要通过数据提供商来获取数据一般有如下几种方式 1、测试供应商测试使用不是真实数据 2、远程供应商常用的 Infura , Alchemy , QuickNode , or Chainstack 3、本地供应商通过以太坊客户端将数据同步到本地供web3py使用
使用测试供应商数据测试
from web3 import Web3, EthereumTesterProvider
w3 Web3(EthereumTesterProvider())
w3.is_connected()
True使用远程供应商数据
不同远程供应商对比可以参考https://zhuanlan.zhihu.com/p/514654991 我这里使用的是alchemy 官网alchemy.com 可以使用free版本注册完成后在https://dashboard.alchemy.com/查看自己的秘钥和通讯地址
from web3 import Web3
w3 Web3(Web3.HTTPProvider(自己的连接))
//查看某个地址的余额
print(w3.eth.get_balance(0xd83aB04432AF484Af5aCf9EEE30895C3607F78fD))也可以使用其他协议
w3 Web3(Web3.WebsocketProvider(wss://your-provider-url))使用本地数据供应商数据
硬件要求很高 但与以太坊交互的最安全方式是在自己的硬件上运行以太坊客户端。 对于本地运行的节点IPC连接是最安全的选项但HTTP和 WebSocket配置也可用。默认情况下常用的Geth客户机 暴露端口 8545 以服务HTTP请求暴露端口8546以服务WebSocket请求。连接 到该本地节点可以如下进行 geth官网https://geth.ethereum.org/ 需要安装并完成数据同步后才能使用成本很高截止到22年9月全节点需要12TB的存储空间。 磁盘空间通常是节点操作员的主要瓶颈。在撰写本文时2022年9月建议将2 TB SSD用于运行Geth的完整节点和共识客户端。Geth本身需要650 GB的磁盘空间用于快照同步的完整节点并且使用默认缓存大小时增长速度约为14 GB/周。修剪会将总存储量降低到原来的650 GB。 归档节点需要额外的空间。一个将所有状态保留回Genesis的“完整”归档节点需要超过12 TB的空间。部分归档节点也可以通过在一些初始同步之后关闭垃圾收集器来创建-存储需求取决于保存了多少状态。 from web3 import Web3
# IPCProvider:
w3 Web3(Web3.IPCProvider(./path/to/geth.ipc))
# HTTPProvider:
w3 Web3(Web3.HTTPProvider(http://127.0.0.1:8545))
# WebsocketProvider:
w3 Web3(Web3.WebsocketProvider(wss://127.0.0.1:8546))
w3.is_connected()
True获取最新一个区块的数据
w3.eth.get_block(latest)