Etan Kissling
79c456b9f4
Fix light client docs to match function signature
...
In the light client docs a mentioning of a function trigger is lacking
the `genesis_validators_root` argument. This patch adds that argument
to the documentation to match the real function signature. It also
slightly improves the grammar.
2022-01-11 12:10:30 +01:00
Etan Kissling
212eb00fc1
Document light client constants
...
This adds documentation about the unit and actual value of light client
specific constants, consistently with the rest of the spec.
2022-01-11 12:10:09 +01:00
Etan Kissling
48e19b15ae
Rename `sync_committee_aggregate` > `sync_aggregate`
...
This renames the `sync_committee_aggregate` field of `LightClientUpdate`
to `sync_aggregate` for consistency with the terminology in the rest of
the spec.
2022-01-11 11:22:39 +01:00
Hsiao-Wei Wang
de892382db
Minor style fixes
2021-12-15 23:44:29 +08:00
Hsiao-Wei Wang
25d88fee24
Fix `process_light_client_update`
2021-12-14 22:05:09 +08:00
Hsiao-Wei Wang
2f618f7b48
Fix lint and presets
2021-12-14 21:38:58 +08:00
vbuterin
916193bd69
Updates in response to comments
2021-12-10 07:48:14 -06:00
Hsiao-Wei Wang
402c663b51
Fix function name leftover
2021-11-30 21:57:43 +08:00
vbuterin
c30662b696
Consistently use sum instead of count(1)
2021-11-30 06:39:25 -06:00
Hsiao-Wei Wang
7de1495a42
Fix lint ( #2750 )
2021-11-30 06:38:42 -06:00
vbuterin
6fa19705fb
Clarified next sync committee comment
2021-11-29 07:05:01 -06:00
vbuterin
06af6296c5
Updated in response to comments
2021-11-29 07:04:05 -06:00
vbuterin
c4f70970c4
Update specs/altair/sync-protocol.md
...
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2021-11-28 08:31:48 -06:00
vbuterin
77188726de
Fixed ToC and get_active_header positioninf
2021-11-27 07:27:16 -06:00
vbuterin
e104164960
Rework data structures ( #2747 )
...
1. Replace `header` and `finality_header` with `attested_header` (always the header signed by the committee) and `finailzed_header` (always the header verified by the Merkle branch)
2. Remove `LightClientSnapshot`, fold its fields into `LightClientStore` for simplicity
2021-11-27 07:25:27 -06:00
vbuterin
013e814d2d
Update sync-protocol.md
2021-11-26 15:32:37 -06:00
vbuterin
25f2efab19
Simplify sync protocol and update to calculate optimistic heads
...
1. Simplify `valid_updates` to `best_valid_update` so the `LightClientStore` only needs to store O(1) data
2. Track an optimistic head, by looking for the highest-slot header which passes a safety threshold
2021-11-26 15:11:19 -06:00
Ben Edgington
44fec310b3
Eth1 block hashes have type Hash32 ( #2693 )
...
* Eth1 block hashes have type Hash32
* Modify other forks as well
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-11-23 08:20:26 -07:00
Hsiao-Wei Wang
1f7040b42b
Make previous_version=current_version
2021-09-30 16:41:05 +08:00
Danny Ryan
af5eef37b2
fix am/pm issue
2021-09-24 12:29:34 -06:00
Danny Ryan
9f037180ba
add ALTAIR_FORK_EPOCH for mainnet configuration
2021-09-24 12:14:39 -06:00
Danny Ryan
a3953a10fe
minor format
2021-08-19 10:11:02 -06:00
Hsiao-Wei Wang
59d8ee34f9
Update some "1.0" "2.0" wording
2021-08-19 23:24:04 +08:00
Danny Ryan
911a4169fe
spelling
...
Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2021-08-19 07:59:05 -06:00
Danny Ryan
4c1156d504
rename eth1 and eth2 throughout specs and readme where reasonable
2021-08-18 17:13:24 -06:00
Hsiao-Wei Wang
93af122b2d
PR feedback from @ralexstokes and add single pubkey aggregate tests
2021-08-05 12:09:30 +08:00
Hsiao-Wei Wang
56c92136f2
Merge branch 'dev' into altair-bls-tests
2021-08-05 11:18:41 +08:00
Hsiao-Wei Wang
43a1617ffa
Ensure that the given PKs are valid PKs + fix typos
2021-08-04 21:25:37 +08:00
Hsiao-Wei Wang
b262854bb1
Rename the `eth2_*` functions to `eth_`
2021-08-03 21:51:02 +08:00
Danny Ryan
f7a2a973ac
Update specs/altair/p2p-interface.md
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2021-07-21 15:51:59 -06:00
Danny Ryan
02a9fc460e
require aggregation bits to have at least one participant in sync contributions
2021-07-21 11:10:09 -06:00
Danny Ryan
6d0deddbe5
modify target sync committee aggregators to more sound 16
2021-07-12 09:03:43 -06:00
Danny Ryan
8140a789c4
Merge pull request #2509 from terencechain/patch-124
...
Rename a few instances of `signature` to `message`
2021-07-08 10:09:12 -06:00
Danny Ryan
88bb7562aa
Update specs/altair/beacon-chain.md
2021-07-07 16:11:58 -06:00
terence tsao
6f31077afa
Update `get_next_sync_committee` notes
2021-07-07 10:42:52 -07:00
terence tsao
3a59c1b789
Rename a few instances of signature to message
2021-07-07 10:04:26 -07:00
Danny Ryan
c61eeb8a27
optimize sync committee message gossip and caches
2021-06-22 12:31:02 -06:00
Danny Ryan
fc1012b632
typo
2021-06-21 12:49:41 -06:00
Danny Ryan
a61aa7968d
clean up
2021-06-21 12:48:44 -06:00
Nishant Das
67f1c2c2bd
Update validator.md
2021-06-17 23:05:23 +08:00
protolambda
5140b59c57
add missing parenthesis
2021-06-08 21:51:26 +02:00
Diederik Loerakker
8f8b5ab648
Merge pull request #2475 from ralexstokes/discriminate-sync-comm-msg
...
Add `message.topic` to gossipsub `message-id` in Altair
2021-06-08 21:47:06 +02:00
Alex Stokes
a343680fd4
Add implementation note on message id fn
2021-06-08 14:29:08 -05:00
Alex Stokes
f60f13964c
Harden topic serialization
2021-06-08 14:15:57 -05:00
Alex Stokes
25a2e3463e
Update specs/altair/p2p-interface.md
...
Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2021-06-08 12:06:02 -07:00
Alex Stokes
d64b4e7d24
Add `message.topic` to gossipsub `message-id` in Altair
2021-06-08 13:44:06 -05:00
Alex Stokes
c7980d3cd0
Clarify p2p validation conditions for Altair sync committees
2021-06-08 13:34:16 -05:00
protolambda
64f217d3e1
update sync aggregate processing reference in validator doc
2021-06-08 01:05:50 +02:00
Danny Ryan
cfc66a3794
patch tests
2021-06-07 16:36:18 -06:00
Danny Ryan
09b6fb0e64
ensure consistency about sync committees vs aggregates in naming throughout
2021-06-07 16:17:46 -06:00
Danny Ryan
30f2a07637
Merge pull request #2438 from ralexstokes/add-aggregate-pks-fn
...
Move BLS extensions to new file in Altair
2021-06-07 07:18:31 -06:00
Danny Ryan
335d7ce1dc
Merge pull request #2446 from ethereum/SyncCommitteeSignature-to-SyncCommitteeMessage
...
Rename `SyncCommitteeSignature` to `SyncCommitteeMessage` to avoid name conflicts
2021-06-07 07:06:14 -06:00
Danny Ryan
1d5c4ecffb
Merge pull request #2453 from ethereum/vbuterin-patch-11
...
Modify sync committee logic and parameters to reduce variance
2021-06-04 12:23:16 -06:00
Hsiao-Wei Wang
45d554aee8
Merge branch 'dev' into SyncCommitteeSignature-to-SyncCommitteeMessage
2021-06-03 22:13:53 +08:00
Danny Ryan
b3f2635ce7
Merge pull request #2466 from terencechain/patch-123
...
Altair: missing `block_root` in `SyncCommitteeSignature`
2021-06-02 16:09:13 -06:00
Danny Ryan
45a71eb267
line length lint
2021-06-02 15:58:51 -06:00
terence tsao
65f48178b7
Include block_root in SyncCommitteeSignature
2021-06-02 14:41:24 -07:00
Justin
d87e076ce3
Minor Altair cosmetic polishing
2021-06-01 17:05:12 +01:00
Hsiao-Wei Wang
65f8d3d296
Merge branch 'dev' into SyncCommitteeSignature-to-SyncCommitteeMessage
2021-06-01 22:05:10 +08:00
Alex Stokes
b0500c3de1
Update specs/altair/beacon-chain.md
2021-05-27 12:06:01 -07:00
Alex Stokes
4d5bc83af4
Re-org files
2021-05-27 11:59:15 -07:00
Alex Stokes
3cd842a94d
Update specs/altair/beacon-chain.md
2021-05-27 11:39:29 -07:00
vbuterin
a89ecced1c
Modify sync committee logic and parameters to reduce variance
...
Sync committee rewards as currently implemented significantly increase variance in proposer rewards: https://github.com/ethereum/eth2.0-specs/issues/2448
For example, if there are 200000 validators (6.4m ETH staked), then during each 1/4-eek (~54 hour) period there is a chance of 512/200000 that a validator will get accepted into the sync committee, so on average that will happen once every 200000/512 * 1/4 = 97.6 eeks, or close to two years. The payout of this "lottery" is 1/8 of that, or ~12.2 eeks (a bit less than four months) of revenue. This is much more severe than block proposing (a chance of 1/200000 per slot, or a lottery worth ~0.38 eeks of revenue once every ~3.05 eeks).
This PR makes three changes to cut make the sync committee lottery less drastic and bring variance closer in line with what is available from block proposing:
* Reduce the `SYNC_REWARD_WEIGHT` from 8 to 2
* Add a penalty for not participating in the sync committee, so that despite the first change the total net reward for participating vs not participating is only cut down by 2x
* Reduce the sync committee period from 1/4 eek to 1/8 eek (~27 hours)
With these three factors combined, the lottery reduces to ~1.5 eeks of revenue, on average occurring every ~48 eeks. Validators who are maximally unlucky (ie. never become part of a sync committee) only lose ~3.12% of their rewards instead of ~12.5%.
The compromises that this approach makes are:
* In the extreme case where >50% of proposers are operating efficiently, being in a sync committee becomes a net burden. However, this should be extremely rare, and in such cases validators would likely be suffering inactivity leak penalties anyway.
* Incentive to participate in a sync committee decreased by 2x (but this is IMO an improvement; sync committees are _not_ as important as proposals and deserve to have lower rewards)
* Minimum data syncing needed to maintain a light client increases by 2x (from 24 kB per 54 hours to 24 kB per 27 hours). A burden for on-chain light clients, but still insignificant for others.
2021-05-27 09:02:51 -06:00
Paul Hauner
48f989070d
Remove naughty space
2021-05-27 15:30:44 +10:00
Paul Hauner
103d029a1a
Add clock disparity tolerance for sync subnets
2021-05-27 15:28:51 +10:00
Alex Stokes
a08d23189e
Update specs/altair/validator.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-05-26 15:51:22 -07:00
Hsiao-Wei Wang
a25bc832b9
Update section headers
2021-05-26 03:01:38 +08:00
Hsiao-Wei Wang
0142978b60
Rename `SyncCommitteeSignature` to `SyncCommitteeMessage`
2021-05-26 02:36:54 +08:00
Alex Stokes
41ca149429
Explicitly define `bls.AggregatePKs`
2021-05-24 11:56:10 -07:00
protolambda
e50d8d4391
Merge branch 'dev' into config-rework
2021-05-20 23:31:49 +02:00
terence tsao
c03c72a543
Altair fork: add a link
2021-05-18 13:50:46 -07:00
protolambda
ef8d6003d3
fix inactivity penalties markdown table
2021-05-18 10:07:35 +02:00
protolambda
e4593d2d0c
update with configs<>presets separation
2021-05-18 09:55:20 +02:00
protolambda
7689ebb2bd
Altair constant/preset/config separation
2021-05-18 09:28:09 +02:00
terence tsao
a7344b3ee1
Fix `PARTICIPATION_FLAG_WEIGHTS` to use correct head weight
2021-05-17 21:35:43 -07:00
Danny Ryan
c87333face
minor review from dankrad on release pr
2021-05-14 10:05:54 -06:00
Diederik Loerakker
86792b9232
Merge pull request #2411 from ethereum/order-indices
...
ensure indices are ordered [source, target, head] everywhere
2021-05-14 14:38:26 +02:00
Danny Ryan
160b704f4a
ensure indices are ordered source, target, head everywhere
2021-05-14 06:19:29 -06:00
Danny Ryan
5dd29b6659
fix tests and minor copy edit
2021-05-14 06:15:48 -06:00
terence tsao
1310105174
Return non-duplicated sync committee subnets
2021-05-13 16:22:28 -07:00
Danny Ryan
d38af7a158
Merge branch 'dev' into vbuterin-patch-11
2021-05-13 13:39:05 -06:00
Danny Ryan
699a3f837e
pr feedback
2021-05-13 13:38:43 -06:00
Danny Ryan
a52565aa81
add random altair fork tests for better translation coverage + pr review
2021-05-13 13:21:43 -06:00
Danny Ryan
a2c8e0e6c6
Merge branch 'dev' into translate-participation-test
2021-05-13 06:33:06 -06:00
Danny Ryan
4a91c93962
add epoch processing tests for inactivity udpates
2021-05-12 15:06:32 -06:00
Danny Ryan
24f6e1e99f
Merge branch 'dev' into vbuterin-patch-11
2021-05-12 12:42:46 -06:00
Danny Ryan
a469b467ff
Merge branch 'dev' into keep-inactivity-function
2021-05-12 12:27:15 -06:00
Danny Ryan
5188671816
Update specs/altair/beacon-chain.md
...
Co-authored-by: dankrad <dankrad@ethereum.org>
2021-05-12 12:18:35 -06:00
Danny Ryan
a0f86d19d3
Merge pull request #2407 from ethereum/ralexstokes-patch-1
...
Update validator guide with restricted sync committee computation
2021-05-12 12:18:06 -06:00
Alex Stokes
4286f85a68
Update validator guide with restricted sync committee computation
2021-05-12 11:05:41 -07:00
Danny Ryan
a8791f04c7
'get_sync_committee -> get_next_sync_committee
2021-05-12 09:44:13 -06:00
Danny Ryan
1a7aa898ab
Merge branch 'dev' into sync-seed
2021-05-12 08:46:11 -06:00
Danny Ryan
dff12dd644
Merge pull request #2400 from ethereum/sync-committee-off-by-1
...
add logic for handling sync committee off by one issue
2021-05-12 08:45:05 -06:00
Danny Ryan
6371707779
Apply suggestions from code review
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-05-12 08:40:34 -06:00
Hsiao-Wei Wang
8e07ece492
Minor rephrase
2021-05-12 14:11:33 +08:00
Danny Ryan
8bb0531f58
only give counter-weight penalty if leak. TMP
2021-05-11 16:23:31 -06:00
Danny Ryan
09cefa03f3
remov sync signature todo
2021-05-11 16:07:24 -06:00
Danny Ryan
468f42c545
Merge branch 'simplify-sync-committee-calc' into sync-seed
2021-05-11 16:03:19 -06:00
Danny Ryan
200c049778
fix seed calc issue
2021-05-11 15:55:33 -06:00
Danny Ryan
2747882776
use current_Epoch seed when calculating next_sync_committee
2021-05-11 15:18:18 -06:00