谷歌的第一个结果给了我 2012 年的答案,所以我想知道现在是否有比“使用军械库”更好的答案?
如果我必须解码原始交易也没关系,如果有人能带我完成这些步骤,我将不胜感激。
提前致谢 :)
我会回答我自己的问题,
这非常容易。(从调试控制台或命令行)
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 并且效果很好,这是我关于这种情况的问题的链接。
另一种可能性是使用Electrum。在地址选项卡下,右键单击余额非零的一个,然后选择“支出来源”。
如果您没有地址选项卡,则必须单击查看 > 显示地址。
从你想发送你的 BTC 的地方。您只需要填写比特币的提款地址。您可以使用相同的过程将您的 BTC 发送到Bitfinex: 填写提款地址 填写要发送的金额。验证您的付款。完毕。