hiero-ledger / hiero-ledger/hiero-consensus-node

State inspection tool

Open
#18,798 1 comment 0 reactions 0 assignees View on GitHub
New Feature Platform
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

All Hedera nodes take state snapshots periodically. This is done for faster node restarts (so nodes don't have to reconnect to the network from genesis), and snapshots are also uploaded to GCP / AWS for public access. Snapshots are outdated by definition, they cannot be used to get the latest data, but they are still valuable source of information about the state. People may need to inspect snapshots for historical data, or for debugging purposes, or for many other reasons.

There is no easy way to inspect snapshots, though. Most snapshot files are MerkleDb data and metadata files in protobuf format. These files contain binary data, which is hard to deal with. For example, to find information about account 0.0.XYZ, this account should be first turned into bytes (in the right way), then looked up in the right file, and then the value (bytes) should be deserialized to an Account object. This is complicated and error prone.

It would be great to have a simple tool to automate this. The tool may be based on the state validation tool, or can be written from scratch. It can reuse platform and services classes from the consensus node repository. What kind of queries the tool should support, how its UI will look like is all TBD.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing state validation tool and the platform and services classes mentioned in the issue. Define supported snapshot queries and the user interface before implementation; done requires an agreed tool that can inspect serialized MerkleDb snapshot data and retrieve useful historical state.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.