lighthouse/lcli
Mac L 440badd973 Provide lcli tooling for attestation packing analysis (#2480)
## Proposed Changes

Add tooling to lcli to provide a way to measure the attestation packing efficiency of historical blocks by querying a beacon node API endpoint.

## Additional Info

Since block rewards are proportional to the number of unique attestations included in the block, a measure of efficiency can be calculated by comparing the number of unique attestations that could have been included into a block vs the number of unique attestations that were actually included.

This lcli tool provides the following data per block:
- Slot Number
- Proposer Index and Grafitti (if any)
- Available Unique Attestations
- Included Unique Attestations
- Best-effort estimate of the number of offline validators for the epoch. This means we can normalize the calculated efficiency, removing offline validators from the available attestation set.

The data is outputted as a csv file.

## Usage
Install lcli:
```
make install-lcli
```
Alternatively install with the `fake_crypto` feature to skip signature verification which improves performance:
```
cargo install --path lcli --features=fake_crypto --force --locked
```

Ensure a Lighthouse beacon node is running and synced. A non-default API endpoint can be passed with the `--endpoint` flag.

Run:
```
lcli etl-block-efficiency --output /path/to/output.csv --start-epoch 40 --end-epoch 80
```
2021-09-25 07:53:56 +00:00
..
src Provide lcli tooling for attestation packing analysis (#2480) 2021-09-25 07:53:56 +00:00
.gitignore Move lcli out of the tests dir 2019-09-12 12:28:31 -04:00
Cargo.toml Provide lcli tooling for attestation packing analysis (#2480) 2021-09-25 07:53:56 +00:00
Dockerfile Add lcli Dockerfile and auto-build to CI (#2469) 2021-07-21 03:24:23 +00:00
README.md Refactor docs into mdbook (#547) 2019-10-02 11:04:56 +10:00

lcli

A command-line debugging tool, inspired by zcli.

Allows for replaying state transitions from SSZ files to assist in fault-finding.

Usage

$ cargo run --release -- --help