Wie schätzt man die Mining-Gebühr für Rohtransaktionen?

In unserer Anwendung generieren wir ein Transaktions-Hex, indem wir den createrawtransactionAufruf zum "Handcraften" einer Transaktion verwenden. Das Problem, mit dem wir konfrontiert sind, ist, dass wir die Mining-Gebühr für diese Transaktion schätzen möchten. Mir ist klar, dass wir anrufen könnten estimatefee x, um die Mining-Gebühr pro Byte zu schätzen. Aber das Problem ist, dass wir die Transaktion generieren, also kennen wir die Größe der Transaktion noch nicht! Huhn oder Ei?! Mir ist klar, dass wir eine Transaktion generieren und dann die Mining-Gebühr basierend auf dem Hex abrechnen können, aber das klingt für mich nach einem Hack.

Die Frage ist also: Was ist der beste Weg, um die optimale Mining-Gebühr bei der Verwendung von abzuschätzen createrawtransaction?

Antworten (1)

Schauen Sie sich an fundrawtransaction(wenn Sie mit der internen Brieftasche einverstanden sind). fundrawtransactiongibt Ihnen das verwendete fee(neben dem Hex-Byte-Array der finanzierten Transaktion) zurück, bevor Sie die Transaktion signieren oder senden.

Der ideale Arbeitsablauf ist:

  • createrawtransaction '[]' '{"<addr>": <amount>}' //set no inputs
  • fundrawtransaction <hex>
  • du wirst zurückkommen{"hex":<tx>, "fee": <amount>, "changepos": <pos of the change output>}
  • Überprüfen Sie die Gebühr, erhöhen Sie sie möglicherweise (erfordert Bitcoin Core 0.14, verwenden Sie die feeRatevon fundrawtransaction.
  • signrawtransaction <hex>
  • sendrawtransaction <hex>
Das ist ein toller Vorschlag! Aber wir wollen von einer bestimmten Adresse in der Brieftasche ausgeben, von der wir abrufen listunspent.. also wird es für uns nicht funktionieren, da es keine Möglichkeit gibt, diese Filterung durchzuführenfundrawtransaction
In diesem Fall müssen Sie die Transaktionsgröße selbst berechnen, indem Sie 72 Byte pro EC-Signatur annehmen. Aber es hängt davon ab, welche Arten von Eingaben Sie unterstützen (P2PKH usw.).
Nun, das sind alles Multisig-Adressen.. Also P2SH