0%

eth | 云节点 infura

如果你不想自己单独开一个 eth 的节点,可以使用免费的 eth 云节点。

因为有一个解析 eth 转账的业务,也就是拿到 eth 的各种块,如果有需要记录的地址,就把该转账记录存下来。

但是,你自己要是做 eth 节点的话,需要一个比较好的机器,个人成本比较大,但是,网上有那种开源的 eth 云节点,即 infura

所以,infura 我使用的仅仅只是云节点功能而已。

看我下面的截图。

创建一个 project ,然后得到 HttpServiceUrl,这就相当于你的云节点的地址,通过访问它,就可以进行一系列操作。

其中只有mainnet是主链,也就是真实交易链,其他的都是测试链。它们的chainid不同。

关于这个云节点还可以做各种 dapp 项目的测试节点,具体可以参考下面的博文。

因为,我只是解析转账记录,所以,这里我用的是 ethereum-etl 开源项目。

这里贴一下,我的启动命令。

pycharm 启动命令

stream --start-block 1383977 -l eth.txt -e token_transfer,token,transaction --provider-uri https://mainnet.infura.io/v3/f818ac9fb14a4a0e8****** --output mysql+mysqlconnector://****?autocommit=true

命令行启动命令

python ethereumetl.py stream --start-block 1383977 -l eth.txt -e token_transfer,token,transaction --provider-uri https://mainnet.infura.io/v3/f818ac9fb14a4a0e8****** --output mysql+mysqlconnector://****?autocommit=true

ethereum-etl 本身没有 mysql 的参数,是我自己添加的,后面应该会有专门的博文来说这一块,尽情期待。

额度

infura 的额度不是无限的,免费的大概每天 10万请求,如果只是查询的话,这个额度绰绰有余,但是,如果对接的是 websocket 进行订阅查询的话,额度几分钟就没了。

尽管 web3.js 使用的是长链接 websocket 查询,不需要消耗额度,但是,如果,你订阅了 pending 之后,需要返回状态的时候,还需要进行查询,那么,就非常消耗资源了。

但是, infura 同样也提供 websocket 长链接。

这个长链接不需要消耗额度。

但是,这个长链接返回的数据很有限。

可以自己看一下。

所以,如果要使用订阅获取比如 pending 数据,还是需要自己搭建节点网络。

ps: 2021-9-12 日,我发现了一个非常牛逼的方法。

小狐狸的 eth 主网 rpc 可以无限次查询,至于怎么获得,自己去找吧。

后面的编程方式就是,使用 infura 节点订阅「小狐狸的 rpc 地址,只有 https 查询,没有 wss」后,用小狐狸的 rpc 查询,完美!

请我喝杯咖啡吧~