import {ethers} from "ethers"
import fs from 'fs';
var wss = "wss://mainnet.infura.io/ws/v3/*******************";
const wssProvider = new ethers.providers.WebSocketProvider(wss);
wssProvider.on("pending",(txHash) =>{
//console.log(txHash);
fs.appendFile('hash.txt', txHash+"\r\n", 'utf8', (err) => {
if(err){
fs.appendFile('hasherror.txt', txHash+" "+err.toString()+"\r\n", 'utf8', (err) => {});
}
});
});
1,代码很简单,就是基本的逻辑,监听到的哈希记录到文件,但是我发现获取的不全。 2,比如这个监听我开启了1小时,然后我找到这一小时的任意几条交易,有的哈希能搜到,有的搜不到。 3,这套代码我同时启动了3份,分别用了3家不同的节点服务商“infura”,“quiknode”,“alchemy”,看一小时的日志,infura大概是6M,quiknode是4M,alchemy是12M,即便最多的alchemy,也存在很多没有的哈希。 4,按照我的理解,所有的交易都应该会有至少一瞬间处于pending状态,有的话节点服务器就应该推送给我。现在结果是有缺少,那么问题可能是2点:1)不是所有的交易都会进入pending状态。2)免费节点服务商推送的不全,需要付费版就全了 5,求有经验的大佬帮忙,人民币求助,我的微信 332439180