如何使用infura获取ETH链上数据 - ZhangTory's NoteBlog - 张耀誉的笔记博客

如何使用infura获取ETH链上数据

如果想要从eth链上获取数据,或者想要广播签名的交易,我们就需要搭建一个钱包节点用于与链进行交互,比如ETH官方客户端Geth。
但是要搭建一个钱包节点成本较高,所以很多链网上都会有公共节点,可以根据你的使用情况选择收费或者不收费。
要与以太坊链进行交互,我们可以使用infura,你可以理解为infura就是一个geth客户端集群,并且它可以是免费的。

infura的官网地址为:https://infura.io/
在注册登录后,点击“CREATE NEW PROJECT”创建一个新的项目,PRODUCT选择“Ethereum”,NAME随便写,后期可以改。
创建后在KEYS中可以看到你的PROJECT ID和PROJECT SECRET,并且除了以太坊主网,还可以选择测试网。
我们需要用到的就是PROJECT ID,以HTTPS请求为例,我们要查询Block信息的python代码:

import requests
import json

url = "https://mainnet.infura.io/v3/PROJECT ID"

payload = json.dumps({
  "jsonrpc": "2.0",
  "method": "eth_getBlockByNumber",
  "params": [
    "latest",
    True
  ],
  "id": 1
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

请求会返回这个块的信息。

关于PROJECT SECRET,如果你在服务器上请求infura,那么为了保证安全,可以在SECURITY中设置“PROJECT SECRET REQUIRED”的复选框“Require project secret for all requests”。而如果你在web页面上进行js请求,那么就不要使用SECRET。

如果需要对接infura做钱包,那么还需要读一读它的官方文档,了解infura支持哪些方法:https://infura.io/docs/ethereum

添加新评论

电子邮件地址不会被公开,评论内容可能需要管理员审核后显示。