lighthouse/beacon_node
Mac L e05142b798 Add API to compute discrete validator attestation performance (#2874)
## Issue Addressed

N/A

## Proposed Changes

Add a HTTP API which can be used to compute the attestation performances of a validator (or all validators) over a discrete range of epochs.
Performances can be computed for a single validator, or for the global validator set. 

## Usage
### Request
The API can be used as follows:
```
curl "http://localhost:5052/lighthouse/analysis/attestation_performance/{validator_index}?start_epoch=57730&end_epoch=57732"
```
Alternatively, to compute performances for the global validator set:
```
curl "http://localhost:5052/lighthouse/analysis/attestation_performance/global?start_epoch=57730&end_epoch=57732"
```

### Response
The response is JSON formatted as follows:
```
[
  {
    "index": 72,
    "epochs": {
      "57730": {
        "active": true,
        "head": false,
        "target": false,
        "source": false
      },
      "57731": {
        "active": true,
        "head": true,
        "target": true,
        "source": true,
        "delay": 1
      },
      "57732": {
        "active": true,
        "head": true,
        "target": true,
        "source": true,
        "delay": 1
      },
    }
  }
]
```
> Note that the `"epochs"` are not guaranteed to be in ascending order. 

## Additional Info

- This API is intended to be used in our upcoming validator analysis tooling (#2873) and will likely not be very useful for regular users. Some advanced users or block explorers may find this API useful however.
- The request range is limited to 100 epochs (since the range is inclusive and it also computes the `end_epoch` it's actually 101 epochs) to prevent Lighthouse using exceptionally large amounts of memory.
2022-01-27 22:58:31 +00:00
..
beacon_chain Implement API for block rewards (#2628) 2022-01-27 01:06:02 +00:00
client Removed all disable_forks (#2925) 2022-01-20 09:14:26 +00:00
eth1 Bump crate versions (#2829) 2021-12-02 14:29:57 +11:00
execution_layer Rust 1.58 lints (#2906) 2022-01-13 22:39:58 +00:00
genesis Bump crate versions (#2829) 2021-12-02 14:29:57 +11:00
http_api Add API to compute discrete validator attestation performance (#2874) 2022-01-27 22:58:31 +00:00
http_metrics Additional networking metrics (#2549) 2021-12-22 06:17:14 +00:00
lighthouse_network Increase target subnet peers (#2948) 2022-01-24 12:08:00 +00:00
network Code quality improvents to the network service (#2932) 2022-01-26 23:14:23 +00:00
operation_pool Implement API for block rewards (#2628) 2022-01-27 01:06:02 +00:00
src Update to spec v1.1.8 (#2893) 2022-01-19 00:24:19 +00:00
store Additional networking metrics (#2549) 2021-12-22 06:17:14 +00:00
tests Altair consensus changes and refactors (#2279) 2021-07-09 06:15:32 +00:00
timer Update Lighthouse Dependencies (#2818) 2021-11-18 05:08:42 +00:00
Cargo.toml v2.1.1 (#2951) 2022-01-25 00:46:24 +00:00