Berechnen Sie die Transaktions-ID TXID aus JSON oder der Rohtransaktion

Betrachten Sie eine Offline-Transaktion, die noch nicht gebucht wurde und mit einer Methode wie dieser erstellt wurde:

http://brainwallet.org/#tx

a) Wie könnte ich die Transaktions-ID aus der Rohtransaktion berechnen? b) Wie könnte ich die Transaktions-ID aus der JSON-Transaktion berechnen?

Antworten (2)

Sowohl der Referenzclient (Bitcoin-QT) als auch ein Dienst wie http://brainwallet.org/ zeigen die Transaktions-ID nach dem Signieren, aber bevor die Transaktion gesendet wird.

Nehmen Sie zum Beispiel diese gültige binäre Transaktion:

01000000017a06ea98cd40ba2e3288262b28638cec5337c1456aaf5eedc8e9e5a20f062bdf000000008b48304502200addea57dd4c2871357165ed6d2bc94b117e322918073ac4c66d535637e74600022100dfaa0dce9e2e61aa2867c87fadca4e0fa3c70e9852a4689b3ef24b3f94809b4a014104e0ba531dc5d2ad13e2178196ade1a23989088cfbeddc7886528412087f4bff2ebc19ce739f25a63056b6026a269987fcf5383131440501b583bab70a7254b09effffffff01b02e052a010000001976a9142dbde30815faee5bf221d6688ebad7e12f7b2b1a88ac00000000

In JSON wird es dekodiert zu:

{
    "txid" : "46b690f548f6eb70dca7fb2020ff4be369c42f3ea2375fd3f6b34890b640f8e9",
    "version" : 1,
    "locktime" : 0,
    "vin" : [
        { [... snipped ...]}
        }
    ]
}

Mit der Transaktions-ID im ersten Schlüssel. Wenn Sie selbst signiert haben, ist die TXID buchstäblich ein doppelter SHA256-Hash der Rohtransaktion. Es gibt einige weitere Informationen über Rohtransaktionen im Wiki .

Die Antwort ist richtig, aber Sie müssen immer an die Transaktionsformbarkeit denken, damit sich die ID Ihrer Transaktion während des Mining-Prozesses leicht ändern kann, wenn sie sich im Netzwerk befindet. Daher können Sie der offline berechneten Transaktions-ID nicht vertrauen und müssen warten, bis Ihre Transaktion vom Netzwerk bestätigt wird, um etwas von ihrer ID abzuhängen.