比特幣數據庫跨平台兼容嗎?
我想在 Linux (Debian) 上使用我的 Windows 7 比特幣數據庫(我下載的區塊鏈 + 我的錢包)。我在 Windows 7 主機上將 Debian 作為 VirtualBox 來賓執行,並將比特幣數據文件夾 (C:/Users/Username/AppData/Roaming/Bitcoin/) 作為文件夾共享給 Debian。
然而,Debian 上的 bitcoind 使用正確的 -datadir 參數顯示“打開塊數據庫時出錯。你想現在重建塊數據庫嗎?” 資訊。這讓我想到了數據庫在 Windows 和 Linux 之間是否完全兼容的問題。
編輯 1: 我一次使用一個比特幣實例。我意識到即使使用通過 VirtualBox 在主機上掛載的空數據目錄,我也會遇到同樣的錯誤。
這是 debug.log(對於空或完整的數據目錄相同):
2013-12-22 20:49:07 Bitcoin version v0.8.6-dirty-beta (2013-12-05 13:11:26 +0100) 2013-12-22 20:49:07 Using OpenSSL version OpenSSL 1.0.1e 11 Feb 2013 2013-12-22 20:49:07 Default data directory /home/kozuch/.bitcoin 2013-12-22 20:49:07 Using data directory /home/kozuch/vboxshare2 2013-12-22 20:49:07 Using at most 125 connections (1024 file descriptors available) 2013-12-22 20:49:07 init message: Verifying wallet... 2013-12-22 20:49:07 dbenv.open LogDir=/home/kozuch/vboxshare2/database ErrorFile=/home/kozuch/vboxshare2/db.log 2013-12-22 20:49:07 Bound to [::]:8333 2013-12-22 20:49:07 Bound to 0.0.0.0:8333 2013-12-22 20:49:07 init message: Loading block index... 2013-12-22 20:49:07 Opening LevelDB in /home/kozuch/vboxshare2/blocks/index 2013-12-22 20:49:07 : Error opening block database. Do you want to rebuild the block database now? 2013-12-22 20:49:07 Shutdown : In progress... 2013-12-22 20:49:07 Flush(false) 2013-12-22 20:49:07 DBFlush(false) ended 0ms 2013-12-22 20:49:07 StopNode() 2013-12-22 20:49:07 Flushed 0 addresses to peers.dat 4ms 2013-12-22 20:49:07 Flush(true) 2013-12-22 20:49:07 DBFlush(true) ended 1ms 2013-12-22 20:49:07 Shutdown : done
似乎問題可能與以下有關:
ErrorFile=/home/kozuch/vboxshare2/db.log
編輯 2: 在我收到錯誤後,datadir 中還有一個大小為 0 的 .lock 文件。
編輯 3: 所以“ErrorFile=/home/kozuch/vboxshare2/db.log”不是問題。我在本地(沒有共享數據文件夾)的工作實例中收到此錯誤。
只是要快速檢查一下。您嘗試訪問的文件夾和文件的文件權限是什麼。您可能想暫時將它們設置為 777 並嘗試打開它以排除它不是權限問題。
編輯:大小為 0 的 .lock 文件不會告訴我們任何資訊。我的客戶執行良好,也有一個僅供參考。
如果您一次執行一個實例,它應該是兼容的,但我認為 datadir 已被鎖定。嘗試在日誌中查找更多詳細資訊,它應該會告訴您錯誤的原因,可能是任何原因。如果您在 Windows 上執行任何比特幣軟體,請停止它並嘗試從您的 linux 機器重新啟動 bitcoind。
編輯:您是否安裝了 bitcoind 並以 root 身份執行它?如果沒有,您可以嘗試 chown -R ~/.bitcoin 作為 root,而不是 db 文件夾本身,它仍然可能是權限問題,