6

谷歌的第一个结果给了我 2012 年的答案,所以我想知道现在是否有比“使用军械库”更好的答案?

如果我必须解码原始交易也没关系,如果有人能带我完成这些步骤,我将不胜感激。

提前致谢 :)

4

3 回答 3

15

我会回答我自己的问题,

这非常容易。(从调试控制台或命令行)

listunspent

生成一个/未使用的输出列表供您使用。记下您希望使用的每个输出的“txid”、“vout”和“scriptPubKey”。

使用“createrawtransaction”命令,后跟包含您之前选择的输入的 txid 和 vout 的字典列表,然后是您希望将它们发送到的地址(发送到地址在单个字典中,而不是字典列表) .

createrawtransaction [{"txid":txid,"vout":n},...] {address:amount,...}

如果您不想全部发送输出(您想自己进行一些更改),您需要在发送字典中包含一个您控制的地址(从您的钱包或其他地方),因为输出不能部分使用,抱歉.

要支付采矿费,只需留下一些总产出量下落不明,比特币将默认将其用作采矿费(撰写本文时费用为 0.0001)。

如果一切顺利,你应该得到一个十六进制字符串。

使用“signrawtransaction”命令来检查没有错误,方法是传入新的十六进制字符串,后跟一个字典列表,其中包含我们在所有这一切开始时得到的 txid、vout 和 scriptPubKeys。

signrawtransaction <hex string> [{"txid":txid,"vout":n,"scriptPubKey":hex},...]

注意:在较新版本的比特币中,不需要字典列表

如果你有一个新的十六进制"complete" : true之后一切顺利,你现在可以使用 'sendrawtransaction' 命令,然后是你刚刚获得的更新的十六进制,将你新创建的交易广播到比特币网络。

sendrawtransaction <new hex string>

如果您成功签名但收到"code":-22,"message":"TX denied"错误,请参阅下面的脚注。

请注意,它总共只使用了四个命令:

*get     (listunspent)
*create  (createrawtransaction)
*sign    (signrawtransaction)
*send    (sendrawtransaction)

简单的 :)

脚注:

请注意,如果您指定一个异常大的费用,例如 0.5btc(我在测试网上尝试过),当您尝试广播它时,网络将拒绝您的交易,因为它认为您犯了我在实验时发现的错误。

(如果你试图花费比你可用的更多的 BTC,也会出现这种情况。)

最后我将费用设置为 0.001 并且效果很好,是我关于这种情况的问题的链接。

于 2014-05-01T02:58:28.100 回答
2

另一种可能性是使用Electrum。在地址选项卡下,右键单击余额非零的一个,然后选择“支出来源”。

如果您没有地址选项卡,则必须单击查看 > 显示地址。

于 2016-05-22T22:14:32.553 回答
0

从你想发送你的 BTC 的地方。您只需要填写比特币的提款地址。您可以使用相同的过程将您的 BTC 发送到Bitfinex: 填写提款地址 填写要发送的金额。验证您的付款。完毕。

于 2017-08-14T05:34:15.380 回答