创建比特币原始交易需要平衡

时间:2019-05-31 08:06:53

标签: javascript blockchain bitcoin bitcoin-testnet

我正在使用比特币测试网创建原始交易,但是当我将原始交易推送到网络上时,我的所有余额都花了。我是否应该将剩余的“更改”退还给我自己?这是我用来创建原始交易的代码:

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);

这是正确的方法吗?

1 个答案:

答案 0 :(得分:2)

  

我是否认为我还必须将自己的余款退还给我?

是的,您是正确的。矿工可以要求任何未发送到任何特定地址的资金作为交易费。交易费用就是这样创建的。

Block 170中查看Satoshi Nakamoto与Hal Finney进行的第一笔比特币交易。中本聪将10个比特币发送给Hal,另外40个返回给自己。由于时间太早,因此无需支付交易费,因为他们自己在开采区块。今天,如果您尝试免费发送交易,则节点将拒绝该交易(不满足最低中继费),但是即使是收费较低的矿工,也可能选择不尽快(如果有的话)进行开采。 >

block 170

相关问题