Homogenise AttestationSignedData data structure
This commit is contained in:
parent
0304e5f337
commit
9ee17787d2
|
@ -119,16 +119,21 @@ An `AttestationRecord` has the following fields:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Here's the data signed (`AttestationSignedData`):
|
An `AttestationSignedData` has the following fields:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
fields = {
|
{
|
||||||
# Version of the chain
|
# Chain version
|
||||||
'version': 'int64',
|
'version': 'int64',
|
||||||
|
# Slot number
|
||||||
'slot': 'int64',
|
'slot': 'int64',
|
||||||
|
# Shard number
|
||||||
|
'shard': 'int16',
|
||||||
|
# 31 parent hashes
|
||||||
'parent_hashes': ['hash32'],
|
'parent_hashes': ['hash32'],
|
||||||
'shard_id': 'int16',
|
# Shard block hash
|
||||||
'shard_block_hash': 'hash32',
|
'shard_block_hash': 'hash32',
|
||||||
|
# Slot of last justified block
|
||||||
'justified_slot': 'int64'
|
'justified_slot': 'int64'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -491,7 +496,7 @@ For each one of these attestations:
|
||||||
* Verify that `len(attester_bitfield) == ceil_div8(len(attestation_indices))`, where `ceil_div8 = (x + 7) // 8`. Verify that bits `len(attestation_indices)....` and higher, if present (i.e. `len(attestation_indices)` is not a multiple of 8), are all zero
|
* Verify that `len(attester_bitfield) == ceil_div8(len(attestation_indices))`, where `ceil_div8 = (x + 7) // 8`. Verify that bits `len(attestation_indices)....` and higher, if present (i.e. `len(attestation_indices)` is not a multiple of 8), are all zero
|
||||||
* Derive a group public key by adding the public keys of all of the attesters in `attestation_indices` for whom the corresponding bit in `attester_bitfield` (the ith bit is `(attester_bitfield[i // 8] >> (7 - (i %8))) % 2`) equals 1
|
* Derive a group public key by adding the public keys of all of the attesters in `attestation_indices` for whom the corresponding bit in `attester_bitfield` (the ith bit is `(attester_bitfield[i // 8] >> (7 - (i %8))) % 2`) equals 1
|
||||||
* Let `version = pre_fork_version if slot < fork_slot_number else post_fork_version`.
|
* Let `version = pre_fork_version if slot < fork_slot_number else post_fork_version`.
|
||||||
* Verify that `aggregate_sig` verifies using the group pubkey generated and the serialized form of `AttestationSignedData(version, slot, parent_hashes, shard_id, shard_block_hash, justified_slot)` as the message.
|
* Verify that `aggregate_sig` verifies using the group pubkey generated and the serialized form of `AttestationSignedData(version, slot, parent_hashes, shard, shard_block_hash, justified_slot)` as the message.
|
||||||
|
|
||||||
Extend the list of `AttestationRecord` objects in the `active_state` with those included in the block, ordering the new additions in the same order as they came in the block. Similarly extend the list of `SpecialRecord` objects in the `active_state` with those included in the block.
|
Extend the list of `AttestationRecord` objects in the `active_state` with those included in the block, ordering the new additions in the same order as they came in the block. Similarly extend the list of `SpecialRecord` objects in the `active_state` with those included in the block.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue