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
Mikhail Kalinin
6604830729
Apply suggestions after the review
2021-06-02 15:00:01 +06:00
protolambda
417dda8326
fix committee index assertion
2021-06-01 22:38:36 +02: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
Mikhail Kalinin
db32c8b013
Fix linter errors
2021-06-01 17:44:58 +06:00
Mikhail Kalinin
6226be9e1e
Implement TransitionStore and transition total difficulty computation
2021-06-01 16:28:30 +06:00
protolambda
2545c3e2d0
update pending header weights after epoch transition, fix committee index loop, fix header processing status assert, add todos for Altair-like shard attestation rewards
2021-05-31 18:55:08 +02:00
Diederik Loerakker
5a235d0251
Review suggestions
...
Co-authored-by: Anton Nashatyrev <Nashatyrev@users.noreply.github.com>
2021-05-31 17:03:06 +02:00
Mikhail Kalinin
fd4369dc7c
Add merge/fork.md with upgrade_to_merge definition
2021-05-31 19:30:54 +06:00
protolambda
bb3d581b13
update shard processing naming and doc structure
2021-05-29 23:55:16 +02:00
protolambda
31f48b7b3b
update sharding presets
2021-05-29 22:39:25 +02:00
protolambda
3665dbea8b
name (slot, shard) union wrapper ShardWork
2021-05-29 21:28:00 +02:00
Diederik Loerakker
482b028b88
Merge pull request #2436 from terencechain/patch-122
...
Sharding p2p: minor fixes
2021-05-28 22:09:58 +02:00
protolambda
72215412fa
For slow shard confirmation, assuming it is available via DAS, we could confirm the best pending header
2021-05-28 21:56:13 +02:00
protolambda
38a0f4f211
update to wrap the union, clean up initialization and typing
2021-05-28 21:27:05 +02:00
protolambda
e5521af1f8
new union-based shard headers/commitments representation
2021-05-28 20:18:29 +02: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
Danny Ryan
d50a12cb18
Merge pull request #2449 from ethereum/fix-sharding-comments
...
add/update comments on shard blob/header/reference body field
2021-05-27 08:06:32 -06:00
Anton Nashatyrev
414ef614cb
Handle the case when a shard may not have a committee at slot.
...
Block is invalid if contains ShardBlobHeader lacking committee
Reject Gossip ShardBlobHeader and ShardBlob messages which lacks committee
2021-05-27 15:13:13 +03: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
protolambda
1360860d1e
add/update comments on shard blob/header/reference body field
2021-05-27 03:57:59 +02: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
terence tsao
71d0d45343
Align table
2021-05-24 06:57:09 -07:00
terence tsao
814c7696d9
shard_blob_header -> shard_header
2021-05-24 06:55:17 -07:00
terence tsao
4a5947d49e
Proto's suggestion
2021-05-24 06:54:38 -07:00
terence tsao
96352726bb
Sharding p2p: minor typo fixes
2021-05-22 10:31:10 -07:00
Danny Ryan
bca467c926
fmt
2021-05-21 14:36:43 -06:00
Danny Ryan
5bf01c4298
add resourceunavailable error code with more guidance
2021-05-21 14:24:58 -06:00
protolambda
e50d8d4391
Merge branch 'dev' into config-rework
2021-05-20 23:31:49 +02:00
protolambda
ff021da551
change line formatting, new refence as config var implicitly takes more space
2021-05-19 17:21:30 +02:00
protolambda
291168e1e3
clarify config/preset separation, address review comments by @djrtwo
2021-05-19 17:15:34 +02:00
terence tsao
c03c72a543
Altair fork: add a link
2021-05-18 13:50:46 -07:00
Danny Ryan
248363ce21
Merge pull request #2419 from terencechain/patch-120
...
Fix `PARTICIPATION_FLAG_WEIGHTS` to use correct head weight
2021-05-18 11:27:36 -06:00
ericsson
441992c779
Fix typing problem in `sharding.process_block`
2021-05-18 14:14:43 +03:00
protolambda
ef8d6003d3
fix inactivity penalties markdown table
2021-05-18 10:07:35 +02:00
protolambda
2c7a68406f
update config section markdown table header
2021-05-18 09:55:25 +02:00
protolambda
e4593d2d0c
update with configs<>presets separation
2021-05-18 09:55:20 +02:00
protolambda
c1f1adb4d1
Custody Game constant/preset/config separation
2021-05-18 09:33:07 +02:00
protolambda
4941a97829
Sharding constant/preset/config separation
2021-05-18 09:33:05 +02:00
protolambda
7d59016bb8
Merge constant/preset/config separation
2021-05-18 09:31:07 +02:00
protolambda
7689ebb2bd
Altair constant/preset/config separation
2021-05-18 09:28:09 +02:00
protolambda
b9ffd8f640
Phase0 constant/config/preset separation
2021-05-18 09:20:41 +02:00
terence tsao
a7344b3ee1
Fix `PARTICIPATION_FLAG_WEIGHTS` to use correct head weight
2021-05-17 21:35:43 -07:00
protolambda
fcf37895ba
remove duplicate sharding config var, fix minimal-sharding-config fork epoch name
2021-05-18 00:48:59 +02:00
terence tsao
abda2dd5fa
Sharding: move `get_committee_count_per_slot` to the outside
2021-05-14 12:02:46 -07:00
Danny Ryan
c87333face
minor review from dankrad on release pr
2021-05-14 10:05:54 -06:00
Danny Ryan
110e6b38ee
remove resourceunavailable for more discussion
2021-05-14 08:07:08 -06:00
Diederik Loerakker
5984fd74b3
Merge pull request #2393 from Nashatyrev/cosmetics/blob-subnet-name
...
[Sharding] Network: Calculate {subnet_id} for shard_blob_ subnets
2021-05-14 14:49:09 +02:00
Diederik Loerakker
a1e64c1ceb
Merge pull request #2368 from Nashatyrev/fix/root-for-empty-shard-header
...
[Sharding] Calc the right root with respect to (slot, shard) for an empty PendingShardHeader
2021-05-14 14:44:56 +02:00
Danny Ryan
4cd9a6c710
Merge pull request #2385 from ethereum/execution-payload-testing
...
Execution payload tests
2021-05-14 06:40:40 -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
protolambda
d3160ba23a
update ExecutionEngine protocol arg references
2021-05-14 01:07:22 +02: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
Danny Ryan
9a0be85b1e
Merge pull request #2406 from ethereum/sync-seed
...
remove sync committee seed and restrict period calculation boundaries
2021-05-12 12:17:42 -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
84830e8f26
Merge pull request #2131 from ethereum/bbr-ws
...
BlocksByRange under WS
2021-05-12 08:51:16 -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
Danny Ryan
f52f067b8e
add resourceunavailable error code
2021-05-12 08:36:27 -06:00
Danny Ryan
82b7a7be3b
Apply suggestions from code review
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Jacek Sieka <jacek@status.im>
2021-05-12 08:29:42 -06:00
Hsiao-Wei Wang
8e07ece492
Minor rephrase
2021-05-12 14:11:33 +08:00
protolambda
0390ab819a
Protocols pyspec support + execution payload tests cleanup
2021-05-12 02:40:23 +02: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
Danny Ryan
43ba615b75
Apply suggestions from code review
2021-05-11 14:13:22 -06:00
Alex Stokes
859a7d743e
Only allow sync committee period calculation at period boundaries
2021-05-11 12:42:21 -07:00
Alex Stokes
f328f77e65
clarify fork upgrade conditions
2021-05-11 10:58:45 -07:00
Danny Ryan
a9cc036184
remove timely_head penalty
2021-05-11 11:48:26 -06:00
Danny Ryan
488ceed4f9
add notes about repeatedly failing tos erve blocks as being disconncetable
2021-05-11 11:29:37 -06:00
Anton Nashatyrev
554f5141d3
Replace the {shard}_{slot} with {subnet_id}. Add {subnet_id} calculation function
2021-05-11 20:16:58 +03:00
Danny Ryan
5792afca46
Merge branch 'dev' into bbr-ws
2021-05-11 09:51:57 -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