Skip to content

Commit 319b88b

Browse files
committed
Replace other .hash to .root
1 parent 672ce24 commit 319b88b

File tree

7 files changed

+52
-65
lines changed

7 files changed

+52
-65
lines changed

eth/beacon/db/chain.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,11 @@ def _persist_block_chain(
278278
return tuple(), tuple()
279279
else:
280280
for parent, child in sliding_window(2, blocks):
281-
if parent.hash != child.parent_root:
281+
if parent.root != child.parent_root:
282282
raise ValidationError(
283283
"Non-contiguous chain. Expected {} to have {} as parent but was {}".format(
284-
encode_hex(child.hash),
285-
encode_hex(parent.hash),
284+
encode_hex(child.root),
285+
encode_hex(parent.root),
286286
encode_hex(child.parent_root),
287287
)
288288
)
@@ -291,7 +291,7 @@ def _persist_block_chain(
291291
if not is_genesis and not cls._block_exists(db, first_block.parent_root):
292292
raise ParentNotFound(
293293
"Cannot persist block ({}) with unknown parent ({})".format(
294-
encode_hex(first_block.hash), encode_hex(first_block.parent_root)))
294+
encode_hex(first_block.root), encode_hex(first_block.parent_root)))
295295

296296
if is_genesis:
297297
score = 0
@@ -300,26 +300,26 @@ def _persist_block_chain(
300300

301301
for block in blocks:
302302
db.set(
303-
block.hash,
303+
block.root,
304304
rlp.encode(block),
305305
)
306306

307307
# TODO: It's a stub before we implement fork choice rule
308308
score = block.slot
309309

310310
db.set(
311-
SchemaV1.make_block_root_to_score_lookup_key(block.hash),
311+
SchemaV1.make_block_root_to_score_lookup_key(block.root),
312312
rlp.encode(score, sedes=rlp.sedes.big_endian_int),
313313
)
314314

315315
try:
316-
previous_canonical_head = cls._get_canonical_head(db).hash
316+
previous_canonical_head = cls._get_canonical_head(db).root
317317
head_score = cls._get_score(db, previous_canonical_head)
318318
except CanonicalHeadNotFound:
319-
return cls._set_as_canonical_chain_head(db, block.hash)
319+
return cls._set_as_canonical_chain_head(db, block.root)
320320

321321
if score > head_score:
322-
return cls._set_as_canonical_chain_head(db, block.hash)
322+
return cls._set_as_canonical_chain_head(db, block.root)
323323
else:
324324
return tuple(), tuple()
325325

@@ -357,7 +357,7 @@ def _set_as_canonical_chain_head(
357357
for block in new_canonical_blocks:
358358
cls._add_block_slot_to_root_lookup(db, block)
359359

360-
db.set(SchemaV1.make_canonical_head_root_lookup_key(), block.hash)
360+
db.set(SchemaV1.make_canonical_head_root_lookup_key(), block.root)
361361

362362
return new_canonical_blocks, tuple(old_canonical_blocks)
363363

@@ -382,7 +382,7 @@ def _find_new_ancestors(cls, db: BaseDB, block: BaseBeaconBlock) -> Iterable[Bas
382382
# This just means the block is not on the canonical chain.
383383
pass
384384
else:
385-
if orig.hash == block.hash:
385+
if orig.root == block.root:
386386
# Found the common ancestor, stop.
387387
break
388388

@@ -405,7 +405,7 @@ def _add_block_slot_to_root_lookup(db: BaseDB, block: BaseBeaconBlock) -> None:
405405
)
406406
db.set(
407407
block_slot_to_root_key,
408-
rlp.encode(block.hash, sedes=rlp.sedes.binary),
408+
rlp.encode(block.root, sedes=rlp.sedes.binary),
409409
)
410410

411411
#
@@ -441,7 +441,7 @@ def _persist_state(cls,
441441
db: BaseDB,
442442
state: BeaconState) -> None:
443443
db.set(
444-
state.hash,
444+
state.root,
445445
rlp.encode(state),
446446
)
447447

eth/beacon/types/blocks.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def __init__(self,
9191
def __repr__(self) -> str:
9292
return '<Block #{0} {1}>'.format(
9393
self.slot,
94-
encode_hex(self.hash)[2:10],
94+
encode_hex(self.root)[2:10],
9595
)
9696

9797
_hash = None
@@ -104,7 +104,8 @@ def hash(self) -> Hash32:
104104

105105
@property
106106
def root(self) -> Hash32:
107-
# Alias
107+
# Alias of `hash`.
108+
# Using flat hash, might change to SSZ tree hash.
108109
return self.hash
109110

110111
@property

eth/beacon/types/states.py

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -88,67 +88,52 @@ def __init__(
8888
justification_bitfield: int,
8989
finalized_slot: int,
9090
processed_pow_receipt_root: Hash32,
91-
validator_registry: Sequence[ValidatorRecord]=None,
92-
shard_committees_at_slots: Sequence[Sequence[ShardCommittee]]=None,
93-
persistent_committees: Sequence[Sequence[int]]=None,
94-
persistent_committee_reassignments: Sequence[ShardReassignmentRecord]=None,
95-
latest_crosslinks: Sequence[CrosslinkRecord]=None,
96-
latest_block_roots: Sequence[Hash32]=None,
97-
latest_penalized_exit_balances: Sequence[int]=None,
98-
batched_block_roots: Sequence[Hash32]=None,
99-
latest_attestations: Sequence[PendingAttestationRecord]=None,
100-
candidate_pow_receipt_roots: Sequence[CandidatePoWReceiptRootRecord]=None
91+
validator_registry: Sequence[ValidatorRecord]=(),
92+
shard_committees_at_slots: Sequence[Sequence[ShardCommittee]]=(),
93+
persistent_committees: Sequence[Sequence[int]]=(),
94+
persistent_committee_reassignments: Sequence[ShardReassignmentRecord]=(),
95+
latest_crosslinks: Sequence[CrosslinkRecord]=(),
96+
latest_block_roots: Sequence[Hash32]=(),
97+
latest_penalized_exit_balances: Sequence[int]=(),
98+
batched_block_roots: Sequence[Hash32]=(),
99+
latest_attestations: Sequence[PendingAttestationRecord]=(),
100+
candidate_pow_receipt_roots: Sequence[CandidatePoWReceiptRootRecord]=()
101101
) -> None:
102-
if validator_registry is None:
103-
validator_registry = ()
104-
if shard_committees_at_slots is None:
105-
shard_committees_at_slots = ()
106-
if persistent_committees is None:
107-
persistent_committees = ()
108-
if persistent_committee_reassignments is None:
109-
persistent_committee_reassignments = ()
110-
if latest_crosslinks is None:
111-
latest_crosslinks = ()
112-
if latest_block_roots is None:
113-
latest_block_roots = ()
114-
if latest_penalized_exit_balances is None:
115-
latest_penalized_exit_balances = ()
116-
if batched_block_roots is None:
117-
batched_block_roots = ()
118-
if latest_attestations is None:
119-
latest_attestations = ()
120-
if candidate_pow_receipt_roots is None:
121-
candidate_pow_receipt_roots = ()
122-
123102
super().__init__(
103+
# Misc
124104
slot=slot,
125105
genesis_time=genesis_time,
126106
fork_data=fork_data,
107+
# Validator registry
127108
validator_registry=validator_registry,
128109
validator_registry_latest_change_slot=validator_registry_latest_change_slot,
129110
validator_registry_exit_count=validator_registry_exit_count,
130111
validator_registry_delta_chain_tip=validator_registry_delta_chain_tip,
112+
# Randomness and committees
131113
randao_mix=randao_mix,
132114
next_seed=next_seed,
133115
shard_committees_at_slots=shard_committees_at_slots,
134116
persistent_committees=persistent_committees,
135117
persistent_committee_reassignments=persistent_committee_reassignments,
118+
# Finality
136119
previous_justified_slot=previous_justified_slot,
137120
justified_slot=justified_slot,
138121
justification_bitfield=justification_bitfield,
139122
finalized_slot=finalized_slot,
123+
# Recent state
140124
latest_crosslinks=latest_crosslinks,
141125
latest_block_roots=latest_block_roots,
142126
latest_penalized_exit_balances=latest_penalized_exit_balances,
143127
latest_attestations=latest_attestations,
144128
batched_block_roots=batched_block_roots,
129+
# PoW receipt root
145130
processed_pow_receipt_root=processed_pow_receipt_root,
146131
candidate_pow_receipt_roots=candidate_pow_receipt_roots,
147132
)
148133

149134
def __repr__(self) -> str:
150135
return 'BeaconState #{0}>'.format(
151-
encode_hex(self.hash)[2:10],
136+
encode_hex(self.root)[2:10],
152137
)
153138

154139
_hash = None
@@ -161,7 +146,8 @@ def hash(self) -> Hash32:
161146

162147
@property
163148
def root(self) -> Hash32:
164-
# Alias
149+
# Alias of `hash`.
150+
# Using flat hash, might change to SSZ tree hash.
165151
return self.hash
166152

167153
@property

tests/beacon/db/test_chaindb.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ def test_chaindb_add_block_number_to_root_lookup(chaindb, block):
5656

5757
def test_chaindb_persist_block_and_slot_to_root(chaindb, block):
5858
with pytest.raises(BlockNotFound):
59-
chaindb.get_block_by_root(block.hash)
60-
slot_to_root_key = SchemaV1.make_block_root_to_score_lookup_key(block.hash)
59+
chaindb.get_block_by_root(block.root)
60+
slot_to_root_key = SchemaV1.make_block_root_to_score_lookup_key(block.root)
6161
assert not chaindb.exists(slot_to_root_key)
6262

6363
chaindb.persist_block(block)
6464

65-
assert chaindb.get_block_by_root(block.hash) == block
65+
assert chaindb.get_block_by_root(block.root) == block
6666
assert chaindb.exists(slot_to_root_key)
6767

6868

@@ -74,7 +74,7 @@ def test_chaindb_persist_block_and_unknown_parent(chaindb, block, seed):
7474

7575

7676
def test_chaindb_persist_block_and_block_to_root(chaindb, block):
77-
block_to_root_key = SchemaV1.make_block_root_to_score_lookup_key(block.hash)
77+
block_to_root_key = SchemaV1.make_block_root_to_score_lookup_key(block.root)
7878
assert not chaindb.exists(block_to_root_key)
7979
chaindb.persist_block(block)
8080
assert chaindb.exists(block_to_root_key)
@@ -87,37 +87,37 @@ def test_chaindb_get_score(chaindb, sample_beacon_block_params):
8787
)
8888
chaindb.persist_block(genesis)
8989

90-
genesis_score_key = SchemaV1.make_block_root_to_score_lookup_key(genesis.hash)
90+
genesis_score_key = SchemaV1.make_block_root_to_score_lookup_key(genesis.root)
9191
genesis_score = rlp.decode(chaindb.db.get(genesis_score_key), sedes=rlp.sedes.big_endian_int)
9292
assert genesis_score == 0
93-
assert chaindb.get_score(genesis.hash) == 0
93+
assert chaindb.get_score(genesis.root) == 0
9494

9595
block1 = BaseBeaconBlock(**sample_beacon_block_params).copy(
96-
parent_root=genesis.hash,
96+
parent_root=genesis.root,
9797
slot=1,
9898
)
9999
chaindb.persist_block(block1)
100100

101-
block1_score_key = SchemaV1.make_block_root_to_score_lookup_key(block1.hash)
101+
block1_score_key = SchemaV1.make_block_root_to_score_lookup_key(block1.root)
102102
block1_score = rlp.decode(chaindb.db.get(block1_score_key), sedes=rlp.sedes.big_endian_int)
103103
assert block1_score == 1
104-
assert chaindb.get_score(block1.hash) == 1
104+
assert chaindb.get_score(block1.root) == 1
105105

106106

107107
def test_chaindb_get_block_by_root(chaindb, block):
108108
chaindb.persist_block(block)
109-
result_block = chaindb.get_block_by_root(block.hash)
109+
result_block = chaindb.get_block_by_root(block.root)
110110
validate_rlp_equal(result_block, block)
111111

112112

113113
def test_chaindb_get_canonical_block_root(chaindb, block):
114114
chaindb.persist_block(block)
115115
block_root = chaindb.get_canonical_block_root(block.slot)
116-
assert block_root == block.hash
116+
assert block_root == block.root
117117

118118

119119
def test_chaindb_state(chaindb, state):
120120
chaindb.persist_state(state)
121121

122-
result_state = chaindb.get_state_by_root(state.hash)
123-
assert result_state.hash == state.hash
122+
result_state = chaindb.get_state_by_root(state.root)
123+
assert result_state.root == state.root

tests/beacon/helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@ def get_pseudo_chain(length, genesis_block):
3131
for slot in range(1, length * 3):
3232
block = genesis_block.copy(
3333
slot=slot,
34-
parent_root=block.hash
34+
parent_root=block.root
3535
)
3636
yield block

tests/beacon/test_helpers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def generate_mock_latest_block_roots(
7474
b'\x00' * 32
7575
for i
7676
in range(epoch_length * 2 - current_block_number)
77-
] + [block.hash for block in blocks[:current_block_number]]
77+
] + [block.root for block in blocks[:current_block_number]]
7878
return blocks, latest_block_roots
7979

8080

@@ -144,7 +144,7 @@ def test_get_block_root(
144144
current_block_number,
145145
target_slot,
146146
)
147-
assert block_root == blocks[target_slot].hash
147+
assert block_root == blocks[target_slot].root
148148
else:
149149
with pytest.raises(ValueError):
150150
get_block_root(

tests/beacon/types/test_states.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,4 @@ def test_num_crosslink_records(expected,
9898

9999
def test_hash(sample_beacon_state_params):
100100
state = BeaconState(**sample_beacon_state_params)
101-
assert state.hash == hash_(rlp.encode(state))
101+
assert state.root == hash_(rlp.encode(state))

0 commit comments

Comments
 (0)