Commit Graph

112 Commits

Author SHA1 Message Date
dankrad 02a2b71d64
WIP implementation of Danksharding (#2792)
* Rough structure

* Most of the KZG checks in

* Fixes suggested by Vitalik

* Add low degree check for commitments

* Remove -1 check from degree proof (not needed)

* Require block builders to be validators to simplify things

* remove verify_intermediate_block_bid_commitment

* Rename back to process_block

* Degree check formula corrections

* Updated TOC, bid processing corrections

* Link to latest sharding doc

* Add shard samples + P2P

* Add validator guide for attestations and reconstruction

* Update specs/sharding/beacon-chain.md

Co-authored-by: terence tsao <terence@prysmaticlabs.com>

* Update specs/sharding/beacon-chain.md

Co-authored-by: vbuterin <v@buterin.com>

* Update specs/sharding/beacon-chain.md

Co-authored-by: vbuterin <v@buterin.com>

* Refactor polynomial operations into separate file

* Add missing polynomial functions

* Fix polynomial commitment file toc levels

* Refactor the payload to make better use of unions

* Add reverse bit order convention

* Correct inequality in verify_degree_proof

* Small fix

* Fix polynomial evaluation

* Update specs/sharding/beacon-chain.md

Co-authored-by: George Kadianakis <desnacked@riseup.net>

* MAX_BEACON_BLOCKS_BETWEEN_INTERMEDIATE_BLOCKS definition added

* Sample reconstruction estimate

* Update specs/sharding/beacon-chain.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Fix return value of roots_of_unity()

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/beacon-chain.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/beacon-chain.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/beacon-chain.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Intermediate block -> Builder block

* Some small omissions in intermediate -> builder

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: George Kadianakis <desnacked@riseup.net>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: George Kadianakis <desnacked@riseup.net>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>

* Z1 -> inf_G1

* Fix degree proof bound

* SignedShardSample -> ShardSample

* Typo

* Don't allow 0 for `next_power_of_two`

* Remove unused `ROOT_OF_UNITY` constant

* Throwaway variable name

* Fix function documentation of `bls_modular_inverse`

* Builder block bid increase by at least 1%, no RANDAO processing in builder blocks

* Fix tocs

* Fix tocs

* Fix typo

* Update specs/sharding/polynomial-commitments.md

Co-authored-by: George Kadianakis <desnacked@riseup.net>

Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: vbuterin <v@buterin.com>
Co-authored-by: George Kadianakis <desnacked@riseup.net>
2022-07-18 11:20:25 -06:00
Hsiao-Wei Wang 8facc0a095
Merge -> Bellatrix 2021-12-23 14:25:43 +08:00
dankrad ad588d79f6
Update beacon-chain.md
5 is not a primitive root of the BLS field, it needs to be 7
2021-11-30 22:52:16 +00:00
Anton Nashatyrev b292f0b7b3 Remove beacon_block_root field from ShardBlob 2021-09-21 18:04:39 +03:00
Mikhail Kalinin 6ba1f22404 Set ExecutionPayload.random to the previous randao_mix 2021-09-01 18:42:58 +06:00
ericsson 34d42b640d Fix typo in `get_start_shard` 2021-08-23 20:09:41 +03:00
ericsson 33552279bf Fix typos in `get_shard_proposer_index`: `beacon_state` vs `state` 2021-08-23 20:09:01 +03:00
ericsson 43a6beceb6 make doctoc happy 2021-08-23 14:46:06 +03:00
ericsson fe1b9961ff Fix typos in sharding.md 2021-08-23 14:21:38 +03:00
Danny Ryan 4c1156d504
rename eth1 and eth2 throughout specs and readme where reasonable 2021-08-18 17:13:24 -06:00
Anton Nashatyrev 68db644ae9
Rename DataCommitment.length field to samples_count and fix degree_proof validation 2021-08-11 15:11:37 +02:00
protolambda fc3e651817
samples -> samples_length 2021-08-04 23:25:25 +02:00
Diederik Loerakker 424f838747
Update specs/sharding/beacon-chain.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-08-04 12:44:42 +02:00
protolambda 322f072703
sharding: remove outdated comment, timely shard attesters are marked in attestation-processing, no need for epoch processing additions 2021-07-31 13:22:26 +02:00
protolambda 2d17c8c3c4
move back INITIAL_ACTIVE_SHARDS to preset, avoid changing mainnet config 2021-07-30 22:22:43 +02:00
protolambda add5810d71
remove unused pending attestation fields 2021-07-30 22:06:04 +02:00
protolambda ab78339350
fix variable name of summary field 2021-07-30 21:54:55 +02:00
protolambda 0daaafbc98
fix union value retrieval, thanks @terencechain 2021-07-28 22:00:23 +02:00
protolambda d47d2f92cc
shard fees: implement review suggestions from @nashatyrev 2021-07-27 14:48:21 +02:00
protolambda 756eb90bfe
consider per-slot sample target adjustment, to avoid racing and ordering problems 2021-07-26 16:27:19 +02:00
protolambda 1a966d1e37
work in progress new sharding fee mechanism 2021-07-26 15:26:55 +02:00
protolambda a7f58ef08a
fix comment + handle missing pending headers 2021-07-23 12:56:01 +02:00
protolambda f791fe7d1c
implement review suggestions
Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
2021-07-23 12:56:01 +02:00
protolambda b25afc88fd
update networking spec with aggregate proposer/builder types, update TOCs 2021-07-23 12:56:00 +02:00
protolambda 5034e2d7bc
update shard spec wording + fix shard slashings 2021-07-23 12:56:00 +02:00
protolambda 5726cb9374
aggregate builder and proposer for simplified typing and optimized verification 2021-07-23 12:56:00 +02:00
protolambda b3d5858cc9
update data fee payment, todo 2021-07-23 12:55:59 +02:00
protolambda 4b25239617
builders make blobs, proposers make blocks 2021-07-23 12:55:59 +02:00
protolambda bc936768c7
global selection of shard proposers 2021-07-23 12:55:55 +02:00
Anton Nashatyrev 06b8bb1a57
Simplify get_start_shard function 2021-07-23 12:45:03 +02:00
protolambda 17fad2dea2
rebase The Merge onto Altair base functionality 2021-07-22 16:36:41 +02:00
protolambda dadcb2a06a
Merge branch 'dev' into ericsson49/fix_reset_pending_shard_work 2021-06-17 18:54:29 +02:00
Diederik Loerakker c68ce56407
Merge pull request #2483 from ericsson49/ericsson49/fix_append_in_process_shard_header
Fix typing problem: append is invoked on a ShardWork instance
2021-06-17 18:50:40 +02:00
ericsson 22b2a73615 convert `int` to `CommitteeIndex` when passing to `get_beacon_committee` 2021-06-16 19:07:24 +03:00
ericsson 5b4f89875c use `List[PendingShardHeader,...]` instead of `MutableSequence`, since `remerkleable.List` does not implement the latter 2021-06-16 14:06:17 +03:00
ericsson d83ca352d5 Fix typing problem: `append` is invoked on a `ShardWork` instance 2021-06-16 13:33:56 +03:00
ericsson 27889860f0 fix typo: sometimes `change()` invoked on `ShardWork` itself, should be invoked on its `status` field 2021-06-16 12:03:20 +03:00
Diederik Loerakker f679a0a086
Merge pull request #2455 from ethereum/sharding-state
New union-based shard headers/commitments representation
2021-06-04 18:18:43 +02:00
protolambda 9050897cb2
fix committee work status and commitment references 2021-06-03 19:11:47 +02:00
Diederik Loerakker d4f6459108
Define missing header_root
Co-authored-by: Anton Nashatyrev <Nashatyrev@users.noreply.github.com>
2021-06-03 18:00:51 +02:00
protolambda c0af420130
shard work status enum, prefix instead of suffix + move full committee balance init line 2021-06-03 17:32:35 +02:00
protolambda 417dda8326
fix committee index assertion 2021-06-01 22:38:36 +02: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
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
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