比特币命令行界面:如何创建钱包和UTXO地址

3

我是比特币和区块链的新手,希望你能帮助我解决一些问题。 所以,我启动了一个“regtest”网络,并使用生成了101个块。

bitcoin-cli -regtest generate 101

现在,如果我运行命令'bitcoin-cli -regtest getaddressesbyaccount ""',会获得我的默认账户的公共地址:
[
  "mwpKJNJ4UZL7yFyj53RSVcwauGAK84UvV2"
]

当然,目前我不应该有其他账户。 当我运行'bitcoin-cli -regtest listunspent'时:

[
  {
    "txid": "694030f8638318c8c54054515ec716159edc494b14234885deb48f294b75a2fe",
    "vout": 0,
    "address": "n1queZpweTHjrMLvwSmcfrrJSQjsrYG3nG",
    "scriptPubKey": "21038cadb266ed1ae6c474f5c1b74fc5f6790eacde843a673a16cfc924a100f2a679ac",
    "amount": 50.00000000,
    "confirmations": 101,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

第一个问题: 我了解到,"listunspent" 列出的唯一交易是UTXO,这意味着这是一笔我收到的交易,金额为50 BTC,发送到我的地址 "n1queZpweTHjrMLvwSmcfrrJSQjsrYG3nG"。这个地址从哪里来?我可以用什么bitcoin-cli命令在我的钱包中看到/找到它?
第二个问题: 我如何使用比特币命令行界面(bitcoin-cli)创建具有一些余额的新钱包并在它们之间切换? 基本上,我想能够使用bitcoin-cli测试我的应用程序-我需要能够创建钱包,在它们之间切换并在地址之间发送比特币。
1个回答

5

在生成后的100个块之前,Coinbase货币无法转移。

(为什么你特别生成了“101”个块?)

所以,您看到的钱包中的金额是从您挖掘的第一个块开始计算的。您可以通过 bitcoin-cli -regtest getblock "<hash of first block>" 命令来验证这一点,该命令将返回您在先前运行的 generate 101 命令中获得的101个块哈希值的数组。

尝试以下操作:

  • 再生成一个区块 bitcoin-cli -regtest generate 1
  • 现在运行 listunspent 命令,您应该会看到2个未花费的交易输出(utxo)而不是1个。

根据您想要测试的内容,也许只需创建新地址并向其发送资金就足够了?

[编辑]

  1. 正确关闭核心程序。
  2. 重命名您的 wallet.dat 文件。
  3. 重新启动后,将创建一个新的钱包(wallet.dat)。您可以通过为 bitcoin-qt 提供 -wallet 参数来使用它们。

例如,如果您使用的是linux操作系统:

通过启动bitcoin core程序,停止bitcoin core程序,然后重命名~/.bitcoin文件夹中的wallet.dat文件(然后重复此过程)来创建4个钱包。例如,运行此过程4次以生成:

  • mywallet.dat
  • wifeswallet.dat
  • kidswallet.dat
  • businesswallet.dat

然后,在您的.bashrc中添加以下内容:

alias mywallet="bitcoin-qt -wallet=~/.bitcoin/mywallet.dat"
alias wifeswallet="bitcoin-qt -wallet=~/.bitcoin/wifeswallet.dat"
alias kidswallet="bitcoin-qt -wallet=~/.bitcoin/kidswallet.dat"
alias businesswallet="bitcoin-qt -wallet=~/.bitcoin/businesswallet.dat"

关于101:老实说,我只是从一些示例中拿来的。 但我仍然不明白地址“n1queZpweTHjrMLvwSmcfrrJSQjsrYG3nG”来自哪里,以及如何找到它(或确保它属于我的钱包)?我能创建一个新钱包并在钱包之间切换(而不是在一个钱包的账户之间切换)吗? - user3489820
@user3489820 那个地址是你的钱包在第一个区块中收到支付/挖掘的地址。你可以在第一个区块中找到它。对于多个钱包,你可以简单地使用 bitcoin-cli -rpcwallet=<file>。此外,我已经编辑了答案。 - skang404
1
感谢回复如何创建额外的钱包。 然而,我仍然不明白这个地址是从哪里来的。我知道这个地址应该是我的,第一个创建的区块有一笔coinbase交易到这个地址,所以我得到了它。我不明白如何检查这个地址是否是我的。 如何查看它是否在我的地址中。 我尝试使用“bitcoin-cli -regtest getaddressesbyaccount”命令,但这个地址不在那里。如果我向这个地址进行新的交易,我会收到硬币吗? - user3489820

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接