Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建比特币原始交易需要所有余额_Javascript_Blockchain_Bitcoin_Bitcoin Testnet - Fatal编程技术网

Javascript 创建比特币原始交易需要所有余额

Javascript 创建比特币原始交易需要所有余额,javascript,blockchain,bitcoin,bitcoin-testnet,Javascript,Blockchain,Bitcoin,Bitcoin Testnet,我正在使用比特币测试网创建原始交易,但当我将原始交易推送到网络上时,它会占用我所有的余额。我应该把剩下的“零钱”还给我自己吗?以下是im用于创建原始事务的代码: var bitcoin = require('bitcoinjs-lib'); var keyPair = bitcoin.ECPair.fromWIF('cMvPQZiG5mLARSjxbBwMxKwzhTHaxgpTsXB6ymx7SGAeYUqF8HAT', bitcoin.networks.testnet); var tx =

我正在使用比特币测试网创建原始交易,但当我将原始交易推送到网络上时,它会占用我所有的余额。我应该把剩下的“零钱”还给我自己吗?以下是im用于创建原始事务的代码:

var bitcoin = require('bitcoinjs-lib');

var keyPair = bitcoin.ECPair.fromWIF('cMvPQZiG5mLARSjxbBwMxKwzhTHaxgpTsXB6ymx7SGAeYUqF8HAT', bitcoin.networks.testnet);
var tx = new bitcoin.TransactionBuilder(bitcoin.networks.testnet);

tx.addInput('87502f792d477f0514a92486c875fa1fb631fd68c95ccf458c264155165a95c6', 1);
tx.addOutput('msWccFYm5PPCn6TNPbNEnprA4hydPGadBN', 10000);
tx.sign(0, keyPair);

console.log(tx.build().toHex());
我是否正确地认为我还必须退还我的剩余金额?例如,如果我的原始余额是0.00114 BTC,我会这样做:

tx.addInput('87502f792d477f0514a92486c875fa1fb631fd68c95ccf458c264155165a95c6', 1);

// senders address
tx.addOutput('ms9ySK54aEC2ykDviet9jo4GZE6GxEZMzf ', 104000);

// receivers address
tx.addOutput('msWccFYm5PPCn6TNPbNEnprA4hydPGadBN', 10000);
这是正确的方法吗

我是否正确地认为我还必须退还我的剩余金额

是的,你说得对。未发送至任何特定地址的任何资金均可由矿业公司作为交易费用进行索赔。这就是交易费用的产生方式

查看中本聪于年向Hal Finney进行的第一笔比特币交易。Satoshi给Hal发了10BTC,给自己发了40 BTC。因为时间还早,所以不需要支付交易费,因为他们自己在开采区块。今天,如果您尝试免费发送事务,节点将拒绝它(最低中继费未达到),但即使是低费用的矿工也可能会选择在短期内不挖掘它(如果有的话)


这是一个很糟糕的例子,因为他把零钱寄回了同一个地址;最佳做法是生成新地址以接收更改。这也是比特币钱包今天将要做的。是的,很好的一点是,为了隐私,你应该始终使用新地址进行更改。这通常是使用分层确定性密钥生成完成的,请参见BIP32