首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单的比特币1到1比特币交易

简单的比特币1到1比特币交易
EN

Stack Overflow用户
提问于 2017-10-02 15:24:05
回答 1查看 744关注 0票数 3

我试着理解比特币交易。我使用位核心Javascript库。

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

现在一个朋友给了我他的Wallet2 (地址2/PublicKey2),并且想要接收1枚比特币。

当我阅读文档时,对于一个简单的事务(1-to-1),代码如下所示:

代码语言:javascript
运行
复制
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)函数是什么。这是我的PublicKey1 Wallet1吗?
  2. 用于.to(address)函数的参数.to(address)是“我的朋友”的PublicKey2 Wallet2?
  3. change(address)函数的参数change(address)是一个新的Address3,它属于MY Wallet3,我必须在进行事务之前创建它?=> --这意味着我需要知道这个Wallet3的PrivateKey3,而这是Wallet3,我将得到9个比特币中的其余部分?=>可以不使用.change(address)函数来完成事务吗?如果我说,我不想把剩下的9枚比特币转移到新地址?他们应该留在原来的Wallet1里吗?
  4. .fee(5430)意味着我将花费5430Satoshi=0.2337424950美元进行这笔交易?
  5. privkeySet函数中的.sign(privkeySet)是原始Wallet1中的PrivateKey1,对吗?在此.sign()函数之后,事务将被“触发”并完成工作? 非常感谢您的支持。
EN

回答 1

Stack Overflow用户

发布于 2017-10-16 03:56:31

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

这些都是您可以使用的输出(即以前事务中的未用输出)。

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

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

地址不一定仅从目标公钥派生。您需要阅读p2sh/p2pkh/p2pk地址是如何生成的。

但是通常情况下,如果您只想支付具有简单开销条件的人,则要支付的规范地址只是一个p2pkh地址,该地址是从收件人的公钥派生出来的。

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

代码语言:javascript
运行
复制
// recipientPublicKey should be provided
var address = new Address(recipientPublicKey);
// alternative interface
var address = Address.fromPublicKey(recipientPublicKey);

不过,通常情况下,你的朋友应该提供给你一个地址,这样你就不用担心地址的生成了。上面的示例假设您的朋友提供了他们的公钥(无论出于什么原因)。

变更(地址)函数的参数地址是一个新的Address3,它属于我的Wallet3,我必须在进行事务之前创建它?=> --这意味着我需要知道这个Wallet3的PrivateKey3,而这是Wallet3,我将得到9个比特币中的其余部分?=>,没有这个.change(地址)函数,能完成事务吗?如果我说,我不想把剩下的9枚比特币转移到新地址?他们应该留在原来的Wallet1里吗?

您需要一个更改地址,除非您正在花费的UTXO等于您发送给您的朋友的金额+费用。通常,生成一个新的键盘和地址作为更改地址是很好的做法,因为地址再使用通常被认为是不好的。但是,也可以为wallet1重用您的地址。

.fee( 5430 )意味着我将花费5430Satoshi=0.2337424950美元进行这笔交易?

是。

privkeySet in .sign(privkeySet)函数是原始Wallet1中的PrivateKey1,对吗?在此.sign()函数之后,事务将被“触发”并完成工作?

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

bitcoin-cli sendrawtransaction <serialized transaction>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46528602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档