prysm-pulse/tools/specs-checker
terencechain d17996f8b0
Update to V4 🚀 (#12134)
* Update V3 from V4

* Fix build v3 -> v4

* Update ssz

* Update beacon_chain.pb.go

* Fix formatter import

* Update update-mockgen.sh comment to v4

* Fix conflicts. Pass build and tests

* Fix test
2023-03-17 18:52:56 +00:00
..
data Spec checker tool (#8722) 2021-04-15 14:54:07 +00:00
BUILD.bazel Update to V4 🚀 (#12134) 2023-03-17 18:52:56 +00:00
check.go Spec checker tool (#8722) 2021-04-15 14:54:07 +00:00
download.go Replace ioutil with io and os (#10541) 2022-04-18 20:42:07 +00:00
main.go Spec checker tool (#8722) 2021-04-15 14:54:07 +00:00
README.md Change Eth2 Repository Names (#9425) 2021-08-19 13:00:57 -05:00

Specs checker tool

This simple tool helps downloading and parsing Ethereum specs, to be later used for making sure that our reference comments match specs definitions precisely.

Updating the reference specs

See main.go for a list of files to be downloaded, currently:

var specDirs = map[string][]string{
	"specs/phase0": {
		"beacon-chain.md",
		"fork-choice.md",
		"validator.md",
		"weak-subjectivity.md",
	},
	"ssz": {
		"merkle-proofs.md",
	},
}

To download/update specs:

bazel run //tools/specs-checker download -- --dir=$PWD/tools/specs-checker/data

This will pull the files defined in specDirs, parse them (extract Python code snippets, discarding any other text), and save them to the folder from which bazel run //tools/specs-checker check will be able to embed.

Checking against the reference specs

To check whether reference comments have the matching version of Python specs:

bazel run //tools/specs-checker check -- --dir $PWD/beacon-chain
bazel run //tools/specs-checker check -- --dir $PWD/validator
bazel run //tools/specs-checker check -- --dir $PWD/shared

Or, to check the whole project:

bazel run //tools/specs-checker check -- --dir $PWD