Use hash_tree_root everywhere

And get rid of merkle_root. This is possible because of SSZ tuples.
This commit is contained in:
Justin 2019-03-08 10:32:40 +01:00 committed by GitHub
parent 8dcc1ba930
commit 12695425c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 1 additions and 16 deletions

View File

@ -73,7 +73,6 @@
- [`get_active_index_root`](#get_active_index_root) - [`get_active_index_root`](#get_active_index_root)
- [`generate_seed`](#generate_seed) - [`generate_seed`](#generate_seed)
- [`get_beacon_proposer_index`](#get_beacon_proposer_index) - [`get_beacon_proposer_index`](#get_beacon_proposer_index)
- [`merkle_root`](#merkle_root)
- [`verify_merkle_branch`](#verify_merkle_branch) - [`verify_merkle_branch`](#verify_merkle_branch)
- [`get_attestation_participants`](#get_attestation_participants) - [`get_attestation_participants`](#get_attestation_participants)
- [`is_power_of_two`](#is_power_of_two) - [`is_power_of_two`](#is_power_of_two)
@ -1005,20 +1004,6 @@ def get_beacon_proposer_index(state: BeaconState,
return first_committee[slot % len(first_committee)] return first_committee[slot % len(first_committee)]
``` ```
### `merkle_root`
```python
def merkle_root(values: List[Bytes32]) -> Bytes32:
"""
Merkleize ``values`` (where ``len(values)`` is a power of two) and return the Merkle root.
Note that the leaves are not hashed.
"""
o = [0] * len(values) + values
for i in range(len(values) - 1, 0, -1):
o[i] = hash(o[i * 2] + o[i * 2 + 1])
return o[1]
```
### `verify_merkle_branch` ### `verify_merkle_branch`
```python ```python
@ -2494,7 +2479,7 @@ def finish_epoch_update(state: BeaconState) -> None:
state.latest_randao_mixes[next_epoch % LATEST_RANDAO_MIXES_LENGTH] = get_randao_mix(state, current_epoch) state.latest_randao_mixes[next_epoch % LATEST_RANDAO_MIXES_LENGTH] = get_randao_mix(state, current_epoch)
# Set historical root accumulator # Set historical root accumulator
if next_epoch % (SLOTS_PER_HISTORICAL_ROOT // SLOTS_PER_EPOCH) == 0: if next_epoch % (SLOTS_PER_HISTORICAL_ROOT // SLOTS_PER_EPOCH) == 0:
state.historical_roots.append(merkle_root(state.latest_block_roots + state.latest_state_roots)) state.historical_roots.append(hash_tree_root(state.latest_block_roots + state.latest_state_roots))
# Rotate current/previous epoch attestations # Rotate current/previous epoch attestations
state.previous_epoch_attestations = state.current_epoch_attestations state.previous_epoch_attestations = state.current_epoch_attestations
state.current_epoch_attestations = [] state.current_epoch_attestations = []