有没有办法检查 NEAR 协议使用的 RocksDB 实例的内容?

Is there any way to inspect the contents of the RocksDB instance used by NEAR Protocol?

披露:我在 NEAR 工作,目前正在入职

当我在干净的机器上启动本地节点时,我看到在我的主目录中创建了一个 .near 文件夹,其中包含一些配置文件(确切的文件似乎取决于哪个 start_脚本我 运行)。 .near 文件夹内出现另一个名为 data.

的文件夹 文件夹中的

运行 strings ~/.near/data/*.sst 吐出几行以字符串 "rocksdb" 开头的内容,这使我进入了 this reference to RocksDB

有什么方法可以检查节点的 RocksDB 实例的内容吗?

我找到了 Keylord,但是当我尝试配置一个新的数据库连接时它崩溃了(通过将连接指向 ~/.near/data)。我没有追求那个话题。

PSA1:如果您想在故障排除时重置环境或避免重复使用旧数据,有时在节点重启之间备份 ~/.near 文件夹很有用

mv ~/.near ~/.near_`date +%Y-%m-%d.%s`

PSA2:在 MacOS 上,您可以观察 ~/.near 文件夹的内容在节点启动和 运行 时发生了什么。 (brew install watch).

watch -d -c -n 0.5 find ~/.near

RocksDB 的内容使用我们自己的二进制序列化格式 (http://borsh.io/) 进行序列化,因此您将无法使用通用的第三方工具检查内容