与web3.py库交互的共同入口是web3对象。web3对象提供API,用于python开发的应用与以太坊区块链进行交互,通常是通过连接JSON-RPC服务器进行。Providers提供者
Providers使web3连接到区块链上。Web3.py库带有以下内置的providers,它们能够适用于大多数用例。
web3.HTTPProvider:用于连接基于http和https的JSON-RPC服务器。
web3.IPCProvider:用于连接基于ipc套接字的JSON-RPC服务器。
web3.WebsocketProvider:用于连接基于ws和wss的websocket的JSON-RPC服务器。
HTTPProvider:用于获取可以找到服务器的完整URI。对于本地开发,这类似http://localhost:8545。
IPCProvider:用于获取可以找到IPC套接字的文件系统路径。如果不提供任何参数,它将使用操作系统的默认路径。
WebsocketProvider:用于获取可以找到服务器的完整URI。对于本地开发,这类似ws://127.0.0.1:8546。
示例代码如下:>>> from web3 import Web3, HTTPProvider, IPCProvider, WebsocketProvider
# Note that you should create only one RPCProvider per
# process, as it recycles underlying TCP/IP network connections between
# your process and Ethereum node
>>> web3 = Web3(HTTPProvider('http://localhost:8545'))
# or for an IPC based connection
>>> web3 = Web3(IPCProvider())
# or for Websocket based connection
>>> web3 = Web3(WebsocketProvider('ws://127.0.0.1:8546'))基本API
web3类提供了以下十分便利的基本API:类型转换
web3.toHexWeb3.toHex(primitive=None, hexstr=None, text=None)
获取各种输入并以十六进制表示形式返回它。它遵循在JSON-RPC规范中转换为十六进制的规则。>>> Web3.toHex(0)
'0x0'
>>> Web3.toHex(1)</