可能很多人习惯了用导出私钥的方式来备份钱包,像下面这样,在控制台执行命令(将下面test.abit替换成自己的账号):
>> wallet_dump_private_key test.abit
"5HtWgbu1vcPe7trStHaVKoRjjPaMaGPzxJgavLHLw1tvPwuCPCx"
但是请注意,这种方法可能会导致账号异常,因为备份出来的私钥可能不完整。
要想查看自己的备份是否存在问题,首先请按下面的命令检查一下要备份的账号(将参数abit或test.abit替换成你的账号)
>> wallet_get_account abit
{
...
"owner_key": "BTS7NLcZJzqq3mvKfcqoN52ainajDckyMp5SYRgzicfbHD6u587ib",
"active_key_history": [[
"2014-07-27T10:02:50",
"BTS7NLcZJzqq3mvKfcqoN52ainajDckyMp5SYRgzicfbHD6u587ib"
]
],
...
}
>> wallet_get_account test.abit
{
...
"owner_key": "BTS5R1G2iBqAoKAKZCRfJgZA7us7N7xkvSaMwStnY1hkK52s42A56",
"active_key_history": [[
"2015-01-07T13:40:53",
"BTS5j2xL7jKjFprETK1suWfxGEux8gQcuheyaL9nytW9AHtzRDuUz"
]
],
...
}
可以看到,上面两个账号中,abit的owner_key和active_key是相同的,而test.abit的两个key不同。
原因是创建账号的钱包版本不一样。老版本钱包使用的两个key是相同的,但是从某个版本开始,创建账号时会使用两个不同的key。
(具体这两个key的用途,记得有人发帖说过,我回头找到了再补充)
如果账号的两个key是一样的,以账号名为参数备份私钥的方式就没问题。
如果账号的owner_key和active_key不同,则需要针对两个key分别进行备份,如下:
>> wallet_dump_private_key BTS5j2xL7jKjFprETK1suWfxGEux8gQcuheyaL9nytW9AHtzRDuUz
"5HtWgbu1vcPe7trStHaVKoRjjPaMaGPzxJgavLHLw1tvPwuCPCx"
>> wallet_dump_private_key BTS5R1G2iBqAoKAKZCRfJgZA7us7N7xkvSaMwStnY1hkK52s42A56
"5JYu4swx6bhpMxJBNU1hCAxPE21eFWt24VphkexexdmVZKutfzg"
可以看到,用active_key导出的私钥,和账号名导出的私钥是相同的。而owner_key导出的私钥不同。实际上owner_key更重要。
将这两个私钥都保存下来就可以了。
导入私钥恢复账号时,需要将两个私钥都导入一遍。
写在最后:
1.下一个版本的钱包,将不再支持用账号名作为参数来导出私钥,只能用key作为参数
2.官方更推荐用导出json的方式来备份钱包