Commit Graph

4120 Commits

Author SHA1 Message Date
Adrian Sutton 08f9f81c1f
Update note about changes to slash_validator. 2021-04-07 11:44:24 +10:00
Danny Ryan 680e264fa9
Merge pull request #2295 from mkalinin/application-payload-fields
New application payload fields
2021-04-06 15:38:40 -06:00
Danny Ryan 0c1fae6079
Merge pull request #2302 from ethereum/shardblobs
Shard blob, headers and slashings
2021-04-06 15:24:58 -06:00
Diederik Loerakker f3dbb8b46f
Merge pull request #2307 from ericsson49/ericsson49/fix_uint64_overflow
Fix uint64 overflow when computing ROOT_OF_UNITY
2021-04-06 23:15:47 +02:00
protolambda cb29a7ed91
Merge branch 'dev' into shardblobs 2021-04-06 19:49:48 +02:00
protolambda 2119efc1bf
change to block-root anchor of shard blob 2021-04-06 19:31:20 +02:00
protolambda ead3510704
update TOC, check slot range to avoid future-slot state-root lookup 2021-04-06 17:07:29 +02:00
Mikhail Kalinin 2a4756da2e Add transactions_root to ApplicationBlockHeader 2021-04-06 11:48:33 +06:00
protolambda 36e871dc88
Enforce state sub-tree in shard blob proposal to avoid inconsistent replays on reorg, and provide context for proposer_index computation 2021-04-06 04:00:55 +02:00
protolambda 2cbc52b9dc
Implement review suggestions
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-04-06 03:17:07 +02:00
Danny Ryan 05581e759c
Merge pull request #2309 from terencechain/fix-spelling
Fix spelling
2021-04-05 18:48:40 -06:00
protolambda f7069510e6
update shard blob and headers types, implement shard blob slashings, update shard gossip validation 2021-04-06 02:23:43 +02:00
terence tsao b2f42bf4d7 broadast -> broadcast 2021-04-05 17:05:59 -07:00
Alex Stokes 746d6453bc
Clean up unnecessary function arguments
Some of the inputs to some functions in the Altair validator guide
were required in earlier iterations of the aggregation scheme but are
no longer required in the current version. This commit cleans up these
functions.
2021-04-05 16:56:13 -07:00
ericsson 37fe8068ca Cast `MAX_SAMPLES_PER_BLOCK * POINTS_PER_SAMPLE` to `int` to avoid `uint64` overflow 2021-04-05 23:13:54 +03:00
Danny Ryan 0b069fbfca
Merge pull request #2303 from ericsson49/ericsson49/fix_typos
Sharding spec typos fixed
2021-04-05 12:27:33 -06:00
Danny Ryan 52e4ce3bcf
Merge pull request #2276 from barnabemonnot/altair_incentives
Modify incentives to preserve invariant
2021-04-05 12:23:17 -06:00
Alex Stokes bf7c61ff30
Merge pull request #2299 from ralexstokes/update-altair-p2p
Fix language with sync committee selection proofs
2021-04-05 11:03:36 -07:00
Hsiao-Wei Wang 8d60614728
Merge branch 'dev' into altair_incentives 2021-04-06 00:01:11 +08:00
Meredith Baxter 4a1126d916 Fix table formatting 2021-04-05 11:34:06 -04:00
ericsson 01dc8c6624 Type fixed: `boolean` instead of `bool` in `PendingShardHeader` 2021-04-05 18:22:53 +03:00
ericsson c0a2ab54f1 Type fixed: made BLSCommitment descending from Bytes48 instead of bytes48 2021-04-05 17:39:04 +03:00
ericsson 99c1b75e59 More backquotes to make DocToc happy 2021-04-05 17:08:38 +03:00
ericsson 71a609464c fixed some typos, which blocks Python parser 2021-04-05 16:53:03 +03:00
ericsson 1a8ff79a18 Add backquotes around DASSample, since setup.py/get_spec fails w/o them 2021-04-05 16:51:26 +03:00
Alex Stokes 9aaf548c37
Fix language with sync committee selection proofs 2021-04-02 18:37:30 -07:00
Mikhail Kalinin 79aee8645d Implement ApplicationBlockHeader 2021-04-02 21:01:49 +06:00
Justin 48fb9c39c2
Update beacon-chain.md 2021-04-02 15:05:54 +01:00
Justin 88d8f80957
Fix two bugs (and some cleanups)
Fix two bugs:

1) The participant reward (previously known as "inclusion reward") should not be proportional to `effective_balance` because a sync committee member is already chosen with probability proportional to the effective balance. Credit to @vbuterin.
2) The participant reward (previously known as "inclusion reward") was too large by a factor of `len(participant_indices)`, not taking into account the `for` loop.

Fixing these two bugs actually makes the code significantly simpler and cleaner :)

@barnabemonnot: Could you check the logic? :) If confirmed happy to update the tests.
2021-04-02 14:52:32 +01:00
Danny Ryan acfbd9375e
Merge pull request #2293 from ralexstokes/reorder-aggregation-conditions
Reorder Altair gossip validation conditions
2021-04-01 11:25:10 -06:00
Danny Ryan b81c64fa15
Merge pull request #2287 from mbaxter/altair/change-altair-fork-default
Set tmp ALTAIR_FORK_SLOT to max value
2021-04-01 06:39:14 -06:00
Danny Ryan b3f72075cb
Merge pull request #2294 from michaelsproul/sync-committee-balance
Simplify balance calc in `process_sync_committee`
2021-04-01 06:36:41 -06:00
Adrian Sutton 45c764618a
Fix missed rename from aggregate_and_proof to contribution_and_proof 2021-04-01 15:18:31 +10:00
Danny Ryan 28216cbcda
fix lint
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2021-03-31 13:22:45 -06:00
Mikhail Kalinin 106e1b98ba Add parent_hash, number to ApplicationPayload 2021-03-31 16:10:02 +06:00
Mikhail Kalinin b52cde0c86 Fix redundant application_parent_hash in validator.md 2021-03-31 15:06:32 +06:00
Michael Sproul e8b758f9a6
Simplify balance calc in `process_sync_committee` 2021-03-31 17:21:51 +11:00
Alex Stokes b151adbd4e
Reorder Altair gossip validation conditions
Validate the `selection_proof` selects the incoming validator as an
aggregator before doing other checks like committee inclusion and
(relatively) expensive signature checks.
2021-03-30 16:18:14 -07:00
Hsiao-Wei Wang 2def461298
Merge branch 'dev' into altair_incentives 2021-03-31 00:53:58 +08:00
Danny Ryan ed6358a719
Merge pull request #2248 from hukkinj1/dev
Fix list indentation
2021-03-30 07:32:35 -06:00
Danny Ryan 51db49988a
Merge pull request #2254 from ethereum/phase1-rebased
Modularize Phase1 into post-Merge features: Sharding, Custody Game, Data Availability Sampling
2021-03-30 07:24:26 -06:00
protolambda 07b7774241
misc. phase1 modules refactor updates 2021-03-30 01:46:02 +02:00
protolambda 9420c29899
custody game doc naming updates 2021-03-30 01:39:01 +02:00
Diederik Loerakker 430627f290
Apply suggestions from @djrtwo
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-03-30 01:33:17 +02:00
Meredith Baxter 4b81cc21f4 Update altair/fork.md 2021-03-29 15:15:53 -04:00
terence tsao eca6bd7d62 Fix merge beacon chain spec's toc 2021-03-29 11:56:43 -07:00
Danny Ryan 41c5f1c4d6
Merge pull request #2279 from ethereum/ralexstokes-patch-2
Fix aggregation bits example in Altair validator guide
2021-03-29 12:37:47 -06:00
Danny Ryan 6f07448883
Merge pull request #2282 from benjaminion/altair-1
Make if condition more precise
2021-03-29 07:59:19 -06:00
Danny Ryan 48d619d299
Merge pull request #2277 from ralexstokes/fix-altair-val-guide
Fix use of block root in Altair validator guide
2021-03-29 07:59:02 -06:00
Danny Ryan ef4a5af645
Merge pull request #2278 from ethereum/ralexstokes-patch-1
Fix typo from earlier edit to field name
2021-03-29 07:55:09 -06:00
Danny Ryan a51c5ee4c2
Apply suggestions from code review
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-03-29 07:51:49 -06:00
terence tsao f73aa2f98d
Fix spelling: negotiatied -> negotiated 2021-03-28 17:06:12 -07:00
Taneli Hukkinen b02aed93a3 Fix another list's indent 2021-03-29 01:17:29 +03:00
Taneli Hukkinen b23b16c7b7 Fix list indentation 2021-03-29 01:10:36 +03:00
Ben Edgington 64fc912ce7 Make if condition more precise 2021-03-27 16:13:46 +00:00
protolambda 2bc3e814b0
rename to custody game 2021-03-27 01:58:39 +01:00
protolambda 5e186fc136
update sharding spec to extend Merge types 2021-03-27 01:28:52 +01:00
protolambda 29f78a7f06
proof of custody full name 2021-03-27 00:53:25 +01:00
protolambda 379ba98eb7
move static sharding configuration into constants 2021-03-27 00:47:10 +01:00
protolambda 112056fa80
add custom types to TOC 2021-03-26 22:38:52 +01:00
protolambda 65dbf6a5c4
toc 2021-03-26 22:37:33 +01:00
protolambda b627f708b9
fix body type 2021-03-26 22:37:33 +01:00
protolambda 4e4d0eb24a
update custody doc wording 2021-03-26 22:37:33 +01:00
protolambda d4c057a0bd
bls point type back to sharding spec 2021-03-26 22:37:33 +01:00
protolambda f618f3c59d
move custody-specific operations to custody spec 2021-03-26 22:37:32 +01:00
protolambda 8542d349bf
update sharding p2p doc 2021-03-26 22:37:32 +01:00
protolambda 0b8e3aee44
move shard blob types from das to sharding spec 2021-03-26 22:37:32 +01:00
protolambda 306fc95c60
Update doc names and sharding readme section 2021-03-26 22:37:32 +01:00
protolambda c748c1d7d5
cleanup sharding docs 2021-03-26 22:37:32 +01:00
protolambda 6d2d8cb982
toc updates 2021-03-26 22:37:32 +01:00
protolambda 882aa81ee9
cleanup 2021-03-26 22:37:31 +01:00
protolambda 4068a887c5
split phase1 features 2021-03-26 22:37:31 +01:00
protolambda 3f97cca531
remove light-client-sync. Altair implements this. Shard-specific part can be implemented later. 2021-03-26 22:37:31 +01:00
protolambda 2696968f24
cleanup validator doc; lightclient was moved to altair, shards are data-heavy, no transitions for now 2021-03-26 22:37:31 +01:00
protolambda b3c5e65698
cleanup old docs about transition-full sharding 2021-03-26 22:37:31 +01:00
protolambda 8116e1c0a3
minor fixes to appease CI 2021-03-26 22:37:31 +01:00
protolambda cf8676690a
notes about backbone identification function claims 2021-03-26 22:37:31 +01:00
protolambda b7d965b543
split out general phase1 networking from DAS 2021-03-26 22:37:30 +01:00
protolambda 02e3144283
fix DAS p2p validation rule wording 2021-03-26 22:37:30 +01:00
protolambda 8e21a31d0f
DAS docs TOC updates 2021-03-26 22:37:30 +01:00
protolambda 4c5afb92f4
refactor/polish style of DAS docs, move DAS validator work to new doc 2021-03-26 22:37:30 +01:00
Diederik Loerakker c6af2ec687
Code review - apply suggestions to DAS doc
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-03-26 22:37:30 +01:00
Danny Ryan a8c9cfbe84
minor cleanups/fixes to shard data avail PR 2021-03-26 22:37:30 +01:00
protolambda a1831940ea
adjustments based on review by @dankrad 2021-03-26 22:37:30 +01:00
Diederik Loerakker 5e57ff0ab1
Update specs/phase1/data-availability-sampling.md
Co-authored-by: dankrad <dankrad@ethereum.org>
2021-03-26 22:37:29 +01:00
protolambda 334c88961c
toc 2021-03-26 22:37:29 +01:00
protolambda a02f856e54
update bit-reverse-ordering/presentation + shard blob signature verification 2021-03-26 22:37:29 +01:00
protolambda 91e935d4f3
more DAS spec work: DAS function signatures, gossip details 2021-03-26 22:37:29 +01:00
protolambda e3a7e169f5
DAS doc 2021-03-26 22:37:29 +01:00
protolambda 6f0b613f08
work in progress DAS network + validator spec 2021-03-26 22:37:29 +01:00
vbuterin be91e59823
DAS phase 1 2021-03-26 22:37:29 +01:00
Danny Ryan 304e87a98c
typo 2021-03-26 22:37:28 +01:00
protolambda be93b03cc8
pending_commitment.votes -> pending_header.votes 2021-03-26 22:37:28 +01:00
Danny Ryan 1192158848
minor cleanups/fixes to shard data avail PR 2021-03-26 22:37:28 +01:00
vbuterin 3e6baf1ef1
Fixed index vs shard and beacon committee getting 2021-03-26 22:37:28 +01:00
vbuterin ca6323866d
Apply suggestions from code review
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: dankrad <dankrad@ethereum.org>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2021-03-26 22:37:28 +01:00
Dankrad Feist 0af9e25e6b
Revert hackmd link -- original link was good, just accidentally overwritten 2021-03-26 22:37:28 +01:00
Dankrad Feist ac0686de04
Refactor loop 2021-03-26 22:37:28 +01:00
Dankrad Feist fc4dad6a13
Fix degree proof for length 0 (degree -inf) 2021-03-26 22:37:27 +01:00
Dankrad Feist 29a5d4c836
BLSCommitment -> DataCommitment 2021-03-26 22:37:27 +01:00
dankrad eccae0aa89
Update specs/phase1/beacon-chain.md
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2021-03-26 22:37:27 +01:00
Dankrad Feist f216000815
MAX_COMMITTEE_SIZE -> MAX_VALIDATORS_PER_COMMITTEE (missed one) 2021-03-26 22:37:27 +01:00
dankrad 7fc34c801d
Update specs/phase1/beacon-chain.md
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2021-03-26 22:37:27 +01:00
Dankrad Feist 41f97162d6
most_recent_confirmed_commitments -> grantparent_epoch_confirmed_commitments 2021-03-26 22:37:27 +01:00
Dankrad Feist f44b7ffe48
Change length proof to degree proof 2021-03-26 22:37:27 +01:00
Dankrad Feist a260dbcf15
Kate -> KZG10 (better in formal contexts) 2021-03-26 22:37:26 +01:00
dankrad 6660262f5d
Update specs/phase1/beacon-chain.md
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
2021-03-26 22:37:26 +01:00
dankrad 0408aa52cc
Update specs/phase1/beacon-chain.md
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
2021-03-26 22:37:26 +01:00
Dankrad Feist f0fc9c6462
Add modulus 2021-03-26 22:37:26 +01:00
Dankrad Feist 126d07cfb3
MAX_COMMITTEE_SIZE -> MAX_VALIDATORS_PER_COMMITTEE 2021-03-26 22:37:26 +01:00
dankrad 6e249e8932
Update specs/phase1/beacon-chain.md
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2021-03-26 22:37:26 +01:00
Dankrad Feist c674a27a25
Fix seed in get_shard_proposer_index 2021-03-26 22:37:26 +01:00
Dankrad Feist 0769b2ca6d
Fill in with zeroes only up to the next power of two, to reduce degrees of polynomials 2021-03-26 22:37:25 +01:00
Dankrad Feist 68844f2e9d
Increase maximum allowable gas price and restrict proposer selection so it is guaranteed to be covered 2021-03-26 22:37:25 +01:00
Dankrad Feist 7d05c42cad
Improve/correct length checking 2021-03-26 22:37:25 +01:00
Dankrad Feist 4348d3b255
Add data availability coding rate as a constant (makes it more explicit what's going on) 2021-03-26 22:37:25 +01:00
vbuterin 315fe92f08
Added size check to include the degree check 2021-03-26 22:37:25 +01:00
vbuterin d3cb261a16
Delta minimum 1 2021-03-26 22:37:25 +01:00
Dankrad Feist 4647a1b6e2
Some small fixes 2021-03-26 22:37:25 +01:00
vbuterin 2abc7a4cf2
pending_headers -> pending_shard_headers 2021-03-26 22:37:24 +01:00
vbuterin 42ad1208a9
Update specs/phase1/beacon-chain.md
Co-authored-by: dankrad <dankrad@ethereum.org>
2021-03-26 22:37:24 +01:00
vbuterin 1bccf9ff02
Update specs/phase1/beacon-chain.md
Co-authored-by: dankrad <dankrad@ethereum.org>
2021-03-26 22:37:24 +01:00
vbuterin badc3eaa8e
Update specs/phase1/beacon-chain.md
Co-authored-by: dankrad <dankrad@ethereum.org>
2021-03-26 22:37:24 +01:00
vbuterin 27dbb5e4a4
Update specs/phase1/beacon-chain.md
Co-authored-by: dankrad <dankrad@ethereum.org>
2021-03-26 22:37:24 +01:00
Hsiao-Wei Wang 3211c11c17
Revert: `BeaconBlockHeader` was not changed 2021-03-26 22:37:24 +01:00
Hsiao-Wei Wang 55d9f62bf2
(OOP SSZ) if the fields are updated, we need to redefine them when defining the new SSZ class with the new field classes 2021-03-26 22:37:23 +01:00
Hsiao-Wei Wang 1ce25c19e8
Minor fixes 2021-03-26 22:37:23 +01:00
vbuterin 2190c13858
Added dependencies to fork choice section 2021-03-26 22:37:23 +01:00
vbuterin ed357b9f9f
Abstracted (Kate commitment, length) into separate object 2021-03-26 22:37:23 +01:00
vbuterin 3d108e7fe2
Made confirmed headers a separate object 2021-03-26 22:37:23 +01:00
vbuterin 623f164bf1
Fixed custom types 2021-03-26 22:37:23 +01:00
vbuterin f75ea377d5
Second pass 2021-03-26 22:37:23 +01:00
vbuterin d02a6422e3
Combing... part 1 2021-03-26 22:37:22 +01:00
vbuterin e17ab8e8de
DAS phase 1 2021-03-26 22:37:16 +01:00
Diederik Loerakker 54279f9e3b
Merge pull request #2281 from ethereum/the-merge
Merge `the-merge` into `dev`
2021-03-26 22:27:41 +01:00
Danny Ryan 223aba3e78
byte-list for opaque transaction payload 2021-03-26 13:50:46 -06:00
Danny Ryan 41a087a78d
minor edits from code review
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2021-03-26 13:12:53 -06:00
Alex Stokes ccfbf5c70a
Fix use of block root in Altair validator guide 2021-03-26 11:59:01 -07:00
Alex Stokes 875aac4c43
Fix aggregation bits example in Altair validator guide
The sub-index calculation was incorrect when demonstrating how to map a validator in the sync committee to a particular bit in the `aggregation_bits` in the sync committee aggregation scheme. The correct index is given in this commit.
2021-03-26 11:50:48 -07:00
Alex Stokes f9ba7f616e
Fix typo from earlier edit to field name
The field name `aggregation_bits` was changed from `aggregate_bits` to reflect the same usage under the attestation scheme. This PR cleans up left-over references to the old field name in the section header and TOC.
2021-03-26 11:38:47 -07:00
Justin 0481e920f0
Deprecate the use of PROPOSER_REWARD_QUOTIENT 2021-03-26 10:51:29 +00:00
Barnabé Monnot 71d03a411c Scale up weights; use existing constants and new PROPOSER_WEIGHT 2021-03-26 18:36:49 +08:00
Barnabé Monnot 59134fb0ae Modify incentives to preserve invariant 2021-03-26 12:18:51 +08:00
Alex Vlasov 020895e35d
Typing problems fixes (#2271)
* Typing problem fixed: `process_block_header` passes `Bytes32()` to `state_root` of `BeaconBlockHeader`, which type is `Root`

* Typing problem fixed in `initialize_beacon_state_from_eth1`: `len` returns an `int` value, while `deposit_count=uint64` of `Eth1Data` has type `uint64`

* Typing problem fixed in `process_rewards_and_penalties`: `numerator` of type `int` passed to `weight` parameter of `get_flag_index_deltas`, which has type `uint64`

* Typing problem fixed in `process_attestation`; `False` passes as `crosslink_success` parameter of `PendingAttestation`, which has type `boolean`. `False` is an instance of `(python.)bool` and is not an instance of `(ssz.)boolean`

* Typing problem fixed: `shard_data_roots` of `ShardTransition` has type `List[Bytes32]`, but its elements are used as if they were `Root` values, e.g. in `process_chunk_challenge` method: passed to `data_root` of `CustodyChunkChallengeRecord` which has type `Root`

* Typing problem fixed in `process_custody_final_updates`: `index` has type `int`, while `validator_indices_in_records` has type `Set[ValidatorIndex]`, so tesing whether `index in validator_indices_in_records` can be risky, depending on implementation details. `ValidatorIndex(index) in validator_indices_in_records` is a safer variant.

* Typing problem fixed: `slashed` parameter of `pack_compact_validator` has type `(python.)bool`, however in `committee_to_compact_committee` a value of `(ssz.)boolean` is passed as a value of the parameter

* Typing problem fixed: `inactivity_scores` is a `List[uint64,...]`, while it is intialized/appended with values of `(python.)int` type

* fixed according to @protolambda suggestions

* changed types of _WEIGHT constants and appropriate variables/parameters, according to @protolambda suggestions

* revert code formatting back

* Introduced ZERO_ROOT according to @protolambda 's suggestion

* Reverted back to , according to @protolambda comments
2021-03-25 22:03:21 +01:00
Mikhail Kalinin 81a2c2c2b5 Use ByteList[N] and ByteVector[N] types 2021-03-25 18:41:00 +06:00
Mikhail Kalinin 260a0a5273 Polish merge/fork-choice.md 2021-03-25 17:53:15 +06:00
Mikhail Kalinin a23bde347b Bytes1 to byte in ApplicationPayload.logs_bloom 2021-03-25 17:51:32 +06:00
Mikhail Kalinin ee5ecf8e2b Address a new portion of comments and fixes 2021-03-25 17:49:13 +06:00
Mikhail Kalinin 63ae9f2bdb Standardise PowBlock between fork-choice and validator 2021-03-24 20:58:31 +06:00
Mikhail Kalinin ea5f606bd0 Address various cleanups and formatting suggestions 2021-03-24 16:30:29 +06:00