Rename `_INDEX` generalized index constants to `_GINDEX`

To assist with readability, use `_GINDEX` suffix when referring to
generalized index constants.

Does neither affect consensus, beacon-API nor builder API.
This commit is contained in:
Etan Kissling 2023-11-01 13:30:55 +01:00
parent 4e5599f41b
commit 89c986ee6a
No known key found for this signature in database
GPG Key ID: B21DA824C5A3D03D
6 changed files with 39 additions and 39 deletions

View File

@ -42,9 +42,9 @@ def compute_merkle_proof_for_state(state: BeaconState,
@classmethod @classmethod
def hardcoded_ssz_dep_constants(cls) -> Dict[str, str]: def hardcoded_ssz_dep_constants(cls) -> Dict[str, str]:
return { return {
'FINALIZED_ROOT_INDEX': 'GeneralizedIndex(105)', 'FINALIZED_ROOT_GINDEX': 'GeneralizedIndex(105)',
'CURRENT_SYNC_COMMITTEE_INDEX': 'GeneralizedIndex(54)', 'CURRENT_SYNC_COMMITTEE_GINDEX': 'GeneralizedIndex(54)',
'NEXT_SYNC_COMMITTEE_INDEX': 'GeneralizedIndex(55)', 'NEXT_SYNC_COMMITTEE_GINDEX': 'GeneralizedIndex(55)',
} }
@classmethod @classmethod

View File

@ -73,7 +73,7 @@ def create_light_client_bootstrap(state: BeaconState,
return LightClientBootstrap( return LightClientBootstrap(
header=block_to_light_client_header(block), header=block_to_light_client_header(block),
current_sync_committee=state.current_sync_committee, current_sync_committee=state.current_sync_committee,
current_sync_committee_branch=compute_merkle_proof_for_state(state, CURRENT_SYNC_COMMITTEE_INDEX), current_sync_committee_branch=compute_merkle_proof_for_state(state, CURRENT_SYNC_COMMITTEE_GINDEX),
) )
``` ```
@ -121,7 +121,7 @@ def create_light_client_update(state: BeaconState,
if update_attested_period == update_signature_period: if update_attested_period == update_signature_period:
update.next_sync_committee = attested_state.next_sync_committee update.next_sync_committee = attested_state.next_sync_committee
update.next_sync_committee_branch = compute_merkle_proof_for_state( update.next_sync_committee_branch = compute_merkle_proof_for_state(
attested_state, NEXT_SYNC_COMMITTEE_INDEX) attested_state, NEXT_SYNC_COMMITTEE_GINDEX)
# Indicate finality whenever possible # Indicate finality whenever possible
if finalized_block is not None: if finalized_block is not None:
@ -131,7 +131,7 @@ def create_light_client_update(state: BeaconState,
else: else:
assert attested_state.finalized_checkpoint.root == Bytes32() assert attested_state.finalized_checkpoint.root == Bytes32()
update.finality_branch = compute_merkle_proof_for_state( update.finality_branch = compute_merkle_proof_for_state(
attested_state, FINALIZED_ROOT_INDEX) attested_state, FINALIZED_ROOT_GINDEX)
update.sync_aggregate = block.message.body.sync_aggregate update.sync_aggregate = block.message.body.sync_aggregate
update.signature_slot = block.message.slot update.signature_slot = block.message.slot

View File

@ -60,9 +60,9 @@ Additional documents describe how the light client sync protocol can be used:
| Name | Value | | Name | Value |
| - | - | | - | - |
| `FINALIZED_ROOT_INDEX` | `get_generalized_index(BeaconState, 'finalized_checkpoint', 'root')` (= 105) | | `FINALIZED_ROOT_GINDEX` | `get_generalized_index(BeaconState, 'finalized_checkpoint', 'root')` (= 105) |
| `CURRENT_SYNC_COMMITTEE_INDEX` | `get_generalized_index(BeaconState, 'current_sync_committee')` (= 54) | | `CURRENT_SYNC_COMMITTEE_GINDEX` | `get_generalized_index(BeaconState, 'current_sync_committee')` (= 54) |
| `NEXT_SYNC_COMMITTEE_INDEX` | `get_generalized_index(BeaconState, 'next_sync_committee')` (= 55) | | `NEXT_SYNC_COMMITTEE_GINDEX` | `get_generalized_index(BeaconState, 'next_sync_committee')` (= 55) |
## Preset ## Preset
@ -93,7 +93,7 @@ class LightClientBootstrap(Container):
header: LightClientHeader header: LightClientHeader
# Current sync committee corresponding to `header.beacon.state_root` # Current sync committee corresponding to `header.beacon.state_root`
current_sync_committee: SyncCommittee current_sync_committee: SyncCommittee
current_sync_committee_branch: Vector[Bytes32, floorlog2(CURRENT_SYNC_COMMITTEE_INDEX)] current_sync_committee_branch: Vector[Bytes32, floorlog2(CURRENT_SYNC_COMMITTEE_GINDEX)]
``` ```
### `LightClientUpdate` ### `LightClientUpdate`
@ -104,10 +104,10 @@ class LightClientUpdate(Container):
attested_header: LightClientHeader attested_header: LightClientHeader
# Next sync committee corresponding to `attested_header.beacon.state_root` # Next sync committee corresponding to `attested_header.beacon.state_root`
next_sync_committee: SyncCommittee next_sync_committee: SyncCommittee
next_sync_committee_branch: Vector[Bytes32, floorlog2(NEXT_SYNC_COMMITTEE_INDEX)] next_sync_committee_branch: Vector[Bytes32, floorlog2(NEXT_SYNC_COMMITTEE_GINDEX)]
# Finalized header corresponding to `attested_header.beacon.state_root` # Finalized header corresponding to `attested_header.beacon.state_root`
finalized_header: LightClientHeader finalized_header: LightClientHeader
finality_branch: Vector[Bytes32, floorlog2(FINALIZED_ROOT_INDEX)] finality_branch: Vector[Bytes32, floorlog2(FINALIZED_ROOT_GINDEX)]
# Sync committee aggregate signature # Sync committee aggregate signature
sync_aggregate: SyncAggregate sync_aggregate: SyncAggregate
# Slot at which the aggregate signature was created (untrusted) # Slot at which the aggregate signature was created (untrusted)
@ -122,7 +122,7 @@ class LightClientFinalityUpdate(Container):
attested_header: LightClientHeader attested_header: LightClientHeader
# Finalized header corresponding to `attested_header.beacon.state_root` # Finalized header corresponding to `attested_header.beacon.state_root`
finalized_header: LightClientHeader finalized_header: LightClientHeader
finality_branch: Vector[Bytes32, floorlog2(FINALIZED_ROOT_INDEX)] finality_branch: Vector[Bytes32, floorlog2(FINALIZED_ROOT_GINDEX)]
# Sync committee aggregate signature # Sync committee aggregate signature
sync_aggregate: SyncAggregate sync_aggregate: SyncAggregate
# Slot at which the aggregate signature was created (untrusted) # Slot at which the aggregate signature was created (untrusted)
@ -174,14 +174,14 @@ def is_valid_light_client_header(header: LightClientHeader) -> bool:
```python ```python
def is_sync_committee_update(update: LightClientUpdate) -> bool: def is_sync_committee_update(update: LightClientUpdate) -> bool:
return update.next_sync_committee_branch != [Bytes32() for _ in range(floorlog2(NEXT_SYNC_COMMITTEE_INDEX))] return update.next_sync_committee_branch != [Bytes32() for _ in range(floorlog2(NEXT_SYNC_COMMITTEE_GINDEX))]
``` ```
### `is_finality_update` ### `is_finality_update`
```python ```python
def is_finality_update(update: LightClientUpdate) -> bool: def is_finality_update(update: LightClientUpdate) -> bool:
return update.finality_branch != [Bytes32() for _ in range(floorlog2(FINALIZED_ROOT_INDEX))] return update.finality_branch != [Bytes32() for _ in range(floorlog2(FINALIZED_ROOT_GINDEX))]
``` ```
### `is_better_update` ### `is_better_update`
@ -286,8 +286,8 @@ def initialize_light_client_store(trusted_block_root: Root,
assert is_valid_merkle_branch( assert is_valid_merkle_branch(
leaf=hash_tree_root(bootstrap.current_sync_committee), leaf=hash_tree_root(bootstrap.current_sync_committee),
branch=bootstrap.current_sync_committee_branch, branch=bootstrap.current_sync_committee_branch,
depth=floorlog2(CURRENT_SYNC_COMMITTEE_INDEX), depth=floorlog2(CURRENT_SYNC_COMMITTEE_GINDEX),
index=get_subtree_index(CURRENT_SYNC_COMMITTEE_INDEX), index=get_subtree_index(CURRENT_SYNC_COMMITTEE_GINDEX),
root=bootstrap.header.beacon.state_root, root=bootstrap.header.beacon.state_root,
) )
@ -358,8 +358,8 @@ def validate_light_client_update(store: LightClientStore,
assert is_valid_merkle_branch( assert is_valid_merkle_branch(
leaf=finalized_root, leaf=finalized_root,
branch=update.finality_branch, branch=update.finality_branch,
depth=floorlog2(FINALIZED_ROOT_INDEX), depth=floorlog2(FINALIZED_ROOT_GINDEX),
index=get_subtree_index(FINALIZED_ROOT_INDEX), index=get_subtree_index(FINALIZED_ROOT_GINDEX),
root=update.attested_header.beacon.state_root, root=update.attested_header.beacon.state_root,
) )
@ -373,8 +373,8 @@ def validate_light_client_update(store: LightClientStore,
assert is_valid_merkle_branch( assert is_valid_merkle_branch(
leaf=hash_tree_root(update.next_sync_committee), leaf=hash_tree_root(update.next_sync_committee),
branch=update.next_sync_committee_branch, branch=update.next_sync_committee_branch,
depth=floorlog2(NEXT_SYNC_COMMITTEE_INDEX), depth=floorlog2(NEXT_SYNC_COMMITTEE_GINDEX),
index=get_subtree_index(NEXT_SYNC_COMMITTEE_INDEX), index=get_subtree_index(NEXT_SYNC_COMMITTEE_GINDEX),
root=update.attested_header.beacon.state_root, root=update.attested_header.beacon.state_root,
) )
@ -493,7 +493,7 @@ def process_light_client_finality_update(store: LightClientStore,
update = LightClientUpdate( update = LightClientUpdate(
attested_header=finality_update.attested_header, attested_header=finality_update.attested_header,
next_sync_committee=SyncCommittee(), next_sync_committee=SyncCommittee(),
next_sync_committee_branch=[Bytes32() for _ in range(floorlog2(NEXT_SYNC_COMMITTEE_INDEX))], next_sync_committee_branch=[Bytes32() for _ in range(floorlog2(NEXT_SYNC_COMMITTEE_GINDEX))],
finalized_header=finality_update.finalized_header, finalized_header=finality_update.finalized_header,
finality_branch=finality_update.finality_branch, finality_branch=finality_update.finality_branch,
sync_aggregate=finality_update.sync_aggregate, sync_aggregate=finality_update.sync_aggregate,
@ -512,9 +512,9 @@ def process_light_client_optimistic_update(store: LightClientStore,
update = LightClientUpdate( update = LightClientUpdate(
attested_header=optimistic_update.attested_header, attested_header=optimistic_update.attested_header,
next_sync_committee=SyncCommittee(), next_sync_committee=SyncCommittee(),
next_sync_committee_branch=[Bytes32() for _ in range(floorlog2(NEXT_SYNC_COMMITTEE_INDEX))], next_sync_committee_branch=[Bytes32() for _ in range(floorlog2(NEXT_SYNC_COMMITTEE_GINDEX))],
finalized_header=LightClientHeader(), finalized_header=LightClientHeader(),
finality_branch=[Bytes32() for _ in range(floorlog2(FINALIZED_ROOT_INDEX))], finality_branch=[Bytes32() for _ in range(floorlog2(FINALIZED_ROOT_GINDEX))],
sync_aggregate=optimistic_update.sync_aggregate, sync_aggregate=optimistic_update.sync_aggregate,
signature_slot=optimistic_update.signature_slot, signature_slot=optimistic_update.signature_slot,
) )

View File

@ -11,17 +11,17 @@ from eth2spec.test.context import (
def test_current_sync_committee_merkle_proof(spec, state): def test_current_sync_committee_merkle_proof(spec, state):
yield "object", state yield "object", state
current_sync_committee_branch = spec.compute_merkle_proof_for_state( current_sync_committee_branch = spec.compute_merkle_proof_for_state(
state, spec.CURRENT_SYNC_COMMITTEE_INDEX) state, spec.CURRENT_SYNC_COMMITTEE_GINDEX)
yield "proof", { yield "proof", {
"leaf": "0x" + state.current_sync_committee.hash_tree_root().hex(), "leaf": "0x" + state.current_sync_committee.hash_tree_root().hex(),
"leaf_index": spec.CURRENT_SYNC_COMMITTEE_INDEX, "leaf_index": spec.CURRENT_SYNC_COMMITTEE_GINDEX,
"branch": ['0x' + root.hex() for root in current_sync_committee_branch] "branch": ['0x' + root.hex() for root in current_sync_committee_branch]
} }
assert spec.is_valid_merkle_branch( assert spec.is_valid_merkle_branch(
leaf=state.current_sync_committee.hash_tree_root(), leaf=state.current_sync_committee.hash_tree_root(),
branch=current_sync_committee_branch, branch=current_sync_committee_branch,
depth=spec.floorlog2(spec.CURRENT_SYNC_COMMITTEE_INDEX), depth=spec.floorlog2(spec.CURRENT_SYNC_COMMITTEE_GINDEX),
index=spec.get_subtree_index(spec.CURRENT_SYNC_COMMITTEE_INDEX), index=spec.get_subtree_index(spec.CURRENT_SYNC_COMMITTEE_GINDEX),
root=state.hash_tree_root(), root=state.hash_tree_root(),
) )
@ -32,17 +32,17 @@ def test_current_sync_committee_merkle_proof(spec, state):
def test_next_sync_committee_merkle_proof(spec, state): def test_next_sync_committee_merkle_proof(spec, state):
yield "object", state yield "object", state
next_sync_committee_branch = spec.compute_merkle_proof_for_state( next_sync_committee_branch = spec.compute_merkle_proof_for_state(
state, spec.NEXT_SYNC_COMMITTEE_INDEX) state, spec.NEXT_SYNC_COMMITTEE_GINDEX)
yield "proof", { yield "proof", {
"leaf": "0x" + state.next_sync_committee.hash_tree_root().hex(), "leaf": "0x" + state.next_sync_committee.hash_tree_root().hex(),
"leaf_index": spec.NEXT_SYNC_COMMITTEE_INDEX, "leaf_index": spec.NEXT_SYNC_COMMITTEE_GINDEX,
"branch": ['0x' + root.hex() for root in next_sync_committee_branch] "branch": ['0x' + root.hex() for root in next_sync_committee_branch]
} }
assert spec.is_valid_merkle_branch( assert spec.is_valid_merkle_branch(
leaf=state.next_sync_committee.hash_tree_root(), leaf=state.next_sync_committee.hash_tree_root(),
branch=next_sync_committee_branch, branch=next_sync_committee_branch,
depth=spec.floorlog2(spec.NEXT_SYNC_COMMITTEE_INDEX), depth=spec.floorlog2(spec.NEXT_SYNC_COMMITTEE_GINDEX),
index=spec.get_subtree_index(spec.NEXT_SYNC_COMMITTEE_INDEX), index=spec.get_subtree_index(spec.NEXT_SYNC_COMMITTEE_GINDEX),
root=state.hash_tree_root(), root=state.hash_tree_root(),
) )
@ -53,17 +53,17 @@ def test_next_sync_committee_merkle_proof(spec, state):
def test_finality_root_merkle_proof(spec, state): def test_finality_root_merkle_proof(spec, state):
yield "object", state yield "object", state
finality_branch = spec.compute_merkle_proof_for_state( finality_branch = spec.compute_merkle_proof_for_state(
state, spec.FINALIZED_ROOT_INDEX) state, spec.FINALIZED_ROOT_GINDEX)
yield "proof", { yield "proof", {
"leaf": "0x" + state.finalized_checkpoint.root.hex(), "leaf": "0x" + state.finalized_checkpoint.root.hex(),
"leaf_index": spec.FINALIZED_ROOT_INDEX, "leaf_index": spec.FINALIZED_ROOT_GINDEX,
"branch": ['0x' + root.hex() for root in finality_branch] "branch": ['0x' + root.hex() for root in finality_branch]
} }
assert spec.is_valid_merkle_branch( assert spec.is_valid_merkle_branch(
leaf=state.finalized_checkpoint.root, leaf=state.finalized_checkpoint.root,
branch=finality_branch, branch=finality_branch,
depth=spec.floorlog2(spec.FINALIZED_ROOT_INDEX), depth=spec.floorlog2(spec.FINALIZED_ROOT_GINDEX),
index=spec.get_subtree_index(spec.FINALIZED_ROOT_INDEX), index=spec.get_subtree_index(spec.FINALIZED_ROOT_GINDEX),
root=state.hash_tree_root(), root=state.hash_tree_root(),
) )

View File

@ -248,7 +248,7 @@ def emit_update(test, spec, state, block, attested_state, attested_block, finali
if not with_next: if not with_next:
data.next_sync_committee = spec.SyncCommittee() data.next_sync_committee = spec.SyncCommittee()
data.next_sync_committee_branch = \ data.next_sync_committee_branch = \
[spec.Bytes32() for _ in range(spec.floorlog2(spec.NEXT_SYNC_COMMITTEE_INDEX))] [spec.Bytes32() for _ in range(spec.floorlog2(spec.NEXT_SYNC_COMMITTEE_GINDEX))]
current_slot = state.slot current_slot = state.slot
upgraded = upgrade_lc_update_to_store(d_spec, test.s_spec, data) upgraded = upgrade_lc_update_to_store(d_spec, test.s_spec, data)

View File

@ -57,12 +57,12 @@ def create_update(spec,
if with_next: if with_next:
update.next_sync_committee = attested_state.next_sync_committee update.next_sync_committee = attested_state.next_sync_committee
update.next_sync_committee_branch = spec.compute_merkle_proof_for_state( update.next_sync_committee_branch = spec.compute_merkle_proof_for_state(
attested_state, spec.NEXT_SYNC_COMMITTEE_INDEX) attested_state, spec.NEXT_SYNC_COMMITTEE_GINDEX)
if with_finality: if with_finality:
update.finalized_header = spec.block_to_light_client_header(finalized_block) update.finalized_header = spec.block_to_light_client_header(finalized_block)
update.finality_branch = spec.compute_merkle_proof_for_state( update.finality_branch = spec.compute_merkle_proof_for_state(
attested_state, spec.FINALIZED_ROOT_INDEX) attested_state, spec.FINALIZED_ROOT_GINDEX)
update.sync_aggregate, update.signature_slot = get_sync_aggregate( update.sync_aggregate, update.signature_slot = get_sync_aggregate(
spec, attested_state, num_participants) spec, attested_state, num_participants)