繁体   English   中英

与Bitcore简单的一对一比特币交易

[英]Simple 1-to-1 Bitcoin Transaction with Bitcore

我尝试了解比特币交易。 我使用Bitcore Javascript库。

我有一个Source Wallet1(Address1 / PublicKey1和PrivateKey1) - 有10个比特币(简化)。

现在,一位朋友给了我他的Wallet2(Address2 / PublicKey2),并希望获得1比特币。

当我阅读文档然后进行简单的事务(1对1)时,代码如下所示:

var transaction = new Transaction()
.from(utxos)          // Feed information about what unspent outputs one can use
.to(address, amount)  // Add an output with the given amount of satoshis
.change(address)      // Sets up a change address where the rest of the funds will go
.fee(5430) // Minimum non-dust amount
.sign(privkeySet)     // Signs all the inputs it can

但我有这些问题:

  1. utxos .from(utxos)函数的utxos int是什么参数。 这是我Wallet1的PublicKey1吗?
  2. .to .to(address)函数的参数address是我的朋友Wallet2的PublicKey2?
  3. change(address)功能的参数address是一个新的Address3,属于MY Wallet3,我必须在进行交易之前创建它? =>这意味着我需要知道这个Wallet3的PrivateKey3,这是Wallet3,我将获得剩余的9个比特币? =>是否可以在没有此.change(address)功能的情况下进行交易? 如果我说,我不想将剩余的9比特币转移到新地址? 他们应该留在原来的Wallet1?
  4. .fee(5430)意味着我将花费5430 Satoshi = 0.2337424950美元用于此次交易?
  5. privkeySet.sign(privkeySet)函数是我原来的Wallet1权PrivateKey1? 在此.sign()函数之后,事务将被“解雇”并且作业完成了吗?

    非常感谢您的支持。

.from(utxos)函数的utxos int是什么参数。 这是我Wallet1的PublicKey1吗?

这些是您可以花费的外点(即先前交易的未花费的输出)。

https://bitcore.io/api/lib/unspent-output

.to(地址)函数的参数地址是我的朋友Wallet2的PublicKey2?

地址不一定仅从目的地公钥导出。 您需要了解如何生成p2sh / p2pkh / p2pk地址。

但一般来说,如果你只是想给付一个简单消费条件的人,那么付费的规范地址就是一个p2pkh地址,它来自收件人的公钥。

https://bitcore.io/api/lib/address

// recipientPublicKey should be provided
var address = new Address(recipientPublicKey);
// alternative interface
var address = Address.fromPublicKey(recipientPublicKey);

通常,您的朋友应该只为您提供付费地址,因此您不必担心地址生成。 上面的示例假设您的朋友为您提供了他们的公钥(无论出于何种原因)。

更改(地址)功能的参数地址是一个新的Address3,属于MY Wallet3,我必须在进行交易之前创建它? =>这意味着我需要知道这个Wallet3的PrivateKey3,这是Wallet3,我将获得剩余的9个比特币? =>是否可以在没有此.change(地址)功能的情况下进行交易? 如果我说,我不想将剩余的9比特币转移到新地址? 他们应该留在原来的Wallet1?

您将需要一个更改地址,除非您花费的UTXO等于您向朋友发送的金额+费用。 通常,优良作法是生成新的密钥对和地址以用作更改地址,因为地址重用通常被认为是错误的。 但是也可以重复使用wallet1的地址。

.fee(5430)意味着我将花费5430 Satoshi = 0.2337424950美元用于此次交易?

是。

.sign(privkeySet)函数中的privkeySet是我原来的Wallet1中的PrivateKey1吗? 在此.sign()函数之后,事务将被“解雇”并且作业完成了吗?

签名后,您需要序列化您的交易。 序列化后,您应该获得一个十六进制ASCII字符串,您可以使用该字符串使用第三方提供商或您自己的比特币节点广播到比特币网络。

bitcoin-cli sendrawtransaction <serialized transaction>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM