¿Cuál es exactamente la diferencia entre
time
, blocktime
ytimereceived
en la información de transacción devuelta por Bitcoind JSON RPC API? Por ejemplo:
{
"amount": 0.02,
"blockindex": 45,
"time": 1306179671,
"category": "receive",
"confirmations": 109244,
"timereceived": 1306179671,
"address": "1P5xanGEdgPKYNt4BnATambHpbZ2h89bYv",
"txid": "91eb6cb34b9253cce0ab5da171a0f5aae9d3d36208e23062ba61cd9e21c09a3d",
"blockhash": "0000000000002e65f5cc554e99c352af958a63f4be663627f2c569e5a996a03a",
"account": "",
"blocktime": 1306173564
}
timereceived
es cuando su cliente se enteró por primera vez de la transacción. Si envió la transacción, es el momento en que envió la transacción. Si recibió la transacción, es cuando su cliente vio por primera vez la transacción en la red.
time
puede ser diferente de timereceived
si se enterara por primera vez de la transacción al verla en un bloque. Esto generalmente sucede cuando su cliente estuvo desconectado por un tiempo y se está viendo atrapado en la cadena de bloques. En este caso, time
utilizará la marca de tiempo del bloque si le parece razonable. Específicamente:
time
será la misma que timereceived
.time
será igual a la hora de la última transacción en la billetera.Los tiempos de transacción no cambian, incluso después de una reorganización, y las nuevas transacciones nunca tendrán un tiempo anterior a una transacción existente. Este no siempre fue el caso (las versiones anteriores preferían usar la marca de tiempo del bloque, que suele ser más precisa), pero el método actual facilita el manejo seguro de las marcas de tiempo de las transacciones.