send - 有没有一种方法可以从钱包中的特定比特币地址发送资金?

标签 send bitcoin bitcoind

Google的第一个结果给了我2012年的答案,所以我想知道现在有没有比“使用盔甲”更好的答案?

如果我必须对原始交易进行解码,那很好,如果有人可以指导我完成这些步骤,我将不胜感激。

提前致谢 :)

最佳答案

我会回答我自己的问题,

这简直是​​难以置信。
(从调试控制台或命令行)

listunspent

产生一个/未使用的输出 list 供您使用。
记下要使用的每个输出的“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被拒绝” 错误,请参见下面的脚注。

请注意,总共只执行了四个命令:
*get     (listunspent)
*create  (createrawtransaction)
*sign    (signrawtransaction)
*send    (sendrawtransaction)

简单 :)

脚注:

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

(如果您尝试花费的BTC超过可用的BTC,情况也是如此。)

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

关于send - 有没有一种方法可以从钱包中的特定比特币地址发送资金?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23324442/

相关文章:

c++ - 通过套接字发送文件太慢

encryption - 你的想象力需要 : How to encrypt a file so that spending an amount of bitcoins is required for the decryption

java - 在bitcoind中创建JSONRPCCLIENT对象时出现空指针异常

performance - MPI_Send/Recv 和 MPI_Scatter/Gather 的比较

python - 无法两次写入python中的套接字

Perl expect - 如何控制目标机器上的超时

Perl - 如何使用椭圆曲线数学将比特币私钥转换为地址

C++ OpenSSL Ripemd-160 给出了错误的输出

transactions - 如何获取对非钱包比特币地址进行的最后交易?

bitcoin - 使用随机对等点发现模拟私有(private)比特币网络