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/binto your PATH.
Options:
-uto force-update dependencies-tags bls_offto disable BLS for testing purposes (not secure!!!)
# outside of an existing go module directory
go install github.com/protolambda/zcli@latestThe help commands guide you through the usage
zcli --helpQuick 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.