Home

Awesome

python-iavl implements iavl tree in python, and provides a cli tool to inspect the cosmos-sdk application db, can be used for debugging production issues, or doing fast rollback.

The cli tool can be run as nix flake on the fly, there are two exposed app, the iavl-cli(the default one) is for rocksdb db backend, the iavl-cli-leveldb is for goleveldb backend.

$ nix run github:crypto-com/python-iavl/$GIT_REF#iavl-cli -- --help
Usage: iavl [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  commit-infos           print latest version and commit infos of...
  diff-fastnode          compare fast node index with latest iavl tree...
  dump-changesets        extract changeset by comparing iavl versions and...
  fast-node              print the content of a fast node
  fast-rollback          A quick and dirty way to rollback chain state,...
  metadata               print storage version and latest version of iavl...
  node                   print the content of a node
  print-changeset        decode and print the content of changeset files
  range-fastnode         iterate fast node index
  range-iavl             iterate iavl tree
  root-hash              print root hashes of iavl stores
  root-node              print root nodes of iavl stores
  test-state-round-trip  extract state changes from iavl versions,...
  visualize              visualize iavl tree with dot, example: $...