Was ist der Unterschied zwischen time, blocktime und timereceived?

Was genau ist der Unterschied zw

time, blocktimeundtimereceived

in Transaktionsinformationen, die von der Bitcoind JSON RPC-API zurückgegeben werden? Zum Beispiel:

{
    "amount": 0.02,
    "blockindex": 45,
    "time": 1306179671,
    "category": "receive",
    "confirmations": 109244,
    "timereceived": 1306179671,
    "address": "1P5xanGEdgPKYNt4BnATambHpbZ2h89bYv",
    "txid": "91eb6cb34b9253cce0ab5da171a0f5aae9d3d36208e23062ba61cd9e21c09a3d",
    "blockhash": "0000000000002e65f5cc554e99c352af958a63f4be663627f2c569e5a996a03a",
    "account": "",
    "blocktime": 1306173564
}

Antworten (1)

timereceivedist, als Ihr Kunde zum ersten Mal von der Transaktion erfuhr. Wenn Sie die Transaktion gesendet haben, ist dies der Zeitpunkt, zu dem Sie die Transaktion gesendet haben. Wenn Sie die Transaktion erhalten haben, hat Ihr Kunde die Transaktion zum ersten Mal im Netzwerk gesehen.

timekann anders sein, als timereceivedwenn Sie zuerst von der Transaktion erfahren haben, indem Sie sie in einem Block gesehen haben. Dies passiert normalerweise, wenn Ihr Client eine Weile offline war und Sie von der Blockchain eingeholt werden. In diesem Fall timewird der Zeitstempel des Blocks verwendet, wenn dies sinnvoll erscheint. Speziell:

  • Wenn der Zeitstempel des Blocks in der Zukunft liegt, timeist er derselbe wie timereceived.
  • Wenn der Blockzeitstempel vor der letzten Transaktion in der Brieftasche timeliegt, entspricht er der Zeit der letzten Transaktion in der Brieftasche.
  • Andernfalls wird der Blockzeitstempel verwendet.

Transaktionszeiten ändern sich nicht, selbst nach einer Neuorganisation, und neue Transaktionen haben nie eine frühere Zeit als eine vorhandene Transaktion. Dies war nicht immer der Fall (alte Versionen bevorzugten den Blockzeitstempel, der normalerweise genauer ist), aber die aktuelle Methode erleichtert den sicheren Umgang mit Transaktionszeitstempeln.