验证器的修剪模式

Nac*_*Pal 4 substrate

为什么验证者节点应该始终是存档节点?不这样做有哪些风险和缺点?我知道拥有至少一个存档节点可能很有趣,但为什么要拥有所有节点呢?如果保留区块链数据(外部数据和块头),则可以在需要时重现任何时间点的任何状态,对吧?那么为什么要在数据库中保存每个块的状态呢?

当我尝试在修剪模式下运行验证器--pruning 256并收到以下错误时,出现了这个问题:

Error: Input("Validators should run with state pruning disabled (i.e. archive). You can ignore this check with '--unsafe-pruning.'"

小智 6

验证器节点默认作为存档节点运行的部分原因是遗留原因 - 我相信修剪之前不起作用(尽管目前已解决)。

使用修剪过的数据库的风险是数据库快照恢复起来可能有点棘手(因此,如果您的数据库损坏,您可能需要从一开始就重新同步)。而且,如果剪枝参数的块数太小,共识可能无法正确运行(值 1000 或 10000 应该可以)。

将其作为存档节点运行时,明显的缺点是存储空间,但这也使您自己的节点以及您可能从其他节点找到的备份具有更好的兼容性。