用 bitcoind 打撈一個舊的、不兼容的錢包
我有一個舊錢包,用一個非常舊的版本創建
bitcoind
,我正試圖再次訪問它。我正在嘗試了解目前可能阻止我看到任何平衡的各種問題。我把我遇到的各種問題用粗體字寫在下面。我的計劃是使用舊版本訪問舊錢包
bitcoind
,然後執行dumpwallet
以導出私鑰,然後在簡單的現代軟體版本上將這些密鑰重新導入新錢包。這聽起來像是一個可行的計劃嗎?
dumpwallet
按照我的描述進行操作時,是否有任何資訊失去?它還會看到發生的每筆交易並能夠使用舊錢包做所有我能做的事情嗎?一些相關的花絮:
- 創建這個錢包的
bitcoind
二進製文件是用--with-incompatible-bdb
. 我相信它是 bdb5。**如果我想執行一個更現代的二進製文件,我也必須用那個標誌編譯它,對吧?**據我了解,沒有辦法從 5“降級”到 4.8(我相信這是預設值)?這是我嘗試採用這種方法的主要原因dumpwallet
。到目前為止,我已經用舊錢包執行了舊程式碼,但它顯示余額為“0.000 …”和“txcount:0”,即使在完全下載區塊鏈之後,甚至在
-rescan
執行錢包。我試圖找出問題所在,在這裡。
- 多年來,錢包上有幾筆交易。可能通過不同的建構
bitcoind
(我忘了,確切地說)。- 比特幣有過幾次分裂和多次升級,我沒有詳細了解這些內容。他們能解釋為什麼我看到“0.000 …”嗎?也許我的舊客戶正在與新網路通信,並且某些資訊失去了,不知何故?
編輯:接受的答案讓我走上了正軌;我沒有載入正確的錢包。
現代版本的錯誤消息
bitcoind
比我使用的舊版本有用得多。Using-wallet=filename.dat
實際上是創建一個具有該名稱的空錢包,而不是使用目前目錄中的那個。首先,我必須確保將文件複製到$HOME/.bitcoin/
目錄中。
你應該能夠將錢包直接載入到最新版本的比特幣核心中,它應該可以正常載入。兼容性得到了維護。
**這聽起來像是一個可行的計劃嗎?**正如我所描述的那樣,在通過時是否有任何資訊失去
dumpwallet
?它還會看到發生的每筆交易並能夠使用舊錢包做所有我能做的事情嗎?您將失去所有交易數據和任何元數據,例如帳戶(現在稱為標籤,含義略有不同)和關鍵出生時間。
- 創建這個錢包的
bitcoind
二進製文件是用--with-incompatible-bdb
. 我相信它是 bdb5。**如果我想執行一個更現代的二進製文件,我也必須用那個標誌編譯它,對吧?**據我了解,沒有辦法從 5“降級”到 4.8(我相信這是預設值)?這是我嘗試採用這種方法的主要原因dumpwallet
。其實你沒有。wallet.dat 文件本身是兼容的,但它周圍的其他一些臨時文件不兼容。但是,如果您完全關閉了 bitcoind,那麼這些文件將被清理,所有內容都將合併到 wallet.dat 文件中。它可以在 Bitcoin Core 的發布版本中打開。完全關閉意味著 wallet.dat 文件將是可移植的,因此如果您擔心其他不兼容的臨時文件仍然存在,您可以保留 wallet.dat 文件,一切都會好起來的。
在任何情況下,您都可以嘗試使用錢封包件的副本。如果它不兼容,您只會收到一個錯誤提示。打不開就不寫了。
到目前為止,我已經用舊錢包執行了舊程式碼,但它顯示余額為“0.000 …”和“txcount:0”,即使在完全下載區塊鏈之後,甚至在
-rescan
執行錢包。我試圖找出問題所在,在這裡。您可能實際上並沒有使用您認為的錢包。長期以來,如果一個新錢包不存在,Bitcoin Core 總是會創建一個新錢包。這通常會導致人們認為他們已經恢復了錢包(因為錢包已載入),而實際上卻生成了一個新錢包。這可能就是這裡正在發生的事情。
或者錢封包件中可能沒有任何內容。
- 比特幣有過幾次分裂和多次升級,我沒有詳細了解這些內容。他們能解釋為什麼我看到“0.000 …”嗎?也許我的舊客戶正在與新網路通信,並且某些資訊失去了,不知何故?
不會。在任何拆分之前存在的任何交易仍將在錢包中。此外,任何不再在區塊鏈中的交易仍然會出現,因為它們儲存在您的錢包中。它們只會顯得未經證實或相互矛盾。什麼都沒有出現表明錢封包件不包含任何內容。