Hsiao-Wei Wang
109250b963
Replace `hash_tree_root(x)` with `hash(ssz_serialize(x))`
2022-08-22 16:00:40 +08:00
Hsiao-Wei Wang
d133dae471
Fix codespell errors ( #2975 )
2022-08-18 22:08:44 +08:00
terencechain
cc9a5fe61e
EIP4844: fix format
2022-08-17 06:48:05 -07:00
Danny Ryan
5d0f4af063
Merge mainnet ttd and bellatrix values ( #2969 )
...
* merge mainnet ttd and bellatrix values
* Update configs/minimal.yaml
Co-authored-by: Paul Harris <paul.harris@consensys.net>
Co-authored-by: Paul Harris <paul.harris@consensys.net>
2022-08-15 08:00:14 -06:00
Danny Ryan
18dc61f4c5
Merge pull request #2961 from ethereum/execution_payload_tests
...
more execution payload tests and cleanup old ones
2022-08-04 07:44:53 -06:00
Danny Ryan
7e360240f9
more execution payload tests and cleanup old ones
2022-08-01 11:42:38 -06:00
Danny Ryan
fb71509052
Merge pull request #2953 from potuz/overloaded-index
...
Do not overload index with WithdrawalIndex and ValidatorIndex
2022-08-01 11:15:37 -04:00
David Theodore
c51e67a059
fixed typo in on_block() definition
2022-07-29 00:13:32 -07:00
Potuz
2c32fa6473
Do not overload index with WithdrawalIndex and ValidatorIndex
2022-07-26 17:34:02 -03:00
Etan Kissling
52a741f7c6
Improve grammar
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-25 15:46:29 +02:00
Etan Kissling
56363cd94a
Define libp2p protocol for light client sync
...
While the current Altair specs define structures to aid light client
development, one missing key aspect is the network protocol definition.
Certain implementations have started defining their own REST based APIs,
e.g., Lodestar at https://github.com/ChainSafe/lodestar/blob/master/packages/api/src/routes/lightclient.ts
While such APIs are useful, REST does not seem to be the ideomatic
choice as the sole API available at such a low level for Ethereum.
This patch introduces a libp2p based protocol to allow light clients to
sync to the latest `BeaconBlockHeader` in a trustless and decentralized
manner, building on top of prior work from:
- @hwwhww at https://github.com/ethereum/consensus-specs/pull/2267
- @jinfwhuang at https://github.com/ethereum/consensus-specs/pull/2786
- Lodestar's REST API (also has an endpoint to fetch merkle proofs!)
2022-07-22 17:56:41 +02:00
Etan Kissling
8ced2c3ae1
Remove newlines between items for visual consistency
2022-07-22 17:46:07 +02:00
Etan Kissling
78d336e28d
Describe light client sync process
...
Provides documentation about the process that a light client may use to
sync a local `LightClientStore`.
2022-07-22 17:12:57 +02:00
Hsiao-Wei Wang
0e82acfd61
Merge pull request #2945 from Inphi/eip4844-nit
...
Fix Polynomial container size
2022-07-22 19:48:02 +08:00
Hsiao-Wei Wang
d717f7e4d1
Merge pull request #2947 from etan-status/lc-forceupdate
...
Manually trigger `LightClientStore` force updates
2022-07-22 19:42:55 +08:00
Etan Kissling
8643e28f12
`try_...` --> `process_...`
2022-07-22 11:49:07 +02:00
Michael de Hoog
b2c647f2b2
Remove triple m
2022-07-21 11:11:30 -05:00
Etan Kissling
f9d866eb28
Manually trigger `LightClientStore` force updates
...
Replaces `process_slot_for_light_client_store` which force updates the
`LightClientStore` automatically based on `finalized_header` age with
`try_light_client_store_force_update` which may be manually called based
on use case dependent heuristics if light client sync appears stuck.
Not all use cases share the same risk profile.
2022-07-21 16:06:46 +02:00
inphi
9016b92691
Fix Polynomial container size
2022-07-21 01:58:22 -04:00
Etan Kissling
95019bb9a9
Improve readability of intro text
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-20 17:50:18 +02:00
Etan Kissling
06d9fd8cd3
Add `LightClient(Finality|Optimistic)Update`
...
Introduces reduced `LightClientUpdate` structures to allow keeping track
of the latest `finalized_header` and `optimistic_header`. This may also
help in scheduling the next query for a full `LightClientUpdate` once
sync committee finality has been reached.
2022-07-20 13:14:58 +02:00
Hsiao-Wei Wang
1d2ef9f8cb
Merge pull request #2938 from etan-status/lc-testsuite
...
Add functions for deriving light client data
2022-07-20 14:47:05 +08:00
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
Etan Kissling
0941114acf
Merge branch 'dev' into lc-testsuite
2022-07-18 18:19:07 +02:00
Hsiao-Wei Wang
a1546fdf4f
Merge branch 'dev' into fix-capella-genesis
2022-07-18 14:48:02 +08:00
Hsiao-Wei Wang
647e9d0ec0
PR feedback from @ralexstokes
2022-07-18 14:45:00 +08:00
Etan Kissling
c9f0927d8b
Merge branch 'dev' into lc-testsuite
2022-07-17 06:34:52 +02:00
Etan Kissling
63816debcc
Merge commit '9c798806355f67a32704a8cd5a98d90deccb8f69' into lc-testsuite
2022-07-15 21:38:18 +02:00
Hsiao-Wei Wang
185f51ec0e
Merge branch 'dev' into pr2937
2022-07-16 01:40:39 +08:00
Hsiao-Wei Wang
ec980dae4c
Rework `blobs_sidecar` propagation guide
2022-07-16 01:13:31 +08:00
Hsiao-Wei Wang
400e1e54c1
Fix EIP4844 `create_genesis_state`, `EIP4844_FORK_VERSION`, and `config_fork_epoch_overrides`
...
`config_fork_epoch_overrides`: since Capella and EIP4844 are in parallel, need to check if the field exists
Update `compute_fork_version`
2022-07-16 01:13:25 +08:00
Hsiao-Wei Wang
808f9c7f7f
Use `validate_*` for the valdiation functions that return `None`
2022-07-16 00:54:01 +08:00
Hsiao-Wei Wang
4176781123
PR feedback from @djrtwo
2022-07-15 23:37:32 +08:00
Hsiao-Wei Wang
a205e9314d
Make block proposal direction more clear
2022-07-15 23:33:31 +08:00
Hsiao-Wei Wang
9c79880635
Fix genesis testing tool and add Capella version `initialize_beacon_state_from_eth1` helper
2022-07-15 22:22:19 +08:00
Etan Kissling
a126f22cd9
Sync tocs
2022-07-15 13:49:19 +02:00
Etan Kissling
de15971ae8
Cleanups
2022-07-15 13:45:34 +02:00
Etan Kissling
88206117c6
Extract full node specifics to separate doc
2022-07-15 13:37:27 +02:00
Etan Kissling
d06f44ef55
Move `sync-protocol.md` into `light-client` subdir
2022-07-15 13:22:14 +02:00
Etan Kissling
6146f01400
Flip order of `assert` and assignment
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-15 12:03:44 +02:00
Etan Kissling
dbefbcf326
Explicitly mention optional `finalized_block`
2022-07-15 12:01:49 +02:00
Etan Kissling
95c07575b1
Hide `build_proof` and `get_backing` from spec
2022-07-15 11:54:47 +02:00
Etan Kissling
86fe93ca96
Add functions for deriving light client data
...
Adds `create_light_client_bootstrap` and `create_light_client_update`
functions as a reference implementation for serving light client data.
This also enables a new test harness to verify that light client data
gets applied to a `LightClientStore` as expected.
2022-07-14 09:36:09 +02:00
Etan Kissling
66325d0e9b
Use helper variables to make ifs more readable
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 14:08:51 +02:00
George Kadianakis
5b9bf41de6
EIP-4844: Further improvements on the spec
...
- Move constants around
- Implement missing functions to make the spec executable
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:13:30 +03:00
George Kadianakis
221f3687bd
EIP-4844: Improve the cryptographic parts of the spec
...
- Move more code into polynomial-commitments.md
- Implement aggregated sidecar verification logic from PR #2915
- Rename `kzgs` to `kzg_commitments`
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:12:31 +03:00
Etan Kissling
6048f1abf6
More concise finality ranking
2022-07-12 07:37:12 +02:00
Etan Kissling
654970c605
Add `LightClientBootstrap`
...
Introduces a new `LightClientBootstrap` structure to allow setting up a
`LightClientStore` with the initial sync committee and block header from
a user-configured trusted block root.
This leads to new cases where the `LightClientStore` is only aware of
the current but not the next sync committee. As a side effect of these
new cases, the store's `finalized_header` may now advance into the next
sync committee period before a corresponding `LightClientUpdate` with
the new sync committee is obtained, improving responsiveness.
Note that so far, `LightClientUpdate.attested_header.slot` needed to be
newer than `LightClientStore.finalized_header.slot`. However, it is now
necessary to also consider certain older updates to try and backfill the
`next_sync_committee`. The `is_better_update` helper is also updated to
improve `best_valid_update` tracking.
2022-07-12 07:27:00 +02:00
Etan Kissling
b7a0e532e4
Prefix update `period` variables
2022-07-10 22:05:18 -07:00
Etan Kissling
2ddb3833ff
Extend documentation for forced updates
2022-07-08 22:25:33 -07:00