本文我们将使用Web3.py这个Python库直接查询以太坊数据。Web3.py是一个为与Ethereum区块链交互而建立的Python库。有了它,我们可以为去中心化的应用程序建立各种核心功能。我们可以直接与智能合约互动,收集区块链数据,并发送交易。让我们开始安装Web3.py。
pip install web3
Web3.py的功能是连接到以太坊网络的节点,以检索数据和向网络广播数据。节点存储区块链数据,所以我们可以查询以太坊区块链的状态来收集我们需要的数据。数据检索对我们来说是一个有效的免费操作,因为唯一的成本是节点正在进行的存储和计算。
有了这个库,我们可以连接到自己的节点或网络上的现有节点来建立我们想要的东西。我们可以在自己的机器上建立一个本地节点,但这样做的成本是相当高的;截至4/21,一个完整的节点大约有7TB的数据。与其在我们想要访问数据时操作自己的节点,不如通过使用像Infura这样的服务来达到目的。
Infura是Consensys的产品,我们将使用它作为我们的节点,连接到以太坊区块链。许多顶级项目都是Infura的用户。首先在Infura网站注册并创建一个新项目。在那里你会发现一个项目ID。