在将 BTC 发送到外部地址之前如何获取交易大小?
我正在使用比特币核心进行交易,我试图计算交易大小。 这样我就可以用它来估算交易费用。 但没找到方法
你能告诉我它的逻辑和方法吗?
您可以在代码中本地签署交易,而不是使用
bitcoind
。然后,您只需测量序列化为字节流的交易的大小即可。
与其中之一签署交易后
signrawtransactionwithwallet
signrawtransactionwithkey
signrawtransaction
,这已被弃用并从 bitcoind 0.18.0 及更高版本中完全删除。结果将返回十六进制值。在发送前使用
decoderawtransaction
查看您的交易。在结果中,它具有显示交易大小的“大小”属性。以下是 bitcoind 文档的片段。
...
"txid" : "hex", (string) The transaction id
"hash" : "hex", (string) The transaction hash (differs from txid for witness transactions)
"size" : n, (numeric) The transaction size
"vsize" : n, (numeric) The virtual transaction size (differs from size for witness transactions)
"weight" : n, (numeric) The transaction's weight (between vsize*4 - 3 and vsize*4)
...
但是,如果您计划以已知的费率广播交易,则应使用
fundrawtransaction
来指定交易的费率等。