楼主:
kugwa (kugwa)
2019-09-08 16:41:05根据白皮书第七节 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还有救ㄇ 看不懂里面的私钥格式
感谢~
楼主:
kugwa (kugwa)
2018-09-08 16:41:00SL:qq2vtymc5syylwfda7rwfanx2pmhvls46gwrnepsh2
推推~~在prune mode下汇入钱包会需要重爬一次完整区块链啊但是就被prune掉了,当然就无法进行
楼主:
kugwa (kugwa)
2019-09-08 16:46:00理论上只要有当前UTXO set 就没问题不是吗?我的钱包里都是还没花掉的
汇入不同的钱包,不同地址要重新验证交易啊没有区块链历史资料,没办法重新验证啊除非跟SPV节点一样再重新跟其他完整节点要dumpwallet出来的私钥就原始格式而不是WIF或是BIP39格式
楼主:
kugwa (kugwa)
2019-09-08 16:55:00为啥需要重新验证交易钱包里的地址 如果是没花掉的 应该要能在UTXO里match到?UTXO属于chainstate的一部分 是自己跑过的 没有信任问题吧
这是为了产生交易历史,假如你只要最后的余额那当然是只要UTXO就已经足够了但我实际重新汇入过钱包,他会重新产生交易历史数据库因此会重新验证交易才能重新产生整个交易历史至于为什么一定要重新产生交易历史才行这可能就要去问Core开发者了,他们思维跟一般人不一样
楼主:
kugwa (kugwa)
2019-09-08 16:58:00原来如此但我根本不需要交易历史啊xdddd我只要能提出里面的BTC 把他转走而已或是不知道有没有SPV钱包认得dumpwallet格式只要能动到里面的BTC 任何方法都行~除了重新验证整条区块链这个方法之外
blockchain.info网站钱包我有汇入过原始私钥,可用
楼主:
kugwa (kugwa)
2019-09-08 20:56:00刚刚产生一个私钥 来测试汇入到blockchain.info钱包真的可以用 感谢刚刚才搞懂 我的dumpwallet档案 里面的私钥原来是WIF格式只是blockchain.info可以吃WIF和原始私钥
不过blockchain.info的安全性没很好,汇入后就可转出
楼主:
kugwa (kugwa)
2019-09-08 20:58:00对 所以我刚刚是用没钱的私钥来测感觉没什么SPV钱包可以直接汇入私钥 都要认他们自己的格式要码就是seed phrase 要码就是钱包自己认得的格式这样要在不同钱包之间转换有点困难
楼主:
kugwa (kugwa)
2019-09-08 21:40:00这个好~