Ver transacciones pendientes de todos los nodos en la red

Tengo dos nodos geth en mi propia red privada: nodeAy nodeB. Cuando envío una transacción desde nodeA, puedo ver esta transacción en el grupo pendiente después del método de llamada txpool.contentsi tengo acceso a nodeA. Pero, ¿es posible obtenerlo si solo tengo acceso txpoola ? ¿Y cómo puedo ver todos los txpool pendientes de todos los nodos?nodeAnodeB

Afaik, necesita que ambos nodos se sincronicen como 'nodos completos'. Si usó la luz para sincronizarlos, entonces no tendrán acceso

Respuestas (3)

El grupo de transacciones es algo interno del nodo. En geth, hay una extensión web3 para consultarlo de forma remota a través de JSON RPC. Consulte https://github.com/ethereum/go-ethereum/blob/master/internal/web3ext/web3ext.go (TxPool_JS).

Tendrá que usar directamente JSON RPC (habilitar con -rpcapi txpool):

P.ej:

curl -X POST --data '{"jsonrpc":"2.0","method":"txpool_content","params":[],"id":1}' http://localhost:8545

{"jsonrpc":"2.0","id":1,"result":{"pending":{},"queued":{}}}

La lista completa de métodos es:

  • txpool_content
  • txpool_inspeccionar
  • txpool_status
En realidad, hay métodos que estoy usando ahora y solo me dan un grupo de mi nodeA. Pero también quiero volver a revisar los txs pendientes de otros nodos
Afaik, desde el exterior solo puede consultarlo a través del puerto jsonrpc.

Los nodos no pueden informarle sobre transacciones que no conocen.

Cada nodo tiene un grupo de transacciones, pero no hay garantía de que sea la misma lista que podría encontrar en otro. De hecho, la latencia de la red garantiza que habrá diferencias.

Tenga cuidado con el uso del grupo de transacciones para la lógica de la aplicación. Por ejemplo, el grupo de transacciones no es una muy buena manera de calcular el nonce para la próxima transacción: obtener un error nonce demasiado bajo, pero el nonce está atascado correctamente desde un día

Espero eso ayude.

AFAIK, cada nodo solo conoce su propio txpool.

Si desea saber dónde se almacenan esas transacciones en geth, puede buscar transacciones.rlp dentro de su directorio de nodos. En caso de que desee cambiar ese nombre de archivo, puede hacerlo utilizando el siguiente indicador:

  --txpool.journal value       Disk journal for local transaction to survive node restarts (default: "transactions.rlp")
Con eth65, los nodos pueden cotillear las transacciones del grupo antes de que se incluyan en los bloques.