Commit Graph

3243 Commits

Author SHA1 Message Date
Danny Ryan
71dc744f42 Merge pull request #1703 from ethereum/hwwhww/signed_pattern
Rework shard block and fraud proof (shard state transition) spec
2020-05-04 10:39:47 -06:00
Hsiao-Wei Wang
7a770186b5 Reorg beacon-chain spec a bit 2020-05-02 02:32:37 +08:00
Hsiao-Wei Wang
4558c7db4e Reorg the file structure 2020-05-02 02:32:37 +08:00
Hsiao-Wei Wang
b43e24acb6 specs/phase1/fraud-proofs.md -> specs/phase1/shard-transition.md 2020-05-02 02:32:37 +08:00
Hsiao-Wei Wang
ff85025113 PR feedback from terence 2020-05-02 02:32:37 +08:00
Hsiao-Wei Wang
e758fb76c2 Check head_shard_root of all transition_attestations 2020-05-02 02:32:36 +08:00
Hsiao-Wei Wang
524ba166d1 [squashed] shard chain updates wip
Fix wrong field names

Fix `build_attestation_data` and other PR feedback from Danny and
Terence

1. Rename `get_previous_slot` to `compute_previous_slot`
2. Break down `build_empty_block` into
`get_state_and_beacon_parent_root_at_slot`, use it in
`build_shard_block`
3. Set defult `slot` to `shard_state.slot + 1` in `build_shard_block`

Update `verify_shard_block_message`: check beacon_parent_root at fork
choice rule stage instead of state transition

Fix  `beacon-chain.md`

1. Fix typo `attestation.slot == state.slot` -> `attestation.data.slot == state.slot` in `is_winning_attestation`
2. Check `verify_shard_transition_false_positives` **after** `process_operations`
3. Fix `shard_attestations` filter in `process_crosslinks`: since attestations come from block, should use `attestation.data.slot + MIN_ATTESTATION_INCLUSION_DELAY == state.slot`
4. [TBD] Allow empty `light_client_signature` to make the tests pass
5. [TBD] Add `is_shard_attestation`, filter out empty `ShardTransition()`

Rework `test_process_crosslink`

Add basic phase 1 `test_blocks`

Add more test cases

Revert `is_shard_attestation` and fix test cases backward compatibility.

Remove `test_process_beacon_block_no_shard_transition` and consider it as invalid case.
2020-05-02 02:32:31 +08:00
Hsiao-Wei Wang
c8a473ba24 Apply suggestions from code review
Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>
2020-05-02 02:32:30 +08:00
Hsiao-Wei Wang
40483b587b [squashed] shard chain updates wip
Use `ShardBlock` in `shard_state_transition`

PR feedback

1. Rename `ShardState.data` -> `ShardState.transition_digest`
2. Rename `compute_shard_transition_data` to `compute_shard_transition_digest`
3. Add `assert state.slot > PHASE_1_GENESIS_SLOT` just in case, may move it later

Add `get_post_shard_state` as a pure function wrapper
2020-05-02 02:32:24 +08:00
Hsiao-Wei Wang
85d5a9abaf [squashed] shard chain updates wip
PR feedback from Danny and some refactor

1. Add stub `PHASE_1_GENESIS_SLOT`
2. Rename `get_updated_gasprice`  to `compute_updated_gasprice`
3. Rename `compute_shard_data_roots` to `compute_shard_body_roots`

Apply shard transition for the skipped slots

Refactor `shard_state_transition`

Get `beacon_parent_root` from offset slot

Add more test

Add `verify_shard_block_message`

Add `> 0`

Keep `beacon_parent_block` unchanged in `is_valid_fraud_proof`

Remove some lines

Fix type

Refactor + simplify skipped slot processing
2020-05-02 02:31:54 +08:00
Hsiao-Wei Wang
9724cb832d Apply suggestions from code review from @djrtwo
Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>
2020-05-02 02:31:53 +08:00
Hsiao-Wei Wang
afa12caf1f Refactor get_shard_state_transition_result 2020-05-02 02:31:53 +08:00
Hsiao-Wei Wang
4e8a7ff115 [squashed] shard transition wip
Fix the wrong `get_shard_proposer_index` parameters order

Phase 1 WIP

Add shard transition basic test

Fix lint error

Fix
2020-05-02 02:31:10 +08:00
Hsiao-Wei Wang
849d3f83bf Apply @terencechain 's review feedback
Co-Authored-By: terence tsao <terence@prysmaticlabs.com>
2020-05-02 02:31:09 +08:00
Hsiao-Wei Wang
247a6c8fca Add verify_fraud_proof function 2020-05-02 02:31:09 +08:00
Hsiao-Wei Wang
be50020bf8 Refactor get_light_client_committee to similar to
`get_shard_committee`
2020-05-02 02:31:08 +08:00
Hsiao-Wei Wang
5f69afea38 Make shard_state_transition more like beacon state_transition function 2020-05-02 02:31:08 +08:00
Hsiao-Wei Wang
e9f1e4186d Add proposer_index to shard block 2020-05-02 02:31:08 +08:00
Hsiao-Wei Wang
feb27a14be beacon-chain.md: Replace block wrapper with signable pattern 2020-05-02 02:31:08 +08:00
Danny Ryan
4b4fc32f9c Merge pull request #1755 from paulhauner/patch-23
Fork choice: Remove redundant check in validate_on_attestation
2020-04-30 11:06:29 -06:00
Paul Hauner
2dc5156651 Add message about delaying consideration 2020-04-30 16:27:02 +10:00
Danny Ryan
6a40f71a31 add note about beacon committees not going into attnets 2020-04-29 20:29:48 -06:00
Diederik Loerakker
9d39c292e0 Merge pull request #1763 from ethereum/master
Backport v0.11.2 hotfixes from master to dev
2020-04-28 00:18:52 +02:00
Danny Ryan
dae623b097 Merge pull request #1756 from byz-f/q9-genesis-eth1
genesis: clarify that eth1 timestamp can be less than min genesis time
2020-04-27 10:15:18 -06:00
Raw Pong Ghmoa
c841aa102b genesis: clarify that eth1 timestamp can be less than min genesis time 2020-04-26 10:09:22 +02:00
Paul Hauner
1a81c873af Remove redundant check in fork choice 2020-04-26 16:24:16 +10:00
protolambda
0c67aaa68e Include fork digest in example gossip topic name 2020-04-25 00:05:37 +02:00
Paul Hauner
bf806b9efa Require "seen" aggregates to be valid 2020-04-24 15:01:18 +10:00
Danny Ryan
11d164748c add 'valid' when de-deduplication of attestations on gossip subnets 2020-04-22 14:45:01 -06:00
Danny Ryan
d8662d49ea Merge pull request #1730 from ethereum/bootnode-enr
add note about distributing bootnode ENRs prior to genesis
2020-04-22 14:38:38 -06:00
Danny Ryan
3d4122a2f6 add note about distributing bootnode ENRs prior to genesis 2020-04-22 14:33:57 -06:00
Danny Ryan
a6b2679cb0 Merge pull request #1739 from ethereum/JustinDrake-patch-4
Partial fix for #1701
2020-04-21 08:44:22 -06:00
Justin
3436021e72 Update beacon-chain.md 2020-04-21 15:34:55 +01:00
Danny Ryan
ebf888bcf7 Merge pull request #1736 from status-im/rannge-req
simplify block range request description
2020-04-21 08:21:57 -06:00
Justin
e2a320ef32 Partial fix for #1701
Clarify that state transitions with `uint64` overflows are invalid.
2020-04-21 08:59:53 +01:00
Justin
508811d641 Fix #1735—remove redundant check
As per #1735 the check `if not len(indices) <= MAX_VALIDATORS_PER_COMMITTEE: return False` is redundant. As such this PR should be purely cosmetic.
2020-04-21 08:50:42 +01:00
Jacek Sieka
4915014a19 simplify block range request description
There's room for ambiguity as to what `count` means - this clarifies
that it always relates to the slot, and not the number of blocks in the
response which allows clients to request ranges epoch by epoch (for
example) without worrying about overlaps caused by empty slots.
2020-04-20 20:03:15 +02:00
Danny Ryan
e58cfedb68 clarify ssz_snappy for gossip 2020-04-16 11:12:24 -06:00
Danny Ryan
2a36f366ef Merge pull request #1710 from paulhauner/patch-20
Tighten aggregate attn propogation condition
2020-04-07 18:56:04 -06:00
Danny Ryan
26492651b6 Merge pull request #1706 from paulhauner/patch-19
Redefine attestation propogation condition
2020-04-07 18:55:41 -06:00
Paul Hauner
c96a3366fa Tighten aggregate attn propogation condition 2020-04-07 16:07:41 +10:00
Paul Hauner
616385a094 Fix spelling mistake 2020-04-07 07:45:15 +10:00
Paul Hauner
021cb98dbb Use epoch for attestation subnet seen-ness. 2020-04-07 07:05:51 +10:00
Danny Ryan
bdf087d7f3 add notes about how to handle peer discovery and gossip topics prior to genesis 2020-04-06 09:57:23 -06:00
Paul Hauner
7d4b97240b Redefine attestation propogation condition 2020-04-06 17:46:33 +10:00
Danny Ryan
e86c5ef41d final PR nitpicks 2020-04-03 10:29:35 -06:00
Danny Ryan
c3e5ddaabc Merge branch 'dev' into phase1-tests 2020-04-03 09:54:34 -06:00
Danny Ryan
246b46771e address @hwwhww feedback 2020-04-03 09:46:57 -06:00
Danny Ryan
f2c2da95ed add compute_offset_slots 2020-04-03 09:19:56 -06:00
Danny Ryan
613f368c00 fix call to get_beacon_committee in process_crosslink_for_shard 2020-04-01 12:20:32 -06:00