Debugging command line tool, to work with SSZ files, process ETH 2.0 state transitions, and compute proofs and meta-data.
Based on the Go-spec: ZRNT
- Install Go 1.16+
- Add
$HOME/go/bin
to your PATH.
Options:
-u
to force-update dependencies-tags bls_off
to disable BLS for testing purposes (not secure!!!)
# outside of an existing go module directory
go install github.com/protolambda/zcli@latest
The help
commands guide you through the usage
zcli --help
Quick overview of all commands (run zcli <sub command> --help
to get usage options and info).
zcli
pretty <phase> <type> <input> Pretty-print spec object (output indented JSON)
convert <phase> <type> <input> <output> Convert spec object from one format to another
diff <phase> <type> <a> <b> Diff spec data
meta <phase> <subcmd> List metadata of beacon state
proof <phase> <type> <input> --gindices Create SSZ merkle proofs over any spec object
root <phase> <type> <input> Compute the SSZ hash-tree-root of a spec object
transition <pre-phase> <slots/blocks/sub> Run state transitions and sub-processes
tree <phase> <type> Dump SSZ merkle tree of any spec object
version Print ZCLI and ZRNT version
All commands have a --help
for additional information, flags, etc.
And for many commands, use --config
and --preset-{forkname}
to select a known (minimal
, mainnet
, etc.) or custom YAML config/preset file!
E.g. --config=local_testnet.yaml
Inputs/outputs can:
- be specified as empty
""
, to read from STDIN/STDOUT - be specified with a prefix
json:
,yaml:
,ssz_snappy:
orssz:
to read/write that format. Writing can also usepretty:
(indented JSON).
MIT, see LICENSE
file.