mirror of
https://github.com/status-im/eth2.0-specs.git
synced 2025-02-09 01:04:14 +00:00
pr feedback
This commit is contained in:
parent
65a739fe41
commit
4b8f132957
@ -75,6 +75,7 @@ See constants from [Phase 0 validator guide](../phase0/validator.md#constants).
|
|||||||
| Name | Value | Unit | Duration |
|
| Name | Value | Unit | Duration |
|
||||||
| - | - | :-: | :-: |
|
| - | - | :-: | :-: |
|
||||||
| `TARGET_LIGHT_CLIENT_AGGREGATORS_PER_SLOT` | `2**3` (= 8) | validators | |
|
| `TARGET_LIGHT_CLIENT_AGGREGATORS_PER_SLOT` | `2**3` (= 8) | validators | |
|
||||||
|
| `LIGHT_CLIENT_PREPARATION_EPOCHS` | `2**2` (= 4) | epochs | |
|
||||||
|
|
||||||
## Becoming a validator
|
## Becoming a validator
|
||||||
|
|
||||||
@ -86,7 +87,7 @@ Beacon chain validator assignments to beacon committees and beacon block proposa
|
|||||||
|
|
||||||
### Lookahead
|
### Lookahead
|
||||||
|
|
||||||
Lookahead for beacon committee assignments operates in the same manner as Phase 0, but committee members must join a shard block pubsub topic in addition to the committee attestation topic.o
|
Lookahead for beacon committee assignments operates in the same manner as Phase 0, but committee members must join a shard block pubsub topic in addition to the committee attestation topic.
|
||||||
|
|
||||||
Specifically _after_ finding stable peers of attestation subnets (see Phase 0) a validator should:
|
Specifically _after_ finding stable peers of attestation subnets (see Phase 0) a validator should:
|
||||||
* Let `shard = compute_shard_from_committee_index(committe_index)`
|
* Let `shard = compute_shard_from_committee_index(committe_index)`
|
||||||
@ -196,7 +197,8 @@ def get_best_light_client_aggregate(block: BeaconBlock,
|
|||||||
|
|
||||||
return max(
|
return max(
|
||||||
viable_aggregates,
|
viable_aggregates,
|
||||||
key=lambda a: len([i for i in a.aggregation_bits if i == 1]),
|
# Ties broken by lexicographically by hash_tree_root
|
||||||
|
key=lambda a: (len([i for i in a.aggregation_bits if i == 1]), hash_tree_root(a)),
|
||||||
default=LightClientVote(),
|
default=LightClientVote(),
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
@ -378,9 +380,10 @@ When `get_current_epoch(state) % LIGHT_CLIENT_COMMITTEE_PERIOD == LIGHT_CLIENT_C
|
|||||||
If the validator is in the next light client committee, they must join the `light_client_votes` pubsub topic to begin duties at the start of the next period.
|
If the validator is in the next light client committee, they must join the `light_client_votes` pubsub topic to begin duties at the start of the next period.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
def is_in_next_light_client_committee(state: BeaconState, index: ValidatorIndex) -> boolean:
|
def is_in_next_light_client_committee(state: BeaconState, index: ValidatorIndex) -> bool:
|
||||||
period_start_epoch = get_current_epoch(state) + LIGHT_CLIENT_COMMITTEE_PERIOD % get_current_epoch(state)
|
current_source_epoch = compute_committee_source_epoch(get_current_epoch(state), LIGHT_CLIENT_COMMITTEE_PERIOD)
|
||||||
next_committee = get_light_client_committee(state, period_start_epoch)
|
next_source_epoch = current_source_epoch + LIGHT_CLIENT_COMMITTEE_PERIOD
|
||||||
|
next_committee = get_light_client_committee(state, next_source_epoch)
|
||||||
return index in next_committee
|
return index in next_committee
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user