V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acess
V2EX  ›  Bitcoin

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

  •  
  •   acess · 2017-12-17 17:33:02 +08:00 · 935 次点击
    这是一个创建于 2551 天前的主题,其中的信息可能已经有所发展或是发生改变。
    开启修剪模式的话,把区块里的那些只包含已花费输出的交易修掉,只留下一个 UTXO 数据库(这些 UTXO 也经过自己的验证),这样还不够计算余额吗?为啥还是非得从头下载一遍上百 GB 的区块链?
    9 条回复    2017-12-20 17:40:55 +08:00
    kaichen
        1
    kaichen  
       2017-12-18 00:23:07 +08:00 via iPhone   ❤️ 1
    因为当你 importprivatekey 时需要重新扫描一遍原始区块数据,确定这个私钥从来没有使用过。

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

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

    刚上 prune 模块时,开启后是不能启用 wallet 模式的,后来隔了一个版本才能开启,但导入私钥时要指定是否 rescan,如果不 rescan 那么不能正确显示余额和历史记录。
    acess
        4
    acess  
    OP
       2017-12-18 23:51:21 +08:00
    @kaichen
    额,我觉得,是不是有可能开一个不顾历史记录、只显示余额的模式,然后就不需要下载整个区块链了?
    kaichen
        5
    kaichen  
       2017-12-19 00:52:46 +08:00
    我不清楚你的场景是什么,一般来说你这种用法的话还不如直接用 SPV 客户端。
    acess
        6
    acess  
    OP
       2017-12-19 02:07:26 +08:00 via Android
    @kaichen 比如导入新私钥,用户不关心历史,只关心余额。
    还有目前蛋疼的交易被卡问题,zapwallettxes 好像也是不支持 prune。
    i730
        7
    i730  
       2017-12-19 18:45:51 +08:00 via Android
    没历史上哪儿找余额?
    acess
        8
    acess  
    OP
       2017-12-19 23:49:10 +08:00 via Android
    @i730 第一遍区块链验证跑完不就有 UTXO 集合了……
    i730
        9
    i730  
       2017-12-20 17:40:55 +08:00
    @acess #8 那还不是要跑,还不如轻钱包
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5040 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:46 · PVG 15:46 · LAX 23:46 · JFK 02:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.