Obtener transacciones pendientes de un bloque anterior

Quiero obtener una lista histórica de transacciones pendientes. Por ejemplo, para un número de bloque 1.000.000, ¿es posible obtener esta lista?

En este momento he descargado datos de blockchain hasta el bloque 1,600,000, sin embargo, si ejecuto esto:

> eth.getBlock('pending', true).transactions
[]
>

No recibo transacciones pendientes.

¿Significa esto gethque no almacena transacciones pendientes por bloque en su base de datos? Si gethno es así, ¿quizás Parity lo sea?

Respuestas (2)

Las transacciones pendientes son en realidad transacciones actualmente pendientes : son transacciones en la memoria de cada nodo (el grupo de transacciones ), esperando ser incluidas en un bloque por un minero.

Cuando se incluye un tx en un bloque, ya no está en estado pendiente . Por lo tanto, no tiene sentido tratar de obtener transacciones pendientes para un número de bloque específico.

Pero tiene sentido almacenar las transacciones pendientes localmente, para mantener un historial de cuándo apareció una transacción en particular en la red. Dichos datos ayudarán a analizar la red y pueden brindar sugerencias para mejorar.
Tal vez, pero en cualquier caso, no obtienes cuándo ese tx "ha aparecido en la red", solo cuando ese tx llegó a tu nodo: no sabes "cuándo" el remitente realmente envió ese tx. Puede intentar auditar transacciones específicas que envía, tratando de comprender el rendimiento de la red en ese momento específico, pero almacenar cuando su nodo ve por primera vez un tx no parece muy útil "per se", necesita relacionar eso información con muchos otros para obtener algunos conocimientos útiles sobre el estado de la red.
"no parece muy útil"? Es muy útil. Por ejemplo, al tener estos datos, puede calcular el tiempo promedio que tarda un precio de gasolina específico en procesar una transacción. Podría graficar estos datos, digamos 2 GWei = transacción procesada en 5 minutos, 10 GWei = transacción procesada en 30 segundos. Y muestre un gráfico del tiempo de procesamiento de transacciones versus el precio del gas. Estos son datos muy útiles y no puede obtenerlos sin saber cuándo recibió la transacción en la red. Los nodos transmiten transacciones rápidamente, por lo que el tiempo de propagación debe ser mínimo.
No parece muy útil hacerlo con un solo nodo. Si agrega información de muchas fuentes (por ejemplo, lo que hacen servicios como ethgasstation.info o ethstats.net ) eso comienza a ser interesante (pero incluso entonces, en mi humilde opinión, todavía está lejos de ser "muy útil" ^^)

Para agregar algo de finalización a la respuesta de Giuseppe, esta respuesta dice que web3.eth.getBlock('pending')solo es relevante si está minando.

No se conservan en la cadena de bloques. Ellos "viven" en el txpool .