什么是智能合约
简单理解,智能合约就是嵌入区块链的一个代码,当特定条件满足,代码自动执行,不可终止,不可篡改,不可抗力。
智能合约以代码的形式通过节点共识写入区块链的特定区块中,
在合约代码中,封装了预定义的若干状态及转换规则、触发合约执行的情景(如到达特定时间或发生特定事件等)、特定情景下的应对行动等。
区块链可实时监控智能合约的状态,并通过核查外部数据源、确认满足特定触发条件后激活并执行合约。
与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。
IPCProvider:用于获取可以找到IPC套接字的文件系统路径。如果不提供任何参数,它将使用操作系统的默认路径。
WebsocketProvider:用于获取可以找到服务器的完整URI。
示例代码如下:>>>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
#or for an IPC based connection
>>>web3=Web3(IPCProvider())
#or for Websocket based connection
>>>web3=Web3(WebsocketProvider基本API
web3类提供了以下十分便利的基本API:类型转换
web3.toHexWeb3.toHex(primitive=None,hexstr=None,text=None)
获取各种输入并以十六进制表示形式返回它。它遵循在JSON-RPC规范中转换为十六进制的规则。>>>Web3.toHex(0