[閒聊] BTC/BCH 全節點 節省硬碟空間模式 無法匯入錢包?

看板DigiCurrency作者 (闇黑聖飢魔)時間4年前 (2019/09/08 16:41), 4年前編輯推噓3(3038)
留言41則, 2人參與, 4年前最新討論串1/1
根據白皮書第七節 Reclaiming Disk Space 理論上 全節點可以丟棄已經被花掉的交易 不影響以後的驗證 (不可能有新交易指向已經被花掉的交易 所以丟棄當然不影響驗證 但如果單純想查被丟棄的交易的詳細資料 那當然找不到了) 而這個功能實際上在比特幣全節點軟體裡也有支援 只要在啟動全節點時加上「-prune=N」的參數即可 N的單位是MiB 意思是你只想要保留最新N MiB的區塊資料 更舊的就丟棄 N最小可以設550 這樣的話硬碟上的raw block data就會維持在550 MiB (不包含目前大約4 GB的UTXO資料庫chainstate 4 GB + 550 MiB -> 整個比特幣節點軟體大約固定佔用5 GB的硬碟空間) 更詳細的說明在0.11版的release notes https://tinyurl.com/obc8mhb (BTC從0.11版開始支援 BCH是之後才分叉出去所以應該也有) 如果有需要跑全節點 但又不想佔太多硬碟空間 就可以啟用這種block file pruning模式 不跑的時候也可以把上述5 GB整個備份 等哪天又有需要再把這5 GB拿回來用 這樣的話只要補驗證這段時間錯過的區塊即可 不用從頭驗證幾百GB的區塊鏈 而且因為都是親自驗證 所以也沒有需要信任別人的問題 當然如果有人想跑全節點但又懶得親自從頭驗證 直接跟你要這5 GB來用(我不知道會不會有這種需求) 那他就必須信任你了 理論上 開啟prune mode的全節點 功能依然完整(問題只在於有無實作) 上面提到沒辦法查詢被丟棄的交易 其實只要跟「保留該交易的節點」要就好了 拿到的交易只要hash值能一路串到merkle root 就能證明它確實存在於區塊裡 依然沒有信任問題 這就跟SPV的原理一樣 只能感嘆聰神的強大 目前要注意的一點 就是全節點在prune mode下似乎無法匯入錢包 這點在0.11版release notes也有提及 這也是「理論上不是問題但目前尚未實作」 (不太懂技術上的難點在哪 源碼在src/wallet/rpcdump.cpp importwallet函數 這次應該不是BTC的鍋 因為BCH的這段源碼也差不多) 我以前用dumpwallet備份了文字檔錢包 裡面的BTC大約值1 USD 現在想importwallet回來居然跳錯 「Importing wallets is disabled in pruned mode」 手邊沒有以前的wallet.dat可以測試 不知道直接複製貼上整個wallet.dat而非透過RPC來弄 是否可行 希望有大大能解惑: 1. 目前prune mode下是否真的無法匯入錢包 2. 我的dumpwallet裡的BTC還有救ㄇ 看不懂裡面的私鑰格式 感謝~ -- 血に飢えた狼達よ…今こそ自らの牙で、鎖を解き放つ時が来たのだ…。 すでに戦いは始まっているのだ。さぁ、武器を取れ!そして殺せ!殺しまくれ!! 自らの命を、守るために… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.4.89 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1567932082.A.FA0.html

09/08 16:41, 4年前 , 1F
SL:qq2vtymc5syylwfda7rwfanx2pmhvls46gwrnepsh2
09/08 16:41, 1F

09/08 16:42, 4年前 , 2F
推推~~
09/08 16:42, 2F

09/08 16:44, 4年前 , 3F
在prune mode下匯入錢包會需要重爬一次完整區塊鏈啊
09/08 16:44, 3F

09/08 16:45, 4年前 , 4F
但是就被prune掉了,當然就無法進行
09/08 16:45, 4F

09/08 16:46, 4年前 , 5F
理論上只要有當前UTXO set 就沒問題不是嗎?
09/08 16:46, 5F

09/08 16:47, 4年前 , 6F
我的錢包裡都是還沒花掉的
09/08 16:47, 6F

09/08 16:49, 4年前 , 7F
匯入不同的錢包,不同地址要重新驗證交易啊
09/08 16:49, 7F

09/08 16:49, 4年前 , 8F
沒有區塊鏈歷史資料,沒辦法重新驗證啊
09/08 16:49, 8F

09/08 16:50, 4年前 , 9F
除非跟SPV節點一樣再重新跟其他完整節點要
09/08 16:50, 9F

09/08 16:51, 4年前 , 10F
dumpwallet出來的私鑰就原始格式
09/08 16:51, 10F

09/08 16:51, 4年前 , 11F
而不是WIF或是BIP39格式
09/08 16:51, 11F

09/08 16:55, 4年前 , 12F
為啥需要重新驗證交易
09/08 16:55, 12F

09/08 16:55, 4年前 , 13F
錢包裡的地址 如果是沒花掉的 應該要能在UTXO裡match到?
09/08 16:55, 13F

09/08 16:56, 4年前 , 14F
UTXO屬於chainstate的一部分 是自己跑過的 沒有信任問題吧
09/08 16:56, 14F

09/08 16:56, 4年前 , 15F
這是為了產生交易歷史,假如你只要最後的餘額
09/08 16:56, 15F

09/08 16:56, 4年前 , 16F
那當然是只要UTXO就已經足夠了
09/08 16:56, 16F

09/08 16:56, 4年前 , 17F
但我實際重新匯入過錢包,他會重新產生交易歷史資料庫
09/08 16:56, 17F

09/08 16:57, 4年前 , 18F
因此會重新驗證交易才能重新產生整個交易歷史
09/08 16:57, 18F

09/08 16:57, 4年前 , 19F
至於為什麼一定要重新產生交易歷史才行
09/08 16:57, 19F

09/08 16:58, 4年前 , 20F
這可能就要去問Core開發者了,他們思維跟一般人不一樣
09/08 16:58, 20F

09/08 16:58, 4年前 , 21F
原來如此
09/08 16:58, 21F

09/08 16:58, 4年前 , 22F
但我根本不需要交易歷史啊xdddd
09/08 16:58, 22F

09/08 16:59, 4年前 , 23F
我只要能提出裡面的BTC 把他轉走而已
09/08 16:59, 23F

09/08 17:01, 4年前 , 24F
或是不知道有沒有SPV錢包認得dumpwallet格式
09/08 17:01, 24F

09/08 17:03, 4年前 , 25F
只要能動到裡面的BTC 任何方法都行~
09/08 17:03, 25F

09/08 17:03, 4年前 , 26F
除了重新驗證整條區塊鏈這個方法之外
09/08 17:03, 26F

09/08 17:05, 4年前 , 27F
blockchain.info網站錢包我有匯入過原始私鑰,可用
09/08 17:05, 27F

09/08 20:56, 4年前 , 28F
剛剛產生一個私鑰 來測試匯入到blockchain.info錢包
09/08 20:56, 28F

09/08 20:56, 4年前 , 29F
真的可以用 感謝
09/08 20:56, 29F

09/08 20:57, 4年前 , 30F
剛剛才搞懂 我的dumpwallet檔案 裡面的私鑰原來是WIF格式
09/08 20:57, 30F

09/08 20:57, 4年前 , 31F
只是blockchain.info可以吃WIF和原始私鑰
09/08 20:57, 31F

09/08 20:57, 4年前 , 32F
不過blockchain.info的安全性沒很好,匯入後就可轉出
09/08 20:57, 32F

09/08 20:58, 4年前 , 33F
對 所以我剛剛是用沒錢的私鑰來測
09/08 20:58, 33F

09/08 20:59, 4年前 , 34F
感覺沒什麼SPV錢包可以直接匯入私鑰 都要認他們自己的格式
09/08 20:59, 34F

09/08 21:00, 4年前 , 35F
要碼就是seed phrase 要碼就是錢包自己認得的格式
09/08 21:00, 35F

09/08 21:00, 4年前 , 36F
這樣要在不同錢包之間轉換有點困難
09/08 21:00, 36F

09/08 21:22, 4年前 , 37F

09/08 21:22, 4年前 , 38F
WIF格式的話,用Electrum也可以直接匯入
09/08 21:22, 38F

09/08 21:40, 4年前 , 39F
這個好~
09/08 21:40, 39F
※ 編輯: kugwa (36.227.4.89 臺灣), 09/09/2019 02:40:52

09/09 04:30, 4年前 , 40F
773字 * 7星 = 5411 PCH
09/09 04:30, 40F

09/09 04:31, 4年前 , 41F
文章代碼(AID): #1TTBwo-W (DigiCurrency)