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
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
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
7a412534d9
remove test_shard_blocks (outdated) and reduce PERSISTENT_COMMITTEE_PERIOD in minimal config
2020-01-15 18:17:07 -07:00
Danny Ryan
c0b69e531f
cycle through committee indexes instead of through active shards when forming crosslinks
2020-01-15 17:43:11 -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
5785b4fc5b
custody bits temporary solution
2020-01-14 01:59:01 +01:00
protolambda
f04a686db7
doctoc
2020-01-14 01:42:19 +01:00
protolambda
f6f8bd5350
no custody bits fallback
2020-01-14 01:36:16 +01:00
protolambda
6c74468142
forkchoice store on top of any state now
2020-01-14 01:02:02 +01:00
protolambda
702b253361
update configs for phase1
2020-01-13 19:50:36 +01:00
protolambda
419b6a3250
config change, need more space for worst-case reveals
2020-01-13 19:00:24 +01:00
protolambda
507a9afbfb
apply custody bit fix suggestion from Dankrad
2020-01-13 18:57:56 +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
Danny Ryan
5e96c08f41
add MAXIMUM_GOSSIP_CLOCK_DISPARITY for gossip subnet validations
2020-01-10 07:28:14 -07:00
Danny Ryan
e0cd1090bd
fix voluntary exit to be wrt signed voluntary exit in p2p spec
2020-01-09 17:38:43 -07:00
Danny Ryan
af702d42fd
add slot validation condition for beacon block gossip sub channel
2020-01-09 17:14:00 -07:00
protolambda
68ff136b5d
warn about broken attestation validation, fix most attester slashings tests
2020-01-10 00:00:10 +01:00
Danny Ryan
b8d4ce4c39
fix default value when voting on eth1data
2020-01-09 14:54:07 -07:00
protolambda
140129ec51
Merge dev into phase1 refactor, update BLS phase1
2020-01-09 14:56:06 +01:00
Danny Ryan
f01254dd7f
Merge branch 'dev' into JustinDrake-patch-2
2020-01-08 13:54:16 -07:00
Danny Ryan
fff354d673
Merge branch 'dev' into carl_new_new_bls
2020-01-07 15:44:30 -07:00
Carl Beekhuizen
12ea891ce5
`py_ecc` 2.0.0 baby!
2020-01-07 20:52:20 +01:00
Carl Beekhuizen
8948393e76
Remove references to BLS messages
2020-01-07 20:28:16 +01:00
Hsiao-Wei Wang
fbfe024e7a
Rename vyper file from `.v.py` to `.vy`
2020-01-07 17:20:17 +08:00
Danny Ryan
c3f7f0bc2b
Merge pull request #1556 from ethereum/constant-genesis-slot
...
move GENESIS_SLOT/EPOCH to constants
2020-01-06 17:28:06 -07:00
Danny Ryan
b637b9ad72
fix mod bug for voting period
2020-01-06 17:19:31 -07:00
Danny Ryan
9ea03dce60
add compute_time_at_slot helper in validator doc
2020-01-06 12:16:47 -07:00
Diederik Loerakker
a295451f37
Merge pull request #1555 from ethereum/att-when-ready
...
add eager attestation broadcasting
2020-01-06 01:15:13 +01:00
protolambda
68d93f945c
online countdown fixes
2020-01-06 00:46:36 +01:00
protolambda
9c07e26a4d
length assert not applicable anymore
2020-01-06 00:25:18 +01:00
protolambda
6b872da3ec
light client bitfield is vector now, small size anyway, better separation of committee complexity from data init
2020-01-06 00:17:48 +01:00
protolambda
2f3919c176
bugfix: pass block body to sub processing functions
2020-01-05 23:51:24 +01:00
protolambda
2e6090fcd8
bugfixes for experimental phase0 -> phase1 fork py code
2020-01-05 23:37:42 +01:00
Danny Ryan
50c8727ae7
make genesis delay configurable
2020-01-05 15:29:23 -07:00
Danny Ryan
8515aec7aa
move GENESIS_SLOT/EPOCH to constants as they are not truly configurable
2020-01-05 15:07:41 -07:00
Danny Ryan
5ac0d12205
Merge pull request #1553 from ethereum/eth1-caching
...
`get_eth1_data` uses timestamp instead of block height
2020-01-05 14:44:47 -07:00
Danny Ryan
43d095214c
add note that validator should broadcast attestation immediately when receiving block from expected proposer
2020-01-05 14:10:06 -07:00
protolambda
a8276f683e
don't hardcode shard count, bad example, need upgradeability
2020-01-05 20:20:20 +01:00
protolambda
018927def0
generalize previous-slot function
2020-01-05 20:11:55 +01:00