Commit Graph

534 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 4b239e94b7
Mix PR feedback from Danny and Proto 2020-06-29 12:50:01 +08:00
Hsiao-Wei Wang 1d954ee9bd
PR feedback from @ericsson49
Co-authored-by: Alex Vlasov <avv49@mail.ru>
2020-06-29 12:33:52 +08:00
protolambda 3b7617f51a
make extracted byte uint8 for bitshift, do not use negative slice indexing, avoid negative comparison in test 2020-06-26 16:14:27 +02:00
protolambda 531184f42b
Infer types where possible, e.g. uint64+uint64=uint64 2020-06-26 15:41:47 +02:00
Hsiao-Wei Wang a061758a66
Use `encode_bytes` to implement `int_to_bytes`
Rename `bytes_to_int` to `bytes_to_uint64`

Use `encode_bytes` to implement `int_to_bytes`

Rename `int_to_bytes` to `uint_to_bytes` and move it to `ssz_impl.py`
2020-06-25 20:20:39 +08:00
Hsiao-Wei Wang b239f6108c
Merge branch 'dev' into hwwhww/strict-uint64 2020-06-25 17:18:16 +08:00
Danny Ryan e61efc14a3
Merge pull request #1886 from ethereum/fix_store_target_checkpoint_state
Fix store_target_checkpoint_state
2020-06-22 11:38:40 -06:00
Hsiao-Wei Wang 76840c9178
Merge branch 'dev' into hwwhww/strict-uint64 2020-06-19 17:01:04 +08:00
Danny Ryan bd61c2686b
PR feedback 2020-06-18 09:45:10 -06:00
Hsiao-Wei Wang 4428a6aedf
Fix table 2020-06-18 13:50:10 +08:00
protolambda 41ebd51aff
Merge branch 'dev' into hwwhww/strict-uint64 2020-06-18 02:49:09 +02:00
protolambda ce0371a66b
fix comment: committees per slot for given *epoch* 2020-06-17 20:23:26 +02:00
protolambda 9b60a9b799
Avoid state usage in p2p validation, compute committee count per slot for epoch as a whole 2020-06-17 20:19:32 +02:00
Hsiao-Wei Wang e80f6727dc
Merge branch 'dev' into dankrad-custody-256bit 2020-06-15 15:13:45 +08:00
Danny Ryan e955e6f6e1
Merge pull request #1884 from paulhauner/patch-25
Use parent_root for finalized chain check
2020-06-13 16:09:16 -05:00
Danny Ryan fdb6f15867
unhandled exceptions do not modify forkchoice store 2020-06-13 15:59:04 -05:00
Danny Ryan df9b5f18a4
Merge pull request #1885 from paulhauner/patch-26
Fork choice: minor formatting change
2020-06-13 15:51:03 -05:00
Paul Hauner 7ad1bb508d
Ensure parent is checked before store lookup 2020-06-13 16:04:16 +10:00
Aditya Asgaonkar 993ed5c2c6 Resetting branch to dev and adding single commit 2020-06-12 14:37:07 -07:00
Dankrad Feist 29c1569251
Merge branch 'dev' into dankrad-custody-256bit
# Conflicts:
#	specs/phase1/beacon-chain.md
2020-06-12 12:29:57 +01:00
Paul Hauner a1a75a38fe
Tidy, add comment 2020-06-11 11:51:18 +10:00
Danny Ryan 1dc6b55617
rearrange fork choice condition for clarity 2020-06-10 09:40:34 -05:00
Hsiao-Wei Wang 479c40450d
Friendly lint fix 2020-06-10 18:16:26 +08:00
Paul Hauner 29d968bb2e
Use parent_root for finalized chain check 2020-06-10 15:09:40 +10:00
Paul Hauner 378d249487
Avoid redundant call to get_ancestor 2020-06-10 11:02:10 +10:00
Hsiao-Wei Wang 41cfa7fdf6
Merge branch 'dev' into dankrad-custody-256bit 2020-06-09 01:39:51 +08:00
Danny Ryan 7e44456be5
mod compute_subnet_for_attestation to be usable for lookahead 2020-06-05 09:50:49 -06:00
Michael Sproul c2b7ff7422
Re-clarify proposer slashing check
Fixes a typo from #1871
2020-06-04 16:16:37 +10:00
Michael Sproul 376c836190
Clarify proposer slashing gossip conditions 2020-06-04 12:51:17 +10:00
Danny Ryan cc5116bf33
Merge pull request #1837 from status-im/ssz-string
Use SSZ types in p2p spec
2020-06-02 16:35:31 -06:00
Diederik Loerakker e814d52ee5
Merge pull request #1866 from ethereum/tunable-genesis
Tunable genesis
2020-06-02 22:19:13 +02:00
Danny Ryan cf7b9993b5
clarify `head_root` is for a `BeaconBlock`
Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2020-06-02 13:51:43 -06:00
Danny Ryan 06dfff022b
add comment about default of 0x00 for genesis finalized checkpoint in p2p spec 2020-06-02 11:22:09 -06:00
Danny Ryan 671fae6efe
change note about genesis delay in p2p spec to match new GENESIS_DELAY config value; fix tests 2020-06-02 11:09:42 -06:00
Raw Pong Ghmoa 34412130c5
phase0: enable a tunable genesis time 2020-06-02 10:55:13 -06:00
Paul Hauner 2a125e8497
Update fork-choice.md 2020-06-02 17:22:33 +10:00
Paul Hauner c6aac16506
Reword fork choice comment 2020-06-02 17:16:25 +10:00
Danny Ryan 3a4db69a20
Merge branch 'dev' into dankrad-custody-256bit 2020-06-01 18:45:22 -06:00
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
Alex Stokes 75633cfcf1
Update link so gossipsub encodings match the correct section 2020-05-26 11:00:02 -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
Hsiao-Wei Wang cd91380d80
PR feedback from proto: set `length` back to `int` 2020-05-20 03:05:03 +08:00
Hsiao-Wei Wang 8f70453aef
PR feedback from Proto 2020-05-20 03:04:52 +08:00
Hsiao-Wei Wang 9f340d5fd1
(i) Fix leftover (ii) `SHARD_COMMITTEE_PERIOD` should be uint64 2020-05-20 03:04:41 +08:00
Hsiao-Wei Wang 88d7315739
Fix typing 2020-05-20 03:04:29 +08:00
Hsiao-Wei Wang 2bf020d49d
Apply strict uint64 casting 2020-05-20 03:04:15 +08: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 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 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 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
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 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
protolambda 68442c2eef
Update testing and restrict to incremental block transitions 2020-05-13 16:46:28 +02: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
Danny Ryan 3f250f7dd3
PR feedback 2020-05-04 21:05:10 -06: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
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
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
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
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
Danny Ryan c3e5ddaabc
Merge branch 'dev' into phase1-tests 2020-04-03 09:54:34 -06: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 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
Paul Hauner 88fddf2379
Remove unneccessary clock disparity check
There is no need to mention clock disparity when comparing two static slot values (assuming the clock disparity is less than a slot, even then I don't think that's the intention).
2020-03-24 08:13:36 -06:00
Michael Sproul 1c49f99094
Fix bug in attestation reward calculation 2020-03-24 07:40:58 -06:00
Age Manning f227e026fa
Draft PING and ENR rpc protocol 2020-03-24 15:10:47 +11:00
Age Manning cf20a7ae3e
Shift some ENR fields to MAY 2020-03-24 15:07:43 +11:00
Danny Ryan 2978f21a39
minor edit to validator get_attestation_signature 2020-03-19 15:17:06 -06:00
Jacek Sieka 759af67345
Normalize attestation signature getter name 2020-03-19 15:13:59 -06:00
Danny Ryan 2b8c32a347
Merge pull request #1664 from ethereum/div-zero-total-balance
avoid div by zero in extreme balance case
2020-03-19 08:50:09 -06:00
Danny Ryan 0a9b306d60
PR feedback from @hwwhww 2020-03-18 09:55:09 -06:00
Danny Ryan e6998a61cd
remove IK handshake from noise spec (removed in core libp2p specs) 2020-03-17 10:54:48 -06:00
Danny Ryan e2ef4365e2
min total balance is now EFFECTIVE_BALANCE_INCREMENT. update testing 2020-03-16 11:19:21 -06:00
Danny Ryan 5315f3db35
clarify proposer_index must be from expected shuffling when validating block gossip 2020-03-13 12:00:34 -06:00
Danny Ryan 1293320675
Merge branch 'dev' into phase1-tests 2020-03-12 07:12:41 -06:00
Danny Ryan c894f5ecec
fork choice error note 2020-03-11 16:41:27 -06:00
Danny Ryan a612df1119
minor typos and clarifications in fork choice 2020-03-11 16:11:42 -06:00
Danny Ryan 47bbffa0d6
'get_checkpoint_store' -> 'get_forkchoice_store' typo 2020-03-11 15:03:14 -06:00
Danny Ryan 81dc71c312
Merge pull request #1652 from ethereum/gossip-topics-with-fork-digest
Gossip topics with fork digest
2020-03-11 13:32:25 -06:00
Danny Ryan 4bcdf91e8b
Apply suggestions from code review
PR feedback

Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2020-03-11 13:24:30 -06:00
Danny Ryan 36e48fba99
enforce must match target to match head to avoid perverse incentive path 2020-03-11 12:51:05 -06:00
Danny Ryan 0881e21dc5
cleanup gossip topic fork digest based on PR feedback 2020-03-11 12:02:31 -06:00
Danny Ryan baee673124
add note about preparing for subnet backbone for forks 2020-03-10 17:29:39 -06:00
Danny Ryan e2918c6364
Merge pull request #1626 from ethereum/proposer-index
add proposer index to BeaconBlock
2020-03-10 15:10:07 -06:00
Danny Ryan fccd3ab1ce
clarify hex-encoded bytes string representation for fork digest in gossip topic
Co-Authored-By: Diederik Loerakker <proto@protolambda.com>
2020-03-10 15:04:44 -06:00
Danny Ryan 415544bf03
modify gossip topics to use ForkDigest 2020-03-10 14:44:35 -06:00
Danny Ryan b25ca8e32c
Merge branch 'gossip-topic' of https://github.com/status-im/eth2.0-specs into status-im-gossip-topic 2020-03-10 14:02:44 -06:00
Diederik Loerakker ab24e7cab7
Merge pull request #1651 from ethereum/revert-forkchoice-header
revert fork choice store.blocks to BeaconBlock
2020-03-10 20:25:18 +01:00
Danny Ryan 3b7704a78f
Merge pull request #1649 from ethereum/eth1-voting-period-in-epochs
Eth1 voting period in epochs [updated for configs/phase1/tests compat.]
2020-03-10 13:24:03 -06:00
Danny Ryan 1c9ca3c168
Merge pull request #1635 from ethereum/rewards-overflow
handle rewards overflow
2020-03-10 13:23:21 -06:00
Danny Ryan c91eee6bdf
revert fork choice store.blocks to store BeaconBlock 2020-03-10 13:20:57 -06:00
Danny Ryan 0d01299d17
Merge pull request #1648 from sgryphon/feature/clarify-store-signed-block
Put back in a requirement to store recent signed blocks
2020-03-10 13:13:33 -06:00
Danny Ryan 1579072e15
add note about total balance overflowing 2020-03-10 13:12:17 -06:00
Danny Ryan d6eedd95c0
fix wording to be clear it is about serving blocks
Co-Authored-By: Diederik Loerakker <proto@protolambda.com>
2020-03-10 13:04:28 -06:00
Danny Ryan bd5231a975
Merge pull request #1614 from ethereum/eth2-enr
add eth2 key/value ENR to phase 0 p2p
2020-03-10 13:02:32 -06:00
Danny Ryan 1818f349ad
add ForkDigest type, clarify how genesis_validators_root is mixed into domains for chain isolation in p2p faq 2020-03-10 11:59:34 -06:00
protolambda 55d436db51
simplify description of voting period time 2020-03-10 18:55:59 +01:00
protolambda 2d7a292d36
eth1 vote period constant in epochs: update configs, phase1, tests 2020-03-10 18:36:53 +01:00
Hsiao-Wei Wang 882b9ee035
Merge branch 'dev' into rewards-overflow 2020-03-11 00:41:17 +08:00
Sly Gryphon da5720f9d1 Put back in a requirement to store recent signed blocks that was removed when SignedBeaconBlock was introduced (prior to that the signature was in BeaconBlock, which was recorded in Store). 2020-03-10 21:31:03 +10:00
Danny Ryan 6230a22976
Merge pull request #1606 from ethereum/rpc-snappy-lengths
RPC chunks with streaming SSZ decoding, snappy frames, and stricter DOS limits where possible.
2020-03-09 11:04:12 -06:00
Danny Ryan 7e04989e29
add genesis_validators_root to beaconstate and utilize in sig domain separation as well as fork separation 2020-03-05 09:21:32 -07:00
Danny Ryan 37b1fed8ff
update eth2 ENR field to use ENRForkID 2020-03-04 14:16:30 -07:00
Danny Ryan 5dae252f56
add eth2 key/value ENR to phase 0 p2p 2020-03-04 12:33:23 -07:00
Danny Ryan f082aa6ca9
use EFFECTIVE_BALANCE_INCREMENT to normalize reward calculations 2020-03-03 15:34:02 -07:00
Danny Ryan 33e7680836
make hysteresis calculations configurable 2020-03-03 10:58:47 -07:00
Danny Ryan 2d4ec7d52f
add REWARD_OVERFLOW_INCREMENT to avoid overflow in rewards calculation 2020-03-03 10:23:08 -07:00
Danny Ryan 0122081d05
hysteresis to -0.25/+1.25 2020-03-02 15:55:01 -07:00
Jacek Sieka 38323d8186
Add faq 2020-03-01 17:17:29 +01:00
protolambda bb82a051ff
clean up, add invalid input handling 2020-02-27 19:39:34 +00:00
Danny Ryan 4d72dcf3ab
@hwwhww feedback
Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2020-02-27 12:00:55 -06:00
Danny Ryan 721f605a91
Merge branch 'dev' into phase1-tests 2020-02-22 12:10:35 -06:00
Danny Ryan 4c1fc9bffa
work through phase 1 tests 2020-02-22 12:06:31 -06:00
Ben Edgington 934c037a8a
Correct the duration of HISTORICAL_ROOTS_LIMIT
The duration of HISTORICAL_ROOTS_LIMIT is:
    SECONDS_PER_SLOT * SLOTS_PER_HISTORICAL_ROOT * HISTORICAL_ROOTS_LIMIT
which is
    12s * 2^13 * 2^24 = 1.65e12s = 52,262 years
2020-02-22 09:22:52 -06:00
Danny Ryan 3bb8e0d962
cleanup attester slashing conditon code snippet
Co-Authored-By: Diederik Loerakker <proto@protolambda.com>
2020-02-22 09:22:52 -06:00
Danny Ryan f671b86776
add DoS prevention validation conditions to voluntary_exit, proposer_slashing, and attester_slashing gossipsub channels 2020-02-22 09:22:52 -06:00
Danny Ryan 7329cc0933
pr feedback
Co-Authored-By: Diederik Loerakker <proto@protolambda.com>
2020-02-22 09:22:51 -06:00
Danny Ryan 3404f1e078
add lower bound condition on block gossip 2020-02-22 09:22:51 -06:00
Danny Ryan 581257e269
reorder gossip conditions to put cheap checks before signature verifications 2020-02-22 09:22:51 -06:00
Danny Ryan f7181adece
reverse params in get_aggregate_and_proof to match ssz type 2020-02-22 09:22:51 -06:00
Danny Ryan d2e08c0cdf
subnet validation PR feedback 2020-02-22 09:22:51 -06:00
Danny Ryan dde69cb8e2
add explicit instrucutions for construction of signed_aggregate_and_proof. add DOMAIN_SELECTION_PROOF and DOMAIN_AGGREGATE_AND_PROOF 2020-02-22 09:22:51 -06:00
Danny Ryan 5ee1f9b545
fix up some p2p validation conditions based on PR feedback 2020-02-22 09:22:50 -06:00
Danny Ryan fd633d2467
add clarifying note to signedaggregateandproof in vaidator guide and fix tocs 2020-02-22 09:22:50 -06:00
Danny Ryan 343168908c
prevent multiple beacon blocks from same proposer in a given slot 2020-02-22 09:22:50 -06:00
Danny Ryan 8da7a84eb7
create SignedAggregateAndProof to prevent DoS attacks 2020-02-22 09:22:50 -06:00
Danny Ryan 047936eb2d
Add no repeat attestation condition for committee_index_beacon_attestation gossip channel 2020-02-22 09:22:50 -06:00
Danny Ryan 0a849acdce
fix validator guide to show that block slashing is per slot rather than per epoch 2020-02-22 09:22:49 -06:00
Jacek Sieka 61f661b3ec
Update specs/phase0/p2p-interface.md
Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>
2020-02-20 08:23:09 +01:00
Danny Ryan a02aac43c2
adjust hysteresis to avoid initial over-deposit incentive 2020-02-18 12:36:20 -06:00
Danny Ryan 757f5a31dd
add proposer index and add/modify tests 2020-02-18 11:38:17 -06:00
Anton Nashatyrev cfcb7b2f01 Measure eth1 voting period in epochs instead of slots 2020-02-18 16:12:43 +03:00
Jacek Sieka 52b45ab9de
Add fork version to topic
Gossipsub peers are separate from the ETH2 RPC protocol, and thus cannot
rely on the application-level `Status` negotiation to establish if
they're on the same network.

Segregating gossipsub topics by fork version decouples RPC from gossip
further and allows peers to more easily listen only to the traffic of
the network they're interested in, without further negotiation.
2020-02-17 10:03:32 +01:00
Ben Edgington 8620adcdf1 Correct the duration of HISTORICAL_ROOTS_LIMIT
The duration of HISTORICAL_ROOTS_LIMIT is:
    SECONDS_PER_SLOT * SLOTS_PER_HISTORICAL_ROOT * HISTORICAL_ROOTS_LIMIT
which is
    12s * 2^13 * 2^24 = 1.65e12s = 52,262 years
2020-02-14 14:29:45 +00:00
Danny Ryan 40b4931f01
cleanup attester slashing conditon code snippet
Co-Authored-By: Diederik Loerakker <proto@protolambda.com>
2020-02-13 11:17:19 -07:00
Danny Ryan a7ef70eb9b
add DoS prevention validation conditions to voluntary_exit, proposer_slashing, and attester_slashing gossipsub channels 2020-02-12 15:56:03 -07:00
Danny Ryan f441fadfff
pr feedback
Co-Authored-By: Diederik Loerakker <proto@protolambda.com>
2020-02-12 15:50:22 -07:00
Danny Ryan f8b72f5057
add lower bound condition on block gossip 2020-02-12 12:07:57 -07:00
Danny Ryan a9fae27379
Merge pull request #1615 from ethereum/subnet-validations
Add subnet validations for DoS resistance
2020-02-12 12:02:28 -07:00
Danny Ryan 714a7de8a2
reorder gossip conditions to put cheap checks before signature verifications 2020-02-12 11:59:00 -07:00
Danny Ryan 90476388fe
reverse params in get_aggregate_and_proof to match ssz type 2020-02-11 15:54:18 -07:00
Danny Ryan bf8252aeb6
subnet validation PR feedback 2020-02-11 15:46:30 -07:00
Danny Ryan eec57f29b7
add explicit instrucutions for construction of signed_aggregate_and_proof. add DOMAIN_SELECTION_PROOF and DOMAIN_AGGREGATE_AND_PROOF 2020-02-11 15:45:51 -07:00
Danny Ryan 8d16d428e0
fix up some p2p validation conditions based on PR feedback 2020-02-10 21:35:39 -07:00
Danny Ryan 3d111f7bdd
Merge pull request #1612 from ethereum/v-guide-per-slot-slash
[validator guide] beacon block is per-slot slashing
2020-02-10 19:42:01 -07:00
Danny Ryan 8a2a689c80
add clarifying note to signedaggregateandproof in vaidator guide and fix tocs 2020-02-10 19:36:08 -07:00
Danny Ryan 1ca4e3538c
prevent multiple beacon blocks from same proposer in a given slot 2020-02-10 19:28:37 -07:00
Danny Ryan 118a755bbb
create SignedAggregateAndProof to prevent DoS attacks 2020-02-10 19:18:14 -07:00
Danny Ryan c1a51a9358
Add no repeat attestation condition for committee_index_beacon_attestation gossip channel 2020-02-10 18:53:26 -07:00
Danny Ryan d5f1402d0d Merge pull request #1604 from status-im/fewer-head-block-roots
drop `head_block_root` from BeaconBlocksByRange
2020-02-08 18:24:54 -06:00
Danny Ryan 43cacc3fe9
fix validator guide to show that block slashing is per slot rather than per epoch 2020-02-08 16:58:05 -07:00
Jacek Sieka 6188f350f6
it's just a number 2020-02-07 19:03:33 +01:00
Jacek Sieka 97d931b705
rephrase fork choice requirement 2020-02-07 19:03:09 +01:00
Alex Stokes b398e42439
another typo in pubsub channel name 2020-02-06 16:41:53 -08:00
Alex Stokes 7aeeb372a7
[validator-guide] typo fix 2020-02-06 16:03:40 -08:00
Danny Ryan 03f53e9928
Merge pull request #1607 from AgeManning/noise-specification
Add libp2p-noise specification
2020-02-06 12:05:49 -06:00
Age Manning 9355a6ebca
Noise libp2p specification 2020-02-05 14:33:00 +11:00
protolambda 93249aadda
Proposal to focus on length-encoding SSZ contents, enable streaming of chunk contents, and put stricter DOS limits in place 2020-02-04 13:56:32 +01:00
Jim McDonald 74c75fd6f1
Remove extraneous word 2020-02-02 22:08:11 +00:00
Jacek Sieka c943b5832e
drop `head_block_root` from BeaconBlocksByRange
This change simplifies the protocol and removes a race condition between
block request and response. In the case of honest server, this helps
serve the canonical / fork-chosen chain better while dishonest or broken
servers still need to be handled the same way.

Might as well get started on versions and upgrade it to 2, since the
change is backwards incompatible.
2020-01-31 22:04:48 +01:00
Herman Junge 51f2974678
Update validator.md
Minor edit
2020-01-29 13:51:38 +00:00
Danny Ryan 67a4d5e659
Merge branch 'dev' into master-copy 2020-01-24 13:49:22 -07:00
Jim McDonald d4ae00819a
Fix for increased seconds per slot 2020-01-23 13:08:52 -07:00
protolambda 86b699bfd1
Merge branch 'dev' into phase1rebase 2020-01-23 19:24:03 +01:00
Jim McDonald de1bb7bde1
Update for renamed constant 2020-01-23 09:55:04 -07:00
Hsiao-Wei Wang a13271af41
Fix BLS API description 2020-01-23 09:52:40 -07:00
Ben Edgington f8250b6a1a
Correct typo in heading level 2020-01-23 09:51:58 -07:00
Chih Cheng Liang 14cfc66c33
Fix p2p interface indentation 2020-01-23 09:51:38 -07:00
Danny Ryan eed3f6053d
Merge pull request #1580 from ethereum/fork-choice-fix-1574
Fork choice fix issue 1574
2020-01-22 16:56:00 -07:00
Danny Ryan d672c47aba
Merge pull request #1579 from ethereum/epochs-in-fork-choice
Properly handle skip slots in fork choice
2020-01-22 16:55:15 -07:00
Diederik Loerakker 9f5f501e5b
Merge pull request #1586 from ethereum/fix-default-compute-domain
fix default value in compute_domain
2020-01-23 00:29:28 +01:00
Jim McDonald ebac603745
Update for renamed constant 2020-01-22 22:23:36 +00:00
Danny Ryan fe103394db
Merge pull request #1583 from sigp/kirk-baird-patch-02
Update BLS Link
2020-01-22 14:57:36 -07:00
Danny Ryan b357e43aab
clarifying comment on call to get_ancestor in on_block 2020-01-22 14:31:23 -07:00
Danny Ryan e821476c07
explicitly use Optiona type for fork_version in compute_domain
Co-Authored-By: Carl Beekhuizen <carl@ethereum.org>
2020-01-22 11:38:50 -07:00
Danny Ryan cf18b040b4
fix default value in compute_domain 2020-01-22 07:24:15 -07:00
Kirk Baird 601701241c
Update link
Signed-off-by: Kirk Baird <baird.k@outlook.com>
2020-01-22 11:04:45 +11:00
Danny Ryan 2015433fa1
revert exit queue epoch issue introduced in v0.10.0. add test to catch subtlety 2020-01-20 20:03:38 -07:00
Danny Ryan 00d3fb4fe6
fix issue 1574 by ensuring that justified checkpoint in store updates when finalized updates if needbe 2020-01-20 18:50:50 -07:00
Danny Ryan e98c1b4154
don't consider blocks with slots earlier than finalized in on_block fork choice (optimization) 2020-01-20 18:10:39 -07:00
Danny Ryan f1697d03e7
fix corner case to properly handle skipped slots in get_ancestor 2020-01-20 17:49:09 -07:00
Danny Ryan 3c07b2c954
Make phase 0 fork choice more modular to more easily adopt for slight modifications in phase 1 2020-01-15 16:40:50 -07:00
Danny Ryan 08621a7973
Merge pull request #1567 from ethereum/fix_bls_api
[Minor] fix BLS API description
2020-01-15 14:21:15 -07:00
Danny Ryan 1756348e8d
Merge pull request #1569 from ChihChengLiang/minor-fix-indentation
[Minor] Fix p2p interface table level
2020-01-15 14:19:42 -07:00
protolambda 6c74468142
forkchoice store on top of any state now 2020-01-14 01:02:02 +01:00
protolambda 4732c7beb1
merge in dev (v0.10) and fix reorg/lint issues 2020-01-13 18:55:21 +01:00
Chih Cheng Liang 065b4ef856
Fix p2p interface indentation 2020-01-13 20:42:23 +08:00
Ben Edgington b001f250db Correct typo in heading level 2020-01-13 09:34:34 +00:00
Hsiao-Wei Wang efbea8c53c
Fix BLS API description 2020-01-13 12:49:03 +08:00
Danny Ryan 676e216beb
reorg specs by fork and move ssz out to own folder. make all of the build and link changes to support move 2020-01-10 11:55:13 -07:00