Danny Ryan
a9cc036184
remove timely_head penalty
2021-05-11 11:48:26 -06:00
Danny Ryan
e31a2af87b
remove extra if
2021-05-11 08:15:04 -06:00
Danny Ryan
b1d0364105
Merge branch 'dev' into vbuterin-patch-11
2021-05-11 08:12:27 -06:00
Danny Ryan
3c609e02ea
pr feedback
2021-05-11 07:28:24 -06:00
Danny Ryan
a6b8574962
test
2021-05-10 16:18:42 -06:00
Danny Ryan
85198fabfa
lint
2021-05-10 13:26:43 -06:00
Danny Ryan
d8e2d19ecc
spelling
2021-05-10 13:01:31 -06:00
Danny Ryan
ff706e5c7a
add logic for handling sync committee off by one issue
2021-05-10 12:57:11 -06:00
Danny Ryan
1494fe6ace
add get_inactivity_penalty_deltas back in
2021-05-10 12:21:49 -06:00
Danny Ryan
cd78425570
lint
2021-05-10 10:30:47 -06:00
Danny Ryan
95e2aa6471
Merge branch 'dev' into dankrad-altair-review
2021-05-10 10:23:38 -06:00
Danny Ryan
dd9fb06d25
Merge branch 'dev' into vbuterin-patch-12
2021-05-10 07:38:32 -06:00
Alex Stokes
b336b710e9
Update specs/altair/beacon-chain.md
...
Co-authored-by: vbuterin <v@buterin.com>
2021-05-07 16:48:16 -07:00
vbuterin
d1bedbfbec
Update inactivity penalty deltas processing
...
Two main changes:
1. Inactivity scores are modified to decrease slowly for inactive validators when we are not in a leak, and quickly for active validators
2. The inactivity penalties are applied even not during a leak (note that inactivity _scores_ decrease when outside of a leak)
This has the effect that the inactivity leak "overshoots" the target of finalizing again, and keeps leaking balances a bit more. For inactive validators, this PR sets post-leak recovery to happen 3x faster than the during-leak increase, so if a validator loses 3% during a leak, if they stay offline they should expect to lose another 1% until their score decreases back to zero.
2021-05-07 11:05:27 -07:00
Alex Stokes
04a9595415
Add notes about sync committee stability
2021-05-07 10:06:44 -07:00
Alex Stokes
86104ea361
Use stable sync committee indices when processing block rewards
2021-05-07 09:55:21 -07:00
dankrad
2fc68c451e
Update specs/altair/beacon-chain.md
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2021-05-06 22:55:55 +01:00
Dankrad Feist
ba2c717bf1
Remove PARTICIPATION_FLAGS
2021-05-06 22:55:17 +01:00
Danny Ryan
637cf0743c
Merge pull request #2376 from ralexstokes/adjust-sync-committee-subnet-count
...
Adjust subnet count to reflect smaller sync committees
2021-05-06 12:51:24 -06:00
Danny Ryan
b979ea144a
Merge pull request #2378 from ralexstokes/update-altair-sync-protocol
...
Updates to Altair light client sync protocol
2021-05-06 12:50:52 -06:00
Danny Ryan
13409dc1bc
Merge branch 'dev' into adjust-sync-comm-params
2021-05-06 12:43:11 -06:00
Danny Ryan
609172d790
Merge pull request #2370 from ralexstokes/simplify-sync-committee-aggregates
...
Simplify sync committee aggregates
2021-05-06 12:38:49 -06:00
Alex Stokes
4c73fec88e
convert `LightClientStore` to python object instead of SSZ object
...
this avoids the type overhead of having to define a max size for
the object's data and skips the overhead of serialization/consensus
for a type that does not need it
2021-05-06 10:52:48 -07:00
Dankrad Feist
81a8c2748f
Integrate get_inactivity_penalty_deltas into reward computation for better readability
2021-05-06 13:03:26 +01:00
Dankrad Feist
cf724daa7a
No inactivity penalty for untimely head
2021-05-06 12:42:05 +01:00
Dankrad Feist
cbf9f85537
Remove duplicate inactivity leak
2021-05-06 12:28:18 +01:00
Michael Sproul
ea6c042918
Altair: carry-over prev epoch participation
2021-05-06 10:55:10 +10:00
Dankrad Feist
b041a9b0d6
Further flag_index revert
2021-05-05 22:22:32 +01:00
Dankrad Feist
77524036f5
Revert "Flags to BitVector"
...
This reverts commit 786e611c71
.
# Conflicts:
# specs/altair/beacon-chain.md
2021-05-05 22:02:37 +01:00
Dankrad Feist
55471bc5d4
Revert "BitVector -> Bitvector"
...
This reverts commit df6bd1b6c3
.
2021-05-05 21:58:03 +01:00
Dankrad Feist
687641a79b
Remove extra variable
2021-05-05 21:55:36 +01:00
Dankrad Feist
227d1007e6
Update toc
2021-05-05 20:09:14 +01:00
Dankrad Feist
a382cf6d5c
Refactor participation flag list
2021-05-05 20:04:06 +01:00
Dankrad Feist
238a9b03fc
Correct confusing comments in "get_sync_committee_indices"
2021-05-05 18:09:36 +01:00
Alex Stokes
a2cf833437
Update specs/altair/beacon-chain.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-05-05 09:32:28 -07:00
Hsiao-Wei Wang
ded6d5bad4
Merge pull request #2377 from ralexstokes/altair-whitespace
...
clean up whitespace on altair files
2021-05-05 20:44:15 +08:00
Hsiao-Wei Wang
6a9b3671f0
Fix the type of `EPOCHS_PER_SYNC_COMMITTEE_PERIOD` and update the config files
2021-05-05 19:53:37 +08:00
Hsiao-Wei Wang
d383a14213
Fix ToC
2021-05-05 19:47:26 +08:00
Dankrad Feist
df6bd1b6c3
BitVector -> Bitvector
2021-05-05 12:26:37 +01:00
Dankrad Feist
786e611c71
Flags to BitVector
2021-05-05 12:05:32 +01:00
vbuterin
b310482bce
Update specs/altair/beacon-chain.md
2021-05-04 17:19:51 -07:00
vbuterin
9dcdbafba3
Reorganization of config params to put sync committee in one section
...
This may be marginally "cleaner" than the previous approach, keeping constants with the same topic together.
2021-05-04 17:19:15 -07:00
vbuterin
a562f2aeb4
"toward" -> "closer to" for penalty adjustments
...
Makes it clearer that even the Altair values are not final
2021-05-04 17:05:15 -07:00
Alex Stokes
3b80324119
Compute `LIGHT_CLIENT_UPDATE_TIMEOUT` in lieu of maintaining a constant
2021-05-04 13:47:46 -07:00
Alex Stokes
7a168be862
allow fault tolerance equal to threshold, not just above
2021-05-04 13:25:34 -07:00
Alex Stokes
eae64fd18c
clean up whitespace on altair files
2021-05-04 12:43:21 -07:00
Alex Stokes
7d236561bd
adjust subnet count to reflect smaller sync committees
2021-05-04 12:41:19 -07:00
Alex Stokes
9c3d5982cf
add documentation about duplicate pubkeys
2021-05-04 12:20:48 -07:00
Alex Stokes
7b33c1119a
simplify sync committee pubkey aggregation in altair
2021-05-04 12:19:33 -07:00
Alex Stokes
0438f2f27c
whitespace
2021-05-04 12:19:33 -07:00
Hsiao-Wei Wang
9980d2098d
Fix lint
2021-05-04 22:21:58 +08:00
Danny Ryan
80df9e6b0b
Merge branch 'dev' into altair-pass
2021-05-04 07:41:25 -06:00
Danny Ryan
053179cee9
comments and tests on altair
2021-05-04 07:39:22 -06:00
terence tsao
930ca61690
Fix lint (124 > 120 characters)
2021-05-02 20:47:57 -07:00
terence tsao
780121f9b0
Add backticks to the arguments in functional comments
2021-05-02 20:31:52 -07:00
Alex Stokes
68d6e4319a
Adjust sync committee size and duration
2021-05-01 16:30:23 -07:00
Danny Ryan
c3dfc2e085
Merge pull request #2362 from ethereum/sync-cleanup
...
Minor altair cleanups
2021-04-28 08:42:23 -06:00
Danny Ryan
e89fae86a6
Apply suggestions from code review
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-04-28 06:52:16 -06:00
Danny Ryan
9f74f1f9e5
minor sync committee cleanups
2021-04-27 15:06:45 -06:00
Danny Ryan
2628721f96
Merge pull request #2323 from ethereum/prepare_state
...
Simplify Altair "genesis"
2021-04-27 12:32:13 -06:00
Danny Ryan
c090d6aa21
Merge pull request #2352 from ralexstokes/add-altair-metadata-updates
...
Add `syncnets` data to Altair `MetaData`
2021-04-27 12:20:03 -06:00
Danny Ryan
ae429a38a0
add Modified comment
2021-04-27 12:11:15 -06:00
Alex Stokes
9bb3444c89
Add `syncnets` data to Altair `MetaData`.
2021-04-27 09:34:24 -07:00
ericsson
93378afcd0
Fix typing problem: `upgrade_to_altair` should use `phase0.get_current_epoch`
2021-04-23 18:21:29 +03:00
Alex Stokes
ebd16e1b79
add helper in p2p document to executable spec
2021-04-22 11:05:06 -07:00
Alex Stokes
3c07303c5c
Update specs/altair/p2p-interface.md
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-04-22 10:34:16 -07:00
Alex Stokes
99b2cc2f3e
Clarify usage of field in data
2021-04-22 10:34:16 -07:00
Alex Stokes
f992a9ae65
Remove duplicate validation
2021-04-22 10:34:16 -07:00
Alex Stokes
360a1dd598
Respect subcommittees in gossip validations for Altair
2021-04-22 10:34:15 -07:00
Diederik Loerakker
9d0bfec2d6
Merge pull request #2345 from ralexstokes/use-markdown-parser-for-literate-pyspec
...
Use markdown parser for literate pyspec
2021-04-22 18:05:06 +02:00
Alex Stokes
a9e3ecabbd
demo spec comment feature
2021-04-21 18:49:51 -07:00
Alex Stokes
b870f92801
Update validator.md
2021-04-21 17:08:38 -07:00
Hsiao-Wei Wang
93f6a541ad
PR feedback from @djrtwo
2021-04-21 16:42:54 +08:00
Hsiao-Wei Wang
2063c96c80
Merge branch 'dev' into prepare_state
2021-04-21 16:34:29 +08:00
Hsiao-Wei Wang
66e1a2858f
Use `ALTAIR_FORK_EPOCH` instead of `ALTAIR_FORK_SLOT`
2021-04-21 00:24:44 +08:00
Hsiao-Wei Wang
baf4b73c18
Fix ToC
2021-04-20 23:38:48 +08:00
Hsiao-Wei Wang
666f847354
Update specs and test format note.
2021-04-20 23:37:53 +08:00
Hsiao-Wei Wang
57ac8c3f28
Fix doc
2021-04-16 11:34:50 +08:00
Hsiao-Wei Wang
b65566f184
Fix ToC
2021-04-15 15:41:12 +08:00
Hsiao-Wei Wang
8708ec4bb0
Update doc
2021-04-12 22:02:04 +08:00
Hsiao-Wei Wang
a8160f1634
Try to initialize state with pure Altair spec in tests
2021-04-10 00:53:37 +08:00
Adrian Sutton
08f9f81c1f
Update note about changes to slash_validator.
2021-04-07 11:44:24 +10:00
Danny Ryan
05581e759c
Merge pull request #2309 from terencechain/fix-spelling
...
Fix spelling
2021-04-05 18:48:40 -06: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
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
Alex Stokes
9aaf548c37
Fix language with sync committee selection proofs
2021-04-02 18:37:30 -07: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
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
Meredith Baxter
4b81cc21f4
Update altair/fork.md
2021-03-29 15:15:53 -04: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
Ben Edgington
64fc912ce7
Make if condition more precise
2021-03-27 16:13:46 +00: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
terence tsao
d0b1ac1934
Update beacon-chain.md
2021-03-22 16:28:45 -07:00
Danny Ryan
d49cddc1d8
Merge pull request #2255 from ralexstokes/update-subcommittee-name
...
Use different name for constant for sync committee aggregates
2021-03-22 11:34:32 -06:00
Danny Ryan
bb85ef5a57
pr cleanup
2021-03-22 10:53:26 -06:00
protolambda
493dd17cc4
reduce justification and finalization Altair diff
2021-03-21 04:22:45 +01:00
Hsiao-Wei Wang
2ce389216d
Executable Altair validator guide
2021-03-19 23:38:59 +08:00
Alex Stokes
484fae3c2b
update constant name
2021-03-19 07:59:49 -06:00
Justin
053661ad20
Update beacon-chain.md
2021-03-19 10:04:46 +00:00
Alex Stokes
208a658305
Use different name for constant for sync committee aggregates
2021-03-18 15:53:57 -06:00
Danny Ryan
e2c9a15aaf
Merge pull request #2246 from ethereum/sync_rewards
...
refactor sync committee rewards
2021-03-16 20:27:04 -06:00
protolambda
0fe5e1ef6e
update of req-resp, v2 sync methods, gossip topics
2021-03-17 00:54:29 +01:00
Alex Stokes
893134d2ab
Add validator guide and initial P2P spec for Altair
2021-03-16 17:37:42 -06:00
Justin Drake
27e88a2484
(WIP) refactor sync committee rewards
2021-03-16 15:30:25 +00:00
Danny Ryan
85d323c227
Merge pull request #2242 from ethereum/sync_aggregate
...
Define SyncAggregate to bundle sync committee bits and signature
2021-03-15 15:48:20 -06:00
protolambda
1eaa3c1742
Define SyncAggregate to bundle sync committee bits and signature, update tests to better isolate the state-change, introduce helper function for future tests, and update test doc
2021-03-15 21:55:36 +01:00
Danny Ryan
4afb6533a2
suffix ALTAIR on update constants
2021-03-15 11:46:53 -06:00
Hsiao-Wei Wang
8fdc0338ac
Merge pull request #2240 from ethereum/altair-genesis-tests
...
Enable Altair genesis tests + rename `SpecLightclient` -> `SpecAltair` + disable too slow test
2021-03-16 01:19:14 +08:00
Hsiao-Wei Wang
40fa73a311
Fork to Altair
2021-03-16 00:05:13 +08:00
Justin
b4c1520bc2
Minor formatting fix
2021-03-15 15:02:57 +00:00
Danny Ryan
b8bf7f0f80
Merge pull request #2236 from ethereum/justin_altair_cleanups
...
Altair cosmetic cleanups plus a couple substantive changes
2021-03-15 08:57:35 -06:00
Danny Ryan
2a0e0eb119
fix typo
2021-03-15 08:42:50 -06:00
Danny Ryan
178a994804
Apply suggestions from code review
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-03-15 07:33:14 -06:00
Justin Drake
e7ebd08d69
Altair cosmetic cleanups plus a couple substantive changes
2021-03-15 11:08:41 +00:00
protolambda
c979e69003
Altair in description and titles
2021-03-14 22:54:30 +01:00
Danny Ryan
65dcf897c2
Merge pull request #2147 from ethereum/lightclient-sync-exe
...
Make `sync-protocol.md` pass the linter and add basic tests
2021-03-12 07:52:45 -07:00
Hsiao-Wei Wang
c34eae33d0
Merge branch 'dev' into lightclient-sync-exe
2021-03-12 00:49:29 +08:00
Danny Ryan
79f351cfca
Merge branch 'dev' into leak-scores
2021-03-11 09:28:58 -07:00
Danny Ryan
b9c95b722d
one more hf-1 to Altair conversion
2021-03-11 08:55:55 -07:00
Hsiao-Wei Wang
b44e576e95
LIGHTCLIENT_PATCH/HF1 -> ALTAIR
2021-03-11 21:32:00 +08:00
Hsiao-Wei Wang
69489d1541
Rename folders and file names to `altair`
2021-03-11 21:12:46 +08:00