¿Cómo observar una transacción enviada por el Nodo A desde otro Nodo B?

Lo que estoy luchando por lograr es lo siguiente:

  • El nodo A envía una transacción.
  • El nodo B comienza a buscar esta transacción.
  • Cuando el nodo B ve la transacción en el último bloque (es decir, no como una transacción pendiente), actualiza algunos datos en el servidor local y luego deja de observar.
  • Si la transacción falla (es decir, arroja o se queda sin combustible), el Nodo B envía un mensaje de error y deja de observar.
  • PD: el nodo B tiene acceso al hash de la transacción y a toda la información disponible desde la sendTransaction( ... )devolución de llamada del nodo A.

¿Alguien por favor tiene una idea sobre cómo lograr esto? ¡Gracias!

Contexto:

Estoy tratando de permitir que los usuarios (el Nodo A en el anterior) interactúen con un contrato a través de un cliente web. Cuando envían una transacción, me gustaría que mi servidor (el Nodo B) comience a buscarla y, tan pronto como la vea en el último bloque, agregue una entrada con ella en mi base de datos. Si la transacción falla, no se debe agregar ninguna entrada a la base de datos. Estoy usando meteorito como mi pila.

pensamientos adicionales

He estado pensando en tener eventos para cada transacción en mi contrato de solidez. Luego, cuando el cliente envía una transacción, llama a un método del lado del servidor que comenzará a observar el evento. En la devolución de llamada del evento, verificaré la transacción Hash para verificar que coincida. Si es así, realizo las acciones descritas anteriormente. Mi problema aquí es lo que sucede cuando la transacción falla (es decir, arroja o se queda sin gas...)? El evento correcto nunca se disparará y mi servidor nunca dejará de mirar...

Respuestas (1)

Echa un vistazo a esta pregunta relacionada. Puede consultar la transacción en función de todos los campos de transacción . Si planea consultar la cadena de bloques desde un contrato, tenga en cuenta que solo puede acceder a campos específicos del bloque en el que se extrajo el contrato.