Skip to content

protolambda/zcli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZRNT CLI

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

Installation

Pre-requisites

  • Install Go 1.16+
  • Add $HOME/go/bin to your PATH.

Install

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

Usage

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: or ssz: to read/write that format. Writing can also use pretty: (indented JSON).

License

MIT, see LICENSE file.