为什么 Bitcoin Core 启用修剪模式(prune=550)就不能 rescan 了?

2017-12-17 17:33:02 +08:00
 acess
开启修剪模式的话,把区块里的那些只包含已花费输出的交易修掉,只留下一个 UTXO 数据库(这些 UTXO 也经过自己的验证),这样还不够计算余额吗?为啥还是非得从头下载一遍上百 GB 的区块链?
825 次点击
所在节点    Bitcoin
9 条回复
kaichen
2017-12-18 00:23:07 +08:00
因为当你 importprivatekey 时需要重新扫描一遍原始区块数据,确定这个私钥从来没有使用过。

prune 模式只保留两天左右的 raw block data,和 utxo。
acess
2017-12-18 08:09:08 +08:00
@kaichen
为什么要确定私钥从来没使用过?
保证一个地址只使用一次吗?
kaichen
2017-12-18 22:48:00 +08:00
@acess

因为 bitcoin core 除了节点功能,还包含了钱包功能,钱包的话为了提供历史交易记录,需要从过往的区块中拿数据。

刚上 prune 模块时,开启后是不能启用 wallet 模式的,后来隔了一个版本才能开启,但导入私钥时要指定是否 rescan,如果不 rescan 那么不能正确显示余额和历史记录。
acess
2017-12-18 23:51:21 +08:00
@kaichen
额,我觉得,是不是有可能开一个不顾历史记录、只显示余额的模式,然后就不需要下载整个区块链了?
kaichen
2017-12-19 00:52:46 +08:00
我不清楚你的场景是什么,一般来说你这种用法的话还不如直接用 SPV 客户端。
acess
2017-12-19 02:07:26 +08:00
@kaichen 比如导入新私钥,用户不关心历史,只关心余额。
还有目前蛋疼的交易被卡问题,zapwallettxes 好像也是不支持 prune。
i730
2017-12-19 18:45:51 +08:00
没历史上哪儿找余额?
acess
2017-12-19 23:49:10 +08:00
@i730 第一遍区块链验证跑完不就有 UTXO 集合了……
i730
2017-12-20 17:40:55 +08:00
@acess #8 那还不是要跑,还不如轻钱包

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/415481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX