Commit Graph

5173 Commits

Author SHA1 Message Date
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 e645d6b5fa
Rename `build_empty_shard_block` to `build_shard_block` 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
protolambda 45ad270f76
test double proposer slashings and exits 2020-05-01 19:14:01 +02:00
Danny Ryan c2c27791c5
Merge branch 'dev' into rewards-rework 2020-05-01 10:52:19 -06:00
protolambda 47ed5b6500
Fix rewards testing for empty/weird participation cases, adding more as well 2020-05-01 16:18:43 +02:00
protolambda 09cae4b3cc
Handle empty-aggregation-bits case, and add tests. See #1713 2020-05-01 15:17:41 +02:00
Dankrad Feist 964bf42335
Fix type 2020-05-01 00:32:02 +01:00
Dankrad Feist b82496fd11
Rename file 2020-05-01 00:19:25 +01:00
Dankrad Feist d30f11a781
Fix lint 2020-05-01 00:16:00 +01:00
Dankrad Feist d58d7627b7
Fix toc 2020-04-30 19:25:18 +01: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
Danny Ryan 070056b27d
Merge pull request #1767 from ethereum/remove-interop-fix
Remove interop from p2p spec
2020-04-30 11:05:24 -06:00
Danny Ryan a30b2d3639
Merge pull request #1775 from ethereum/attnet-note
add clarifying note about attnets ENR entry
2020-04-30 07:13:18 -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
Danny Ryan cd27e5e045
add tests for source, target, head 2020-04-29 10:23:12 -06:00
Danny Ryan 5f18dd778c
add baseline get_target_deltas tests 2020-04-28 19:26:14 -06:00
Danny Ryan 4a086fba5c
Merge branch 'dev' into rewards-rework 2020-04-28 17:24:45 -06:00
Danny Ryan b5ecc88e55
Merge pull request #1769 from ethereum/hwwhww/move_sanity
Move `sanity` dir to under `phase_0`
2020-04-28 10:37:14 -06:00
Hsiao-Wei Wang fa66475da4
Move `sanity` to under `phase_0` 2020-04-29 00:04:44 +08:00
Dankrad Feist 0e2931b9b3
All tests passed 2020-04-28 01:09:20 +01:00
Danny Ryan 87586837c3
remove interop from phase 0 p2p specs 2020-04-27 17:39:39 -06:00
Danny Ryan d128400da5
remove interop from header and gossip sections in network spec 2020-04-27 17:39:31 -06:00
Danny Ryan 553a33cd2d
Merge pull request #1766 from ethereum/dev
backport dev to v012x
2020-04-27 17:35:28 -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 d9cb1daf6b
Merge pull request #1762 from terencechain/patch-96
Remove extra `/` in README
2020-04-27 15:40:21 -06:00
terence tsao 3cc1fb9017
Remove `/` 2020-04-27 14:34:50 -07: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
Danny Ryan f0af3395c2
Merge pull request #1749 from paulhauner/patch-22
Require "seen" aggregates to be valid
2020-04-27 10:05:05 -06:00
Danny Ryan f95a135aa5
Merge pull request #1745 from ethereum/hwwhww/validator-tests
Add sanity, unit test for validator guide
2020-04-27 09:56:02 -06:00
Dankrad Feist 2449db1bb6
Phase 1 block tests are working 2020-04-27 16:08:49 +01:00
Hsiao-Wei Wang 2dbc333270
Make `compute_new_state_root` a pure function 2020-04-27 22:18:43 +08:00
Hsiao-Wei Wang d311248d35
Increase `EPOCHS_PER_ETH1_VOTING_PERIOD` from `2` to `4` for testing eth1 votes consensus 2020-04-27 22:18:43 +08:00
Hsiao-Wei Wang 70bd73d2b5
Apply PR feedback from @djrtwo
Fix get_eth1_vote test cases
2020-04-27 22:18:41 +08:00
Hsiao-Wei Wang 8adc15e83d
Add validator guide tests
1. "Beacon chain responsibilities: Attesting"
2. "Beacon chain responsibilities: Attestation aggregation"
2020-04-27 21:47:25 +08:00
Hsiao-Wei Wang bdae27e317
Add bls.AggregatePKs helper 2020-04-27 21:47:25 +08:00
Hsiao-Wei Wang 303d7d5adb
Add validator guide tests
1. "Becoming a validator"
2. "Validator assignments"
3. "Beacon chain responsibilities: Block proposal"
2020-04-27 21:47:25 +08:00
Hsiao-Wei Wang 4d980aec71
Fix validator guide
1. Avoid negative computation in `is_candidate_block`
2. Fix `get_block_signature`: avoid extra casting; it's simpler to use BeaconBlock instead of
BeaconHeader
2020-04-27 21:47:24 +08:00