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

Blockchain 如何将Gulden区块链数据从一个钱包复制到另一个钱包,blockchain,Blockchain,我应该从blocks目录复制哪些文件以将所有可用区块链数据复制到另一个钱包 我应该包括: blk*.dat文件 rev*.dat文件 索引目录及其内容 此外,除了最新的.dat文件外,还可以安全地对所有文件进行符号链接,而不是复制以保存存储(假设以前的.dat文件从未更改) 复制/链接后,我是否应该使用其他命令行参数(如-rescan?)运行Gulden?我正在将其作为Gulden数据目录结构的参考。 相关部分如下: blocks/blk000???.dat:块数据(自定义,每个文件128

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

我应该包括:

  • blk*.dat文件
  • rev*.dat文件
  • 索引目录及其内容
此外,除了最新的.dat文件外,还可以安全地对所有文件进行符号链接,而不是复制以保存存储(假设以前的.dat文件从未更改)

复制/链接后,我是否应该使用其他命令行参数(如-rescan?

)运行Gulden?我正在将其作为Gulden数据目录结构的参考。 相关部分如下:

blocks/blk000???.dat:块数据(自定义,每个文件128 MiB)

块/rev000°.dat;块撤消数据(自定义)

块/索引/*;块索引(LevelDB)

链状态/*;区块链状态数据库(LevelDB)

上述四个基本上包含区块链,因此需要:

  • blocks/blk*.dat-实际块写入此处
  • blocks/index/*-此处存储了对上述文件的快速索引,从技术上讲,不使用该索引就可以找到块,但这将成为一个缓慢的过程
  • chainstate/*-UTXO(所有未使用事务的列表)存储在此处,这是验证块所需的-如果丢失,可以重新生成,但这是一个昂贵的过程
  • blocks/rev*.dat-包含最新块的链状态“撤消”信息,以便在重新组织链时,可以轻松回滚对链状态的更改
在通常情况下,旧的block/*.dat文件不会被触碰,但可能会有边缘情况(修剪),未来的开发可能会触碰它们以释放空间等-因此我不知道这是否是一个安全的假设

如果目的是在一台服务器上托管多个钱包的同时节省空间,那么重复数据消除文件系统可能是一种更安全的方法,而无需依赖符号链接


如果您正在设置一个新的Guldendd,则在复制到位后无需重新扫描或其他选项,如果它是一个具有可能在过去收到资金的现有地址的Guldendd,则您希望运行重新扫描。

现在尝试另一种方法:只需将wallet.dat文件复制到完全同步的datadir即可。然而,我得到了以下错误:错误:wallet.dat损坏,打捞失败。我应该复制/删除其他文件吗?只有wallet.dat应该工作。请确保复制应用程序时该应用程序已关闭,并且权限正确(例如,您是否可能以root用户身份复制该应用程序?这可能会使运行该程序的用户无法访问该文件)。结果是路径上几乎看不见的虫子。