Estoy escribiendo un programa nodejs que obtiene una gran cantidad de bloques (> 100,000) y analiza cada transacción interna para filtrar/analizar los datos.
Actualmente estoy usando la función getBlock web3 (v1) :
eth.getBlock(i, true, handleFunction)
Sin embargo, a pesar de que handleFunction se llama de forma asíncrona, mi programa (si no se acelera manualmente) emite 100,000 solicitudes, sobrecalentando el websocket de infura, creo...
Aceleré manualmente para hacer solo 10 solicitudes y esperar hasta que se manejen todas, luego pasar a las siguientes 10.
Mi pregunta: me imagino que mucha gente se enfrenta a este mismo problema, entonces, ¿hay algún método de web3 más apropiado para solicitar múltiples bloques? ¿O hay algún aspecto del diseño que pueda mejorar?
Perdón por la autopromoción, pero puede usar QuickBlocks para hacer lo mismo de manera mucho más efectiva porque además almacenará en caché los bloques localmente para que la próxima vez que haga la misma consulta (o similar), los bloques serán locales y por lo tanto mucho mas rápido. Estamos trabajando en un contenedor para que QuickBlocks se pueda llamar desde node.js, pero aún no está listo. Actualmente funciona como una línea de comando.
Vignesh Karthikeyan