Cómo obtener las confirmaciones de transacciones usando JSON RPC

¿Cómo obtengo las confirmaciones de bloque para una transacción específica usando JSON RPC?

Esta es información que vendría dentro de la transacción JSON en bitcoin pero no parece venir en ethereum.

¿Qué me estoy perdiendo?

Respuestas (2)

Cuando envíe una transacción, recibirá un hash de transacción.

Utilice el comando getTransactionByHash({transaction hash}) para recuperar los detalles de la transacción. Su blockNumber no debe ser nulo si la transacción ha sido extraída e incluida en un bloque.

La llamada está documentada en https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionbyhash con el siguiente ejemplo:

// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": {
    "hash":"0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b",
    "nonce":"0x",
    "blockHash": "0xbeab0aa2411b7ab17f30a99d3cb9c6ef2fc5426d6ad6fd9e2a26a6aed1d1055b",
    "blockNumber": "0x15df", // 5599
    "transactionIndex":  "0x1", // 1
    "from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1",
    "to":"0x85h43d8a49eeb85d32cf465507dd71d507100c1",
    "value":"0x7f110" // 520464
    "gas": "0x7f110" // 520464
    "gasPrice":"0x09184e72a000",
    "input":"0x603880600c6000396000f300603880600c6000396000f3603880600c6000396000f360",
  }
}

Luego llame a eth_blockNumber ( https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blocknumber ) para obtener la altura del bloque actual. Su número de confirmaciones es el resultado de eth_blockNumber menos el resultado de eth_getTransaction blockNumber.

Ok, pero ¿cómo se traduce eso en confirmaciones? ¿Cómo se relaciona el número de bloque con las confirmaciones de la transacción?
Lo entiendo, pero ¿cómo se relaciona eso con las confirmaciones? @BokkyPooBah
Ver eth_blockNumber y cálculo de diferencia en la respuesta actualizada
Entonces, cuando la transacción se incluye por primera vez en el bloque, ¿tiene una confirmación? ¿O las confirmaciones se cuentan solo desde el siguiente bloque?

La respuesta dada por BokkyPooBah es perfecta y en cuanto a cómo se relaciona eso con las confirmaciones, planteé la misma pregunta aquí: ¿Cómo (número de bloque actual - número de bloque de una transacción determinada) da el recuento de confirmación? .

También puede consultar los comentarios de la pregunta: Cobertura de confirmación de transacciones de la red Ethereum . La idea es que, si su transacción se incluyó en el bloque número 100 (simplemente asuma) y el número de bloque actual es 160, significa que 60 mineros aleatorios aceptaron el bloque 100 como válido y lo agregaron a esa cadena, por lo que puede decir que tiene 60 confirmaciones. Todo esto es cuestión de consenso.

Entonces, cuando la transacción se incluye por primera vez en el bloque, ¿tiene una confirmación? ¿O las confirmaciones se cuentan a partir del siguiente bloque?
@SlavaFominII Cuando una transacción se incluye por primera vez en un bloque (digamos X), eso no se puede contar como primera confirmación. Por lo que sabes, podría estar tratando de romper la cadena. Si otro minero coloca un bloque sobre X, entonces eso es una confirmación de que X podría ser correcto y puedes decir que la transacción tiene una confirmación.