Commit Graph

3216 Commits

Author SHA1 Message Date
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 92eef0e00b
fix light client sig verification in phase 1 2020-03-09 14:52:30 -06: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 5e1fb79a8e
Merge pull request #1627 from ethereum/hysteris-fix
adjust hysteresis to avoid initial over-deposit incentive
2020-03-03 14:15:24 -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
Hsiao-Wei Wang b4c7481b35
Fix the misc table 2020-03-03 01:28:58 +01: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
Danny Ryan 186d4258b6
fix shard offsets 2020-02-28 13:20:37 -06: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 9718d206a7
fix attester slahsing test 2020-02-26 11:20:19 -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
Danny Ryan 97fa3741af
working through test issues 2020-02-22 09:30:33 -06:00
Danny Ryan ceb6633eb9
working through phase 1 attestation testing 2020-02-22 09:24:14 -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
Danny Ryan d414aac933
rework process_attestation and work through tests 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 129aa02cb3
support tests with SLOTS_PER_EPOCH * 256 vals 2020-02-10 17:56:05 -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
terence tsao fe58c78da8
Fix table 2020-01-29 14:08:48 -08:00
Herman Junge 51f2974678
Update validator.md
Minor edit
2020-01-29 13:51:38 +00:00
vbuterin 52fb929978
Update specs/core/1_beacon-chain.md 2020-01-28 17:32:57 -07:00
vbuterin 2a91b43eaf
Remove shard block chunking
Only store a 32 byte root for every shard block

Rationale: originally, I added shard block chunking (store 4 chunks for every shard block instead of one root) to facilitate construction of data availability roots. However, it turns out that there is an easier technique. Set the width of the data availability rectangle's rows to be 1/4 the max size of a shard block, so each block would fill multiple rows. Then, non-full blocks will generally create lots of zero rows. For example if the block bodies are `31415926535` and `897932` with a max size of 24 bytes, the rows might look like this:

```
31415926
53500000
00000000
89793200
00000000
00000000
```
Zero rows would extend rightward to complete zero rows, and when extending downward we can count the number of zero rows, and reduce the number of extra rows that we make, so we only make a new row for every nonzero row in the original data. This way we get only a close-to-optimal ~4-5x blowup in the data even if the data has zero rows in the middle.
2020-01-28 17:31:51 -07:00
protolambda d9f62f9303
Remerkleable - merkle tree based ssz for better and faster spec 2020-01-25 00:43:43 +01:00