¿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?
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.
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.
Nico
Nico
privacidadisahumanright.eth
Slava Fomin II