Dos transacciones: mismo 'desde', diferente 'a'. ¿Lo que sucederá?

Imaginemos que tengo dos transacciones bastante iguales: la única diferencia es su tocampo. La primera transacción - A, tiene 0x1111....y la segunda - B, tiene 0x22222....en el tocampo.

Si los envío al mismo tiempo, ¿qué sucederá? Veo dos formas diferentes:

  1. El "mundo" se dividirá en dos partes: los nodos que han recibido Aal principio y los que han recibido B. Entonces, dependiendo de dónde se encuentre "nuestro" minero, Ao Bse extraerá, 50/50.

  2. Los nodos de Ethereum permiten reemplazar transacciones si no se confirman. Entonces, si una transacción aún no se extrae y el nodo recibe una nueva, la reemplaza.

Y la segunda pregunta. Configuremos el gasPricepara el Bdos veces más grande que en el A.

  1. Lo estoy enviandoA
  2. Esperando por ejemplo 2 segundos
  3. enviandoB

¿ Tiene Bposibilidades de ganar esta carrera? Quiero decir, ¿existe una regla como: "Si hay una transacción desde alguna dirección en el grupo de tx, pero hay otra transacción desde la misma dirección y es más costosa , la primera transacción debe reemplazarse con la segunda"?

¡Gracias de antemano!

Respuestas (2)

Si los envío al mismo tiempo, ¿qué sucederá?

Un nodo no reemplazará transacciones con el mismo nonce a menos que el precio del gas de la nueva transacción sea superior a cierto valor ( predeterminado: 10 %, mínimo: 1 % ). Como resultado, Ao Bserá minado depende de qué transacción recibió primero el minero. Tenga en cuenta que la transacción no minada se eliminará cuando un nodo reciba el bloque minado.

¿B tiene alguna posibilidad de ganar esta carrera?

Sí. Account Noncese usa en Ethereum para reemplazar una transacción que no se está extrayendo. Enviar una transacción con el mismo noncey un precio de gas más alto reemplazará la anterior. Para un caso de uso normal, noncedebe aumentarse en 1 cada vez que envíe una transacción, de modo que una cuenta pueda enviar varias transacciones al mismo tiempo.

No es ninguna de esas cosas.

Las transacciones enviadas terminan en la cola de transacciones pendientes. Sí, los nodos de la red descubren las transacciones pendientes en su momento, ciertamente no simultáneamente, pero no importa.

El proceso de minería establece un orden definido para las transacciones que se aceptan en la cadena. Puede ser A, luego B, o B y luego A. En cualquier caso, las transacciones serán procesadas por todos los nodos en el mismo orden.

Un bloque es un conjunto ordenado de transacciones. Una cadena de bloques es un conjunto ordenado de bloques. Por extensión, una cadena de bloques es un conjunto ordenado de transacciones. Todos procesarán las transacciones en la misma secuencia, tarde o temprano.

Espero eso ayude.

Nunca será A luego B o B luego A, ya que la única diferencia entre A y B es toy gasPrice. Siempre será A o B ya que tienen el mismo nonce.
Supongo que eso es lo que quisiste decir con "la única diferencia". Disparar dos transacciones con el mismo nonce es muy inusual y no es la forma en que interpreté su pregunta. El mundo no se divide en dos partes. A lo sumo, una reorganización de la cadena. En última instancia, una de sus transacciones está dentro y la otra está fuera.
(Nota: no fui yo quien hizo la pregunta) Solo estaba señalando que OP implicaba que el nonce era el mismo, también conocido como reemplazo de tx. No es tan extraño si estás tratando de aumentar el precio de la gasolina. Sucede todo el tiempo, Metamask incluso tiene una opción para ello.