如何将 Gulden 区块链数据从一个钱包复制到另一个钱包

How to copy Gulden blockchain data from one wallet to another

我应该从 blocks 目录复制哪些文件以将所有可用的区块链数据复制到另一个钱包。

我应该包括:

此外,将除最新的 .dat 文件之外的所有文件进行符号链接而不是复制以保存存储是否安全(假设较早的 .dat 文件永远不会更改)。

在 copying/linking 之后,我是否应该 运行 GuldenD 添加额外的命令行参数,例如 -rescan?

我正在 https://github.com/Gulden/gulden-official/blob/master/doc/files.md 作为 Gulden 数据目录结构的参考。 相关部分如下:

blocks/blk000??.dat: block data (custom, 128 MiB per file);

blocks/rev000??.dat; block undo data (custom);

blocks/index/*; block index (LevelDB);

chainstate/*; block chain state database (LevelDB);

以上四个基本包含区块链,所以需要:

  • blocks/blk*.dat - 实际的块写在这里
  • blocks/index/* - 上面文件的快速索引存储在这里,从技术上讲,没有这个也可以找到块,但它会变得很慢
  • chainstate/* - UTXO(所有未花费交易的列表)存储在这里,这是验证块所需要的 - 如果丢失可以重新生成,但这是一个昂贵的过程。
  • blocks/rev*.dat - 这包含最近区块的链状态 'undo' 信息,因此如果链被重组,对链状态的更改可以轻松回滚。

在通常情况下,较旧的块/*.dat 文件不会被触及,但可能存在边缘情况 (p运行ing) 它们可能会被触及,未来的开发可能希望按顺序触及它们释放 space 等 - 所以我不知道这是否是一个可靠的假设。

如果目的是在一台服务器上托管多个钱包的同时节省space,去重文件系统可能是一种不依赖符号链接的更安全的方法。

如果您正在设置一个新的 GuldenD,那么在复制到位后不需要重新扫描或其他选项,如果它是一个具有现有地址的 GuldenD,并且过去可能已经收到过资金,那么您会想要 运行 重新扫描。