# Tooling compilation ## Introduction This doc aims to be a compendium of tools that can be used to debug Execution Layer(EL) and Consensus Layer(CL) clients. In case some tools are missing, please leave a comment so we can improve the list. ## CL Tools list - [`ethdo`](https://github.com/wealdtech/ethdo) - Used to generate epoch summaries(missing attestations, proposals, etc) or interact with the CL API for various purposes - [`lcli`](https://github.com/sigp/lighthouse/tree/stable/lcli) - Lighthouse cli, can be used to parse SSZ files, replay state transitions - [`ncli`](https://github.com/status-im/nimbus-eth2/tree/stable/ncli) - Nimbus cli, can be used to parse SSZ files, replay state transitions, print tree root - [`zcli`](https://github.com/protolambda/zcli) - Debug CLI to parse SSZ files, process state transition and compute proofs - [`eth2-val-tools`](https://github.com/protolambda/eth2-val-tools) - Generate mnemonics, build deposit data, generate validator keys - [`consensus-specs python`](https://pypi.org/project/eth2spec/) - Import as a lib in python scripts and parse data - [`eth2-testnet-genesis`](https://github.com/protolambda/eth2-testnet-genesis) - Generate a genesis SSZ with embedded deposits - [`teku`](https://github.com/ConsenSys/teku) - Has built in debug tools - [`slot-time mapper`](https://slots.symphonious.net/) - Useful for finding a slot at a given time or vice versa - [`CL forkmon`](https://github.com/ralexstokes/ethereum_consensus_monitor) - Tracks the head of provided CL nodes - [`beaconchain explorer`](https://github.com/gobitfly/eth2-beaconchain-explorer) - Webpage with overview of validator performance and proposals - [`ChainD`](https://github.com/wealdtech/chaind) - Parses a beacon block and stores a lot of information in a DB for analysis and reporting ## EL Tools list - [`goevmlab`](https://github.com/holiman/goevmlab) - View trace diff and view traces - [`JSON RPC`](https://github.com/ethereum/wiki/blob/78990aca283f67ceb26ed70c8eb82008424aaf64/JSON-RPC.md#eth_getlogs) - Pass requests to EL nodes via RPC port - [`Nethermind CLI`](https://docs.nethermind.io/nethermind/nethermind-utilities/cli) - Allows you to interact with any node to dump blocks, query information, get traces - [`Geth console`](https://geth.ethereum.org/docs/interface/javascript-console) - Allows you to interact with any node to dump blocks, query information, get traces - [`ethstats`](https://github.com/goerli/ethstats-server) - Compare sync state of multiple ELs in one page - `forkmon` - Compare head information of multiple ELs - [`explorer`](https://github.com/blockscout/blockscout) - Website to check information on transactions and blocks