Bitcoin-Cli

完全刪除文件後從文件導入錢包的正確方法是什麼

  • February 2, 2022

只是想問一個關於“importwallet”bitcoin-cli 命令的問題。

啟動我的 bitcoind 守護程序後,創建了一個錢包,用密碼保護並備份到一個文件:

bitcoin-cli createwallet wallet1
bitcoin-cli encryptwallet mypassword
bitcoin-cli backupwallet ~/wallet1.backup

我想測試我是否能夠恢復我的備份錢包。這是我正在測試的:

bitcoin-cli stop
rm -Rf ~./bitcoin/wallets/wallet1

然後重新啟動我的 bitcoind 伺服器。此時我想導入我的錢包。我試試這個:

$ bitcoin-cli importwallet ~/wallet1.backup
error code: -18
error message:
No wallet is loaded. Load a wallet using loadwallet or create a new one with  createwallet. (Note: A default wallet is no longer automatically created)

但正如你所見,bitcoin-cli 請求創建一個新錢包。只是為了導入現有的?我不明白這一點。

對於這個特定範例,導入錢包的正確方法應該是什麼?天吶!

您正在尋找的是restorewalletRPC。截至 2022 年 2 月 2 日,這尚未包含在 Bitcoin Core 的版本中(儘管它位於 GitHub 上的主程式碼分支中)。它將包含在 v23 版本中,預計在 2022 年 4 月發布。

restorewallet "wallet_name" "backup_file" ( load_on_startup )

Restore and loads a wallet from backup.

Arguments:
1. wallet_name        (string, required) The name that will be applied to the restored wallet
2. backup_file        (string, required) The backup file that will be used to restore the wallet.
3. load_on_startup    (boolean, optional) Save wallet name to persistent settings and load on startup. True to add wallet to startup list, false to remove, null to leave unchanged.

Result:
{                       (json object)
 "name" : "str",       (string) The wallet name if restored successfully.
 "warning" : "str"     (string) Warning message if wallet was not loaded cleanly.
}

Examples:
> bitcoin-cli restorewallet "testwallet" "home\backups\backup-file.bak"
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "restorewallet", "params": ["testwallet" "home\backups\backup-file.bak"]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/
> bitcoin-cli -named restorewallet wallet_name=testwallet backup_file='home\backups\backup-file.bak"' load_on_startup=true
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "restorewallet", "params": {"wallet_name":"testwallet","backup_file":"home\\backups\\backup-file.bak\"","load_on_startup":true}}' -H 'content-type: text/plain;' http://127.0.0.1:8332/

importwalletRPC 用於不同的場景,從轉儲文件中導入密鑰列表(由 RPC 生成的明文密鑰列表)dumpwallet

要恢復 v22 及以下版本的備份,只需:

  1. 導航到您wallets/的比特幣數據目錄中的目錄
  2. 在裡面創建一個新目錄,wallets/其中包含您為恢復的錢包選擇的唯一名稱。
  3. 將錢封包件複製到這個新創建的目錄中,並將其重命名為wallet.dat
  4. 啟動比特幣核心,你應該可以載入錢包了。

引用自:https://bitcoin.stackexchange.com/questions/112176