Commit Graph

3529 Commits

Author SHA1 Message Date
Jacek Sieka 33e115f8c6
Clean up remaining `[]` List syntax
..and use List[byte, 256] for error message
2020-05-30 20:59:12 +02:00
Alex Stokes 437b2ebb90
Update fork choice spec comment for clarity
I think this change more clearly specifies the intended behavior. Given the terseness of the spec's code representation, I think we should aim for as much clarity as possible.
2020-05-29 18:16:06 -07:00
Hsiao-Wei Wang 63de59d5f6
Merge branch 'dev' into hwwhww/shard_fork_choice_3 2020-05-30 03:57:17 +08:00
Hsiao-Wei Wang 327deb40b2
Adjust function blocks 2020-05-30 03:14:51 +08:00
Hsiao-Wei Wang cceeab2657
Combine `process_crosslinks` and `verify_empty_shard_transition` into `process_shard_transitions` 2020-05-30 03:13:20 +08:00
Hsiao-Wei Wang 9b9507c138
Merge branch 'dev' into hwwhww/phase1_refactor_part2 2020-05-30 03:11:28 +08:00
Hsiao-Wei Wang f70224b84e
Extract `compute_committee_source_epoch` 2020-05-30 03:09:42 +08:00
Hsiao-Wei Wang 2dc041807a
Implement `get_start_shard` 2020-05-30 01:26:00 +08:00
Hsiao-Wei Wang b16e6d7a86
PR feedback from Danny
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-05-29 12:58:19 +08:00
Hsiao-Wei Wang bd9f983eea
Minor fix 2020-05-29 02:20:38 +08:00
Hsiao-Wei Wang 8ae7f5b6fa
Refactor `is_valid_indexed_attestation`: extract `verify_attestation_custody` 2020-05-29 01:24:17 +08:00
Hsiao-Wei Wang 7509ecb742
Add comments, minor refactoring 2020-05-29 00:13:08 +08:00
Hsiao-Wei Wang 19262888e4
Rename `verify_shard_transition_false_positives` to `verify_empty_shard_transition` 2020-05-28 21:55:49 +08:00
Hsiao-Wei Wang 8c9bbc48d8
Rework `is_shard_attestation`
Change it to `is_on_time_attestation` so that it could be reused in
`validate_attestation`.
2020-05-28 21:49:36 +08:00
Hsiao-Wei Wang ca48963032
Rename `head_shard_root` to `shard_head_root` 2020-05-28 21:38:11 +08:00
Hsiao-Wei Wang c437578280
Add `shard` field to `ShardBlock` 2020-05-28 21:32:27 +08:00
Alex Stokes 75633cfcf1
Update link so gossipsub encodings match the correct section 2020-05-26 11:00:02 -07:00
Danny Ryan 8eb1d2e940
Merge pull request #1844 from ericsson49/ericsson49/fix_shard_state_transition
`compute_shard_transition_digest` expects `Root` as a fourth parameter
2020-05-26 10:17:55 -06:00
Danny Ryan 753a25e5db
Merge pull request #1843 from terencechain/patch-99
Use `compute_previous_slot` for `slot - 1` occurrences
2020-05-26 10:02:14 -06:00
Ali Atiia 75787d92a8
broken link
broken link to custory-game.md
2020-05-25 16:45:44 -04:00
ericsson d3c26d6b8b `compute_shard_transition_digest` expects `Root` as a fourth parameter 2020-05-25 18:45:38 +03:00
terence tsao ce1d22d71c
Use helper `compute_previous_slot` 2020-05-23 15:22:49 -07:00
Jacek Sieka 56309342c0
Use `Bytes32` for `error_message`
`ErrorMessage.error_message` is a leftover from an older version of SSZ
that was able to encode unbounded lists. This is no longer the case -
all collection types now have a fixed upper bound on length.

In general, the `error_message`, just like the `graffitti` field, should
not be interpreted in any particular way except for debugging and vanity
- as such, using the same type, a `Bytes32`, seems reasonable.

An alternative would be `List[byte, 256]` which maybe could be
"reasonably backwards compatible" with whatever clients are are doing
now - depending on how they are dealing with this field type that no
longer exists in the SSZ spec :) It would however be the only place
where `List[uintN, N]` is used in the current spec.

As an exercise, this could be considered a security issue since it's
essentially unbounded and undefined behaviour.
2020-05-21 15:33:47 +02:00
Danny Ryan 96f785e84b
ensure only forward progress with eth1data voting 2020-05-20 13:56:43 -06:00
Danny Ryan aa6352608e
Merge pull request #1835 from ethereum/strict-block-range
Strict block range (Rebase and extend #1827)
2020-05-20 13:00:29 -06:00
protolambda 522e34efcf
Fix markdown, use multiple lines for change-control, and add step >= 1 case 2020-05-20 20:46:08 +02:00
Danny Ryan a6d4566f51
Merge pull request #1834 from ethereum/clarify-genesis-safety
clarify that eth1 block follow distance for genesis
2020-05-20 12:44:29 -06:00
protolambda 59a43142c2
Rebased on latest BlocksByRange spec, fix conflicts, clarify single chain, even with higher step 2020-05-20 20:39:52 +02:00
Jacek Sieka a29cbebc0e
cover `step` parameter in stricter range request 2020-05-20 20:29:43 +02:00
Jacek Sieka 607e23949c
require blocks to be ordered consecutively in block range request
Per the spec, if I request range 5-10, it is permissible for a client to
answer with block 7, 9 - even if the blocks 5, 6 and 8 exist.

Because blocks 7 and 9 cannot be validated as they arrive in such a
request, it seems better to close this gap - this update adds the spec
language that forbids well-behaving clients from answering this way.
2020-05-20 20:29:37 +02:00
Danny Ryan 4ac2fc7eff
add missing column description fo SECONDS_PER_ETH1_BLOCK
Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2020-05-20 12:28:08 -06:00
Danny Ryan c9f21f1f43
clarify that eth1 blocks must be at a safe fllow distance before being considered for genesis 2020-05-20 10:44:08 -06:00
Danny Ryan 943e51aef1
hww feedback for finality rewards fix 2020-05-20 10:12:57 -06:00
Danny Ryan 95c3295eeb
move proposer negation to inactivity_penalty deltas 2020-05-19 17:17:20 -06:00
Danny Ryan 85e78223dd
ensure when performing optimally that you don't lose money during a leak 2020-05-19 16:51:46 -06:00
Danny Ryan fdc7e846df
remove incorrect table format 2020-05-19 10:37:42 -06:00
Danny Ryan 724139a1f8
change gossipsub protocol ID to /meshsub/1.1.0 2020-05-19 10:23:12 -06:00
Danny Ryan 095b87c2a2
Merge branch 'dev' into v012x 2020-05-19 10:02:18 -06:00
Danny Ryan de03ebb143
many custody game formatting cleanups 2020-05-19 09:58:33 -06:00
Danny Ryan 78947548e6
add process_challenge_deadlines to process_epoch 2020-05-19 08:31:01 -06:00
Danny Ryan 1623086088
make get_validator_from_deposit for better code reuse across phase 0 and 1 2020-05-19 08:14:04 -06:00
Danny Ryan 7fc9dbf297
clarify comment for ShardTransition.shard_data_roots 2020-05-19 07:52:26 -06:00
Danny Ryan 3f0e58a8ed
add chunk challenge and response to block and operations 2020-05-19 07:50:05 -06:00
Danny Ryan 3851a26a0f
add phase 1 custody objects to custody-game.md 2020-05-19 07:34:06 -06:00
Danny Ryan 665538253a
Merge pull request #1807 from ericsson49/ericcson49/fix_is_valid_fraud_proof
is_valid_fraud_proof bug fixes
2020-05-18 13:37:13 -06:00
Danny Ryan c5367295c3
Merge branch 'dev' into v012x 2020-05-18 13:32:24 -06:00
Danny Ryan b7cfa94cb4
Merge branch 'dev' into v0113-dev-merge 2020-05-18 13:22:16 -06:00
Danny Ryan 6f685a97e2
Merge branch 'dev' into v012x 2020-05-18 09:29:47 -06:00
Danny Ryan 7daa6c0039
Merge pull request #1810 from terencechain/patch-97
Make obvious that  `source_epoch` does not underflow
2020-05-18 08:12:50 -06:00
Danny Ryan 4a86c39712
Merge pull request #1799 from ethereum/bls_v2
Update to IETF BLS draft-irtf-cfrg-bls-signature-02 + draft-irtf-cfrg-hash-to-curve-07
2020-05-18 07:35:49 -06:00
Danny Ryan 74c900f814
add conditoin that block must be later than latest_block_header 2020-05-15 16:43:53 -06:00
terence tsao 6f5cbe6182
Update shard-transition.md 2020-05-14 14:55:29 -07:00
Danny Ryan 96ab76dcb2
Merge pull request #1804 from ethereum/use-all-attnets
[for discussion] Use all attestation subnets in phase 0
2020-05-14 14:29:05 -06:00
Danny Ryan 483f9a1d7b
Update specs/phase0/p2p-interface.md
Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2020-05-14 14:25:32 -06:00
Hsiao-Wei Wang ab3cbdae75
Add a note of `len(attestations) > 0` 2020-05-15 04:05:51 +08:00
Danny Ryan 3dd168335b
reformat compute_subnet_for_attestation to not use for loop 2020-05-14 13:50:29 -06:00
Danny Ryan 689a6955b0
Merge pull request #1812 from ethereum/no_signature
Handle phase 1 `PKs == []` cases
2020-05-14 11:15:06 -06:00
Hsiao-Wei Wang f0c4623871
Apply PR feedback: add docstring 2020-05-15 01:05:32 +08:00
Danny Ryan c91e017b1f
Merge pull request #1801 from ethereum/non-aggregator-att
Loosen restrictions for aggregate propogation
2020-05-14 11:01:32 -06:00
Hsiao-Wei Wang 6a3241be61
Remove leading space
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-05-15 00:48:53 +08:00
Hsiao-Wei Wang aa436d91b2
Use NO_SIGNATURE (0x00...) approach 2020-05-14 22:25:55 +08:00
Hsiao-Wei Wang 183b197888
Update specs/phase1/beacon-chain.md 2020-05-14 21:25:36 +08:00
terence tsao 23e2b83e20
Update specs/phase1/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hwwang156@gmail.com>
2020-05-14 06:21:44 -07:00
terence tsao f3448e51dd
Update specs/phase1/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hwwang156@gmail.com>
2020-05-14 06:21:36 -07:00
terence tsao aef564733a
Update beacon-chain.md 2020-05-13 10:56:52 -07:00
protolambda 68442c2eef
Update testing and restrict to incremental block transitions 2020-05-13 16:46:28 +02:00
ericsson b41410eade lint problem fixed 2020-05-13 16:25:16 +03:00
ericsson 4431e399b1 Fix bugs:
- `range(len(col))`` instead of `range(col)`
- `beacon_parent_block.body.shard_transitions` instead of `beacon_parent_block.shard_transitions`
- `shard_states[len(shard_states)-1]` instead of `shard_states[-1]`
2020-05-13 16:13:33 +03:00
Hsiao-Wei Wang 4a246ba5ac
Apply feedback from Danny, add a note of the hash to curve configuration 2020-05-13 13:01:08 +08:00
Hsiao-Wei Wang 3c11a4dc02
Fix `AggregateVerify` param name: `message` -> `messages`
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-05-13 12:56:50 +08:00
Hsiao-Wei Wang 2718dcc4ab
Update IETF standard description 2020-05-13 02:34:10 +08:00
Danny Ryan 511f803496
use all attnets across the epoch even when not max committees per slot 2020-05-11 12:52:52 -06:00
Danny Ryan ef18010778
Merge pull request #1800 from ethereum/reqresp-sizes
Update p2p reqresp with explicit handling of reqresp size bounds
2020-05-11 11:48:31 -06:00
Danny Ryan ca1876e12f
Merge pull request #1795 from ethereum/clarify-blocks-request
Clarify BlocksByRange request
2020-05-11 11:39:10 -06:00
Danny Ryan 30ecd9b602
p2p PR feedback 2020-05-11 11:22:34 -06:00
Danny Ryan 17f656cefe
Merge branch 'dev' into v012x 2020-05-11 10:41:35 -06:00
protolambda fcf003859d
remove duplicate response diagram 2020-05-11 17:01:18 +02:00
Danny Ryan b4bc2038e1
clarify that clients MAY stop block requests if fork choice changes 2020-05-11 08:39:30 -06:00
Danny Ryan 7d4d3e43ef
remove aggregate clarifiyng text that is not longer valid
Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2020-05-11 08:38:22 -06:00
Paul Hauner b3dd99f4f4
Loosen restrictions for aggregate propogation 2020-05-11 08:28:21 -06:00
Danny Ryan 3fb4c43fae
Merge pull request #1794 from ethereum/2x-attester-slashings
MAX_ATTESTER_SLASHINGS == 2 and add multiple slashings per block tests
2020-05-11 08:12:23 -06:00
protolambda a8e3fe7551
Update p2p reqresp with explicit handling of reqresp size bounds 2020-05-09 21:44:28 +02:00
Hsiao-Wei Wang cdd0ed0f7b
Update to IETF BLS draft-irtf-cfrg-bls-signature-02 2020-05-09 11:48:48 +08:00
Danny Ryan fdcc6d65bc
gossipsub v1.1 and extended validators for gossip conditions 2020-05-08 12:00:05 -06:00
Danny Ryan 01eaf6cc99
Clarify the response of BlocksByRange to address #1765 2020-05-08 11:09:12 -06:00
Danny Ryan 7a130606ac
hww feedback 2020-05-08 10:51:41 -06:00
Danny Ryan 1137e0332d
move MAX_ATTESTER_SLASHINGS to 2, add multiple slashings per block tests 2020-05-08 10:43:11 -06:00
Danny Ryan 08652f543b
Merge branch 'v012x' into empty-bits-case 2020-05-07 10:17:26 -06:00
Danny Ryan 7625728fb8
Merge pull request #1742 from ethereum/ffg_lmd_vote_consistency
Added FFG-LMD vote consistency checks
2020-05-07 09:36:52 -06:00
Danny Ryan 4f401133e1
address PR feedback from @protolambda 2020-05-05 15:37:14 -06:00
Danny Ryan b71a0ee6b9
Merge branch 'v012x' into ffg_lmd_vote_consistency 2020-05-05 13:40:27 -06:00
Danny Ryan 38f29ba0a8
remove PERSISTENT_COMMITTEE_PERIOD in favor of SHARD_COMMITTEE_PERIOD 2020-05-05 11:44:53 -06:00
Danny Ryan b2c36112f6
Merge branch 'dev' into v012x 2020-05-05 09:44:27 -06:00
Hsiao-Wei Wang 79b1b4bdbe
Add `(shard, shard_root)` to `LatestMessage` 2020-05-05 21:42:18 +08:00
Hsiao-Wei Wang fca1bbccb9
Remove `get_filtered_shard_block_tree` 2020-05-05 21:42:13 +08:00
Hsiao-Wei Wang 8fafb6a9e5
Make `ShardStore` an independent object 2020-05-05 21:42:06 +08:00
Hsiao-Wei Wang cddf9cf114
Refactor 2020-05-05 21:42:00 +08:00
Hsiao-Wei Wang dab5a936c4
wip shard fork choice rule 2020-05-05 21:41:46 +08:00
Hsiao-Wei Wang ee4c866575
Merge branch 'dev' into dankrad-custody-256bit-merging 2020-05-05 15:22:36 +08:00
Danny Ryan 3f250f7dd3
PR feedback 2020-05-04 21:05:10 -06:00
Danny Ryan a7354bd358
Merge branch 'dev' into rewards-rework 2020-05-04 13:34:35 -06:00
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 c2c27791c5
Merge branch 'dev' into rewards-rework 2020-05-01 10:52:19 -06: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 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
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
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 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
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 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
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
Aditya Asgaonkar 9acea51938 Simplified by re-using get_ancestor() 2020-04-25 14:17:28 -07:00
protolambda 0c67aaa68e
Include fork digest in example gossip topic name 2020-04-25 00:05:37 +02:00
Danny Ryan fde9b410f0
Merge pull request #1752 from ethereum/dev
sync v0.11.2 to `v012x`
2020-04-24 11:36:17 -06:00
Dankrad Feist ab2ee0e2c2
Restoring chunk challenges and testing 2020-04-24 17:06:27 +01:00
Paul Hauner bf806b9efa
Require "seen" aggregates to be valid 2020-04-24 15:01:18 +10:00
Danny Ryan 7612667bbe
minor feedback and fixes on rewards/penalites proposal
Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2020-04-23 11:13:09 -06:00
Danny Ryan fe13bab338
rework rewards/penalties to be more granular 2020-04-23 10:26:34 -06: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
Aditya Asgaonkar 9bbac0d2cc Added consistency check for FFG & LMD vote in validate_on_atttestation(), fixes #1636, fixes #1456, fixes #1408 2020-04-21 23:56:44 -07:00
Justin 5929aac799
Cosmetic changes from #1737 2020-04-22 11:40:10 +08: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
Hsiao-Wei Wang 6fdee75475
Fix phase0 types 2020-04-17 23:55:25 +08:00
Danny Ryan e58cfedb68
clarify ssz_snappy for gossip 2020-04-16 11:12:24 -06:00
Danny Ryan 4a94200c0b
Merge pull request #1712 from ethereum/hwwhww/inactivity_penalty_quotient_bug
Fix `INACTIVITY_PENALTY_QUOTIENT`
2020-04-14 11:53:43 -06:00
Hsiao-Wei Wang b2f6325db3
Fix `compute_committee` 2020-04-09 17:50:23 +08:00
Hsiao-Wei Wang 890c27d091
The input parameter `index` in `compute_shuffled_index` is the position of the given list, not `ValidatorIndex` 2020-04-09 17:33:14 +08:00
Hsiao-Wei Wang c10e59bdf7
Fix `INACTIVITY_PENALTY_QUOTIENT`
The amount of inactivity penalty was adjusted to half since we were applying penalty for missing FFG target and source. But now we only apply it for missing target, so `INACTIVITY_PENALTY_QUOTIENT` should be `2**24`.
2020-04-08 10:32:16 +08: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
Dankrad Feist 907c56dabd
Fix ToC 2020-04-05 15:47:59 +01:00
Dankrad Feist c3c24b4fc4
Fix lint 2020-04-05 15:35:11 +01:00
Dankrad Feist bf34fdf023
Fix ToC 2020-04-05 15:10:09 +01:00
Dankrad Feist ca6af0c2e9
256-bit custody atoms for better alignment with rest of the spec and greater efficiency 2020-04-05 14:39:00 +01:00
Danny Ryan f135eff021
add lookahed for shard subnets for beacon committee in validator guide 2020-04-03 13:23:38 -06: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 d61b2991a0
fix lint 2020-04-02 16:58:39 -06:00
Danny Ryan 6067c511c5
add light client to phase 1 validator 2020-04-02 16:48:02 -06:00
Danny Ryan d789f3d32d
getting phase 1 val guide in place 2020-04-02 15:09:45 -06:00
Danny Ryan 613f368c00
fix call to get_beacon_committee in process_crosslink_for_shard 2020-04-01 12:20:32 -06:00
Danny Ryan 16208790a5
Merge pull request #1699 from ethereum/hwwhww/unpack_compact_validator
Add `unpack_compact_validator` back
2020-03-31 10:40:45 -06:00
Hsiao-Wei Wang f82cdb7e68
beacon-chain.md: add `unpack_compact_validator` for `light-client-sync.md` 2020-03-31 22:13:48 +08:00
Hsiao-Wei Wang 071f6b5126
Gasprice rework: use `MIN_GASPRICE` as the initial gasprice and change `MIN_GASPRICE` to 8 gwei 2020-03-31 22:09:20 +08:00
Paul Hauner 2daa26442b
Tighten restriction on a "seen" attestation
Declares that only a verified block can stop an attestation from being propagated.

This achieves two things:

1. Ensures that clients don't need to scan invalid blocks for attestations and then modify their state based upon them.
1. Disallows "muting" attestations by sending around a junk block with that attestation in it.
2020-03-30 10:44:46 +11:00
Danny Ryan 073f78efa1
Merge branch 'dev' into phase1-tests 2020-03-29 17:04:25 -06:00
Danny Ryan d07aa00307
Merge pull request #1692 from ethereum/master
Backport v0.11.1 to dev
2020-03-29 16:38:50 -06:00
Danny Ryan d42e08a6e1
verify proposer sig before proposer shuffling in p2p block gossip conditions 2020-03-26 11:43:32 -06:00
Danny Ryan c46fe86839
Merge branch 'v011x' into publish-vs-subscribe 2020-03-26 10:48:23 -06:00
Danny Ryan a83e7a5ecc
proto PR feedback 2020-03-26 10:46:06 -06:00
Danny Ryan 050b42806d
Merge pull request #1684 from ethereum/enr-ping
MetaData and Ping
2020-03-26 10:40:46 -06:00
Danny Ryan ee45cf77ef
proto feedback on MetaData 2020-03-26 07:47:20 -06:00
Danny Ryan 7af6a3afa4
do not require non-aggregating validators to subscribe to attestation subnet for beacon committee duties 2020-03-25 15:56:26 -06:00
Danny Ryan d5a9af6469
update ping protocol to use MetaData 2020-03-25 12:08:27 -06:00
Danny Ryan b8d25dc5b4
Merge pull request #1682 from ethereum/reward-acc-bug
Attestation reward bug
2020-03-24 19:36:23 -06:00