Update the equivocating indices in the store

Since we sometimes reuse the slashed validator index, we need to remove
it from the list of equivocating indices in the fork-choice store.
This commit is contained in:
Suphanat Chunhapanya 2023-07-11 15:47:17 +07:00
parent 75971a8c21
commit 3ed0619951
2 changed files with 37 additions and 1 deletions

View File

@ -1,4 +1,4 @@
EIP-6914 -- The Beacon Chain # EIP-6914 -- The Beacon Chain
## Table of contents ## Table of contents

View File

@ -0,0 +1,36 @@
# EIP-6914 -- Fork Choice
## Table of contents
<!-- TOC -->
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Introduction](#introduction)
- [Fork choice](#fork-choice)
- [Handlers](#handlers)
- [`on_reused_index`](#on_reused_index)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- /TOC -->
## Introduction
This is the modification of the fork choice according to EIP-6914.
## Fork choice
A new handler is added with this upgrade:
- `on_reused_index(store, index)` whenever a validator index `index: ValidatorIndex` is reused
This new handler is used to update the list of equivocating indices to be synchronized with the canonical chain.
### Handlers
#### `on_reused_index`
```python
def on_reused_index(store: Store, index: ValidatorIndex) -> None:
store.equivocating_indices.discard(index)
```