Usaré la DApp, CryptoKitties como ejemplo:
Digamos que se lanza un dulce gato digital con un botón "comprar ahora" para 1 Ethereum y 3 personas realizan la transacción a través de MetaMask. Las 3 transacciones comienzan a estar pendientes.
Si la transacción de la Persona A tarda 5 minutos en verificarse, la de la Persona B tarda 40 segundos y la de la Persona C tarda 10 segundos, entonces:
¿La transacción de quién tiene prioridad y se agrega al bloque? (Solo uno pasa mientras que los demás se devuelven menos la gasolina para el cómputo)
¿La marca de tiempo de la transacción iniciada tiene algún efecto sobre la prioridad?
Una respuesta detallada/técnica sería muy apreciada. ¡Gracias!
¿La transacción de quién tiene prioridad y se agrega al bloque? (Solo uno pasa mientras que los demás se devuelven menos la gasolina para el cómputo)
Cualquiera de las 3 transacciones fue elegida por el minero que encuentra el bloque. Los mineros pueden elegir las transacciones que deseen, siempre que permitan cambios de estado válidos. (Pueden hacer esto escribiendo su propio código de minería o ajustando el código del cliente Vanilla para satisfacer sus necesidades).
Para aquellos mineros que ejecutan el cliente Geth, elegirán las transacciones según el precio y el precio más alto primero. Consulte esta respuesta anterior para obtener una explicación detallada: ¿Cuál es el orden predeterminado de las transacciones durante la minería, por ejemplo, en geth? (Es muy probable que lo mismo sea cierto para el cliente de Parity, aunque no he mirado el código).
¿La marca de tiempo de la transacción iniciada tiene algún efecto sobre la prioridad?
No. Si todos están en el grupo de transacciones al mismo tiempo, se mantendrá el orden que mencioné anteriormente. (No hay nada en el código del cliente Vanilla que tenga en cuenta la marca de tiempo).
Iteración 122442
russell kranz