分类
Uncategorized

备份的视图钱包.dat使用sqlite浏览器

我备份了我的钱包.dat使用api参考中提到的命令:
比特币cli-rpcport=18332-rpcuser=user-rpcpassword=password backupwallet“/比特币/备份.dat”
我想使用’db browser for sqlite’(或任何其他sqlite浏览器)查看备份的db文件。但是,当打开db文件时,它会提示输入密码/密钥来解密钱包文件。
它指的是哪个密码/密钥?创建备份时,我没有指定任何密码或密钥。。
在此处输入图像描述
比特币核心
备份
密码短语
分享
改进这个问题
跟随
三小时前问的
利奥角
2144枚青铜徽章
有什么理由不使用Berkeley db utils包中的db\u dump吗?我已经在Windows-10下通过WSL(Ubuntu)使用过了——它肯定可以转储未加密的比特币钱包.dat文件。我想在OSX下安装和使用db utils可能更容易——如果这是您的操作系统的话。–RedGrittyBrick 59分钟前
好吧钱包.dat是从运行比特币核心的Ubuntu服务器上下载的,备份完成后我会在OSX机器上打开它。。我还不知道Berkeley db utils包,db\u dump util可以安全地在一个实时运行的节点上运行吗?或者它能和已经备份的钱包.dat文件?——43分钟前的利奥角
我把它和一个备份的钱包.dat-不是一个被积极利用的。–RedGrittyBrick 38分钟前
谢谢@RedGrittyBrick很好用,不知道这个包存在!我猜钱包.dat它只是由一个“main”db/schema和其中的键组成,我希望能直观地看到其中还包含了什么,但它看起来只是键和一些meta-leoèu cape 35分钟前的东西
好的,我会把我的评论作为一个答案——28分钟前的RedGrittyBrick
添加评论
1个答案
已对此帖子进行了编辑
1
您可以使用Berkeley db utils包中的db\u dump。
我已经在Windows-10下通过WSL(Ubuntu)使用过了——它肯定可以转储未加密的比特币钱包.dat文件。
比特币核心用于钱包.dat是一个键值存储-使用的键看起来像“key”和“keymeta”这样的词。
据我所知,DB库不知道键和值的结构(如果不是简单的数据类型的话)。我相信像比特币核心(Bitcoin core)这样的应用程序通常会存储一些blob,这些blob的内容无法被缺乏应用程序模式知识的通用工具解析。同样的观察结果也可能适用于sqlite浏览器
然而,db\u转储输出是一个值得一提的步骤从十六进制转储!-p或-da选项可能有用。
https://github.com/bitcoin/bitcoin/pull/19077说
这个PR添加了一个新的类SQLiteDatabase,它是WalletDatabase的一个子类。这提供了对用于存储钱包记录的SQLite数据库的访问。为了保持与BDB的兼容性并降低更改的复杂性,我们没有使用SQLite的许多特性。我们严格地将其用作键值存储。我们创建一个表main,它有两列,key和value都是blob类型。

您可以使用Berkeley db utils包中的db\u dump。
我已经在Windows-10下通过WSL(Ubuntu)使用过了——它肯定可以转储未加密的比特币钱包.dat文件。
比特币核心用于钱包.dat是一个键值存储-使用的键看起来像“key”和“keymeta”这样的词。
据我所知,DB库不知道键和值的结构(如果不是简单的数据类型的话)。我相信像比特币核心(Bitcoin core)这样的应用程序通常会存储一些blob,这些blob的内容无法被缺乏应用程序模式知识的通用工具解析。同样的观察结果也可能适用于sqlite浏览器
然而,db\u转储输出是一个值得一提的步骤从十六进制转储!-p或-da选项可能有用。
https://github.com/bitcoin/bitcoin/pull/19077说
这个PR添加了一个新的类SQLiteDatabase,它是WalletDatabase的一个子类。这提供了对用于存储钱包记录的SQLite数据库的访问。为了保持与BDB的兼容性并降低更改的复杂性,我们没有使用SQLite的许多特性。我们严格地将其用作键值存储。我们创建一个表main,它有两列,key和value都是blob类型。

我们保留这个名字钱包.dat用于SQLite钱包。我们可以通过在钱包.dat文件。SQLite以一个以null结尾的字符串SQLite格式3开始它的文件。BDB在字节12处有0x00053162(请注意,此整数的字节顺序取决于系统结束度)。所以当我们看到钱包.dat我们要打开的文件,我们检查magic字节以确定要使用哪个数据库系统。
以及https://github.com/bitcoin/bitcoin/issues/20160提供逐步淘汰Berkely DB的时间表(这显然会影响此答案的内容)
我对一个钱包.dat使用十六进制转储的备份表明,钱包主要包含私钥、使用的地址和一些稀疏的元数据。这里有一个答案,我想是由Pieter Wuille或其他开发人员提供的,它提供了更多的信息-我会看看我是否能找到它。
分享
改进这个答案
跟随
32秒前编辑
28分钟前回答的
红砂砖
10.1k22金徽章1717银徽章3535铜徽章
新的钱包正在使用SQLite,因为OP提到了它,他们可能正在使用它,所以我怀疑Berkeley DB工具是否适用于他们的用例——darosior 17分钟前
@darosier,AIUI比特币核心对钱包文件使用的库与其他文件不同。github.com/bitcoin/bitcoin/issues/20160–14分钟前的RedGrittyBrick
我在已经备份的数据库上运行了db\u转储钱包.dat它确实转储了一些有趣的信息,比如db’main’的名称和键。我想钱包里差不多就这些了。。?希望能看到db的图像。我还没有将这个答案标记为正确的,因为我仍然想知道浏览器需要哪个密码/密钥-12分钟前的leoèu cape
@利奥:我猜它需要用来加密密钥值的密码(如果你保护密钥的话)钱包.dat但我不知道比特币核心是否使用DB库提供的一些全局加密,或者它是否只对相关的值内容应用自己的加密(我以为是后者,但实际上并不确定)。我猜测SQlite可能要求一个不适用的全局DB密码,可能是因为它很混乱,或者是因为它想让您决定是否需要一个。我不熟悉SQlite–4分钟前的RedGrittyBrick

sskoo区块链比特币www.qkl91.com.com (87)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注