Hsiao-Wei Wang
64f609af18
Add a test case from staking-deposit-cli
2023-01-13 23:39:03 +08:00
Hsiao-Wei Wang
427a6e809f
Merge pull request #3206 from ethereum/btec-fork-version
...
MUST use `GENESIS_FORK_VERSION` to sign `BLSToExecutionChange` message
2023-01-13 23:29:21 +08:00
Danny Ryan
3dd7e3583f
bump VERSION.txt to 1.3.0-rc.1
2023-01-13 08:24:43 -07:00
Hsiao-Wei Wang
e1df31818b
fix typo
2023-01-13 23:18:29 +08:00
djrtwo
d4eaf4bff4
add invalid test for BLSChange genesis_validators_root
2023-01-13 08:07:21 -07:00
Etan Kissling
b7205813fd
Update sync test documentation
2023-01-12 19:01:57 +01:00
Etan Kissling
82d6267951
Merge branch 'dev' into lc-eph
2023-01-12 18:44:54 +01:00
Hsiao-Wei Wang
2b2ffb5229
Merge pull request #3190 from etan-status/lc-headerwrapper
...
Add `LightClientHeader` wrapper
2023-01-13 00:40:44 +08:00
Hsiao-Wei Wang
730a7afe49
Always use `GENESIS_FORK_VERSION` to sign `BLSToExecutionChange` message
2023-01-12 23:28:41 +08:00
Hsiao-Wei Wang
a2099dabf7
Add `test_invalid_previous_fork_version`
2023-01-12 03:23:17 +08:00
Etan Kissling
a14edb1967
Merge branch 'dev' into lc-headerwrapper
2023-01-10 15:29:34 +01:00
Etan Kissling
53a95f0007
Merge branch 'dev' into lc-eph
2023-01-10 13:43:15 +01:00
Hsiao-Wei Wang
9c4500533f
Merge branch 'dev' into pr3121
2023-01-10 16:47:21 +08:00
Etan Kissling
79a717c8f6
Merge branch 'dev' into lc-headerwrapper
2023-01-06 19:45:18 +01:00
Hsiao-Wei Wang
8b14345143
Fix test file name
2023-01-07 01:49:23 +08:00
Danny Ryan
ed1c6be132
Merge pull request #3185 from ethereum/fc-is_data_available
...
Move `is_data_available` check to fork-choice `on_block`
2023-01-06 10:55:29 -05:00
Hsiao-Wei Wang
e154b3414c
Move `validate_blobs_sidecar` to fork-choice and add spec into execution spec scope
2023-01-06 23:19:44 +08:00
Danny Ryan
8255618206
bump VERSION.txt
...
to 1.3.0-rc.0
2023-01-06 08:16:14 -07:00
Danny Ryan
449db6d798
Merge pull request #3187 from ethereum/fix-from_syncing_to_invalid
...
Ensure that no duplidate block hashes in `sync/from_syncing_to_invalid` test case
2023-01-06 10:14:06 -05:00
Danny Ryan
75937e5b55
Merge pull request #3181 from terencechain/4844-enable-withdrawal
...
EIP4844: Enable withdrawal
2023-01-06 10:12:57 -05:00
Etan Kissling
375436094c
Merge branch 'dev' into lc-eph
2023-01-05 13:53:29 +01:00
Etan Kissling
5c64a2047a
Add `LightClientHeader` wrapper
...
In Altair, light client sync protocol exchanges `BeaconBlockHeader`
structures for tracking current progress. Wrapping `BeaconBlockHeader`
inside a `LightClientHeader` allows future extensions of this header,
e.g., to also track `ExecutionPayloadHeader`.
Note: This changes the JSON REST format by adding a `beacon` nesting.
For SSZ, the serialization format stays same (but overall root changes).
2023-01-05 13:36:04 +01:00
Hsiao-Wei Wang
0777a52f55
Merge pull request #3149 from etan-status/lc-toheader
...
Add `block_to_light_client_header` helper
2023-01-05 12:12:36 +08:00
Etan Kissling
ce7fd412cc
Add test for LC data spanning 3 forks
2023-01-04 19:44:10 +01:00
Etan Kissling
e5cda1745f
Run fork test for EIP4844
2023-01-04 19:15:34 +01:00
Hsiao-Wei Wang
9d402dd2d2
minor fix
2023-01-04 18:51:51 +08:00
protolambda
5998836449
tests/formats: update epoch and operations formats to reflect push-withdrawals ( #3184 )
...
* tests/formats: update epoch and operations formats to reflect push-withdrawals of PR 3068
* fix typo
* Update epoch processing readme
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-01-04 18:20:09 +08:00
Hsiao-Wei Wang
9d14dcd8b0
Ensure that no duplidate block hashes
2023-01-04 18:09:38 +08:00
Hsiao-Wei Wang
dba75eece9
Enable Capella feature in eip4844 fork
...
Fix lint
2023-01-04 01:40:46 +08:00
Etan Kissling
b0471511e5
Merge branch 'dev' into lc-eph
2023-01-03 15:36:37 +01:00
Hsiao-Wei Wang
dcacb7164f
Rename `block_batch_root` to `block_summary_root` and `state_batch_root` to `state_summary_root`
2023-01-03 21:50:06 +08:00
Hsiao-Wei Wang
1cfabcbe54
Rename `HistoricalBatchSummary` -> `HistoricalSummary` and `historical_batches` -> `historical_summaries`
2023-01-02 23:07:00 +08:00
Hsiao-Wei Wang
84592f101b
Add tests for `process_historical_batches_update`
2022-12-16 01:01:00 +08:00
Danny Ryan
302f54bfca
bump version.txt
2022-12-14 09:26:04 -07:00
Danny Ryan
f7187a6657
Merge pull request #3156 from ethereum/kzg-trusted-setup
...
Update G2 trusted setup length to 65
2022-12-14 08:15:53 -07:00
Danny Ryan
991f81770b
Merge pull request #3157 from ethereum/balance-op
...
Add tests to test sync aggregate's order of balance operation
2022-12-14 08:15:09 -07:00
Hsiao-Wei Wang
c7e102a5e5
PR feedback from @djrtwo and change the duplicate sync committee preconditions
2022-12-14 16:55:03 +08:00
Etan Kissling
02abdc311f
Merge branch 'dev' into lc-eph
2022-12-13 15:33:28 +01:00
Etan Kissling
74883fec7c
Merge branch 'dev' into ci-phasesconfig
2022-12-13 15:33:07 +01:00
Hsiao-Wei Wang
dc17b1e2b6
Merge pull request #3107 from etan-status/sf-epochoverrides
...
cleanup explicit fork enumerations in tests
2022-12-13 22:29:30 +08:00
Hsiao-Wei Wang
e9a7a6d40e
Merge pull request #3126 from etan-status/el-rlp
...
proper EL block hash implementation in tests
2022-12-13 22:28:53 +08:00
Etan Kissling
f24365fa36
Merge branch 'ci-phasesconfig' into lc-eph
2022-12-13 12:34:32 +01:00
Etan Kissling
c84862bfae
Avoid line continuation syntax
2022-12-13 12:34:14 +01:00
Etan Kissling
3bfac0e16e
Merge branch 'lc-toheader' into lc-eph
2022-12-13 12:31:12 +01:00
Etan Kissling
ef2a8b319d
Avoid line continuation syntax
2022-12-13 12:30:14 +01:00
Etan Kissling
af785068d8
Merge branch 'el-rlp' into lc-eph
2022-12-13 12:27:59 +01:00
Etan Kissling
666a90245e
Add EIP4844 support
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-12-13 11:54:44 +01:00
Hsiao-Wei Wang
2ac06c10d3
Update G2 trusted setup length to 65
2022-12-13 18:14:50 +08:00
Hsiao-Wei Wang
19c38dbac6
Add tests to test sync aggregate's order of operation
2022-12-13 17:35:34 +08:00
Hsiao-Wei Wang
c59b06cccd
Merge branch 'dev' into sf-epochoverrides
2022-12-13 16:13:21 +08:00
Hsiao-Wei Wang
da3f5af919
Test case naming clean up ( #3143 )
...
* Add @description decorator
* Unify test case naming style
* more clean ups
* Altair tests cleanup
* Clean up Altair and Bellatrix `process_deposit` tests
* Clean up Bellatrix tests
* Clean up Capella tests
* PR feedback from @ralexstokes
* Add comments on the deposit fork version tests
* Remove `test_incorrect_sig_other_version` since it is duplicate to `test_ineffective_deposit_with_bad_fork_version`
* Add `test_ineffective_deposit_with_current_fork_version`
2022-12-13 15:13:44 +08:00
Danny Ryan
06d6d3888f
Merge pull request #3095 from ralexstokes/bound-withdrawals-sweep
...
bound the maximum number of validators considered for withdrawals per sweep
2022-12-12 19:53:29 -07:00
Etan Kissling
a8dabc05a8
Add `test_eip4844_store_with_legacy_data` (fork test still nyi)
2022-12-12 19:08:45 +01:00
Danny Ryan
478b437b05
lint
2022-12-12 08:25:31 -07:00
Etan Kissling
dc05a3f19e
Rename test back
2022-12-12 13:13:25 +01:00
Etan Kissling
4df86632b6
Rename `legacy` --> `altair` in test name
2022-12-12 12:56:34 +01:00
Etan Kissling
7e6a990790
Merge branch 'ci-phasesconfig' into lc-eph
2022-12-12 12:15:44 +01:00
Etan Kissling
82ff974090
Emit config before calling test to ignore changes
2022-12-12 12:15:27 +01:00
Etan Kissling
2e97af2627
Add `ExecutionPayloadHeader` to LC data
...
While the light client sync protocol currently provides access to the
latest `BeaconBlockHeader`, obtaining the matching execution data needs
workarounds such as downloading the full block.
Having ready access to the EL state root simplifies use cases that need
a way to cross-check `eth_getProof` responses against LC data.
Access to `block_hash` unlocks scenarios where a CL light client drives
an EL without `engine_newPayload`. As of Altair, only the CL beacon
block root is available, but the EL block hash is needed for engine API.
Other fields in the `ExecutionPayloadHeader` such as `logs_bloom` may
allow light client applications to monitor blocks for local interest,
e.g. for transfers affecting a certain wallet. This enables to download
only the few relevant blocks instead of every single one.
A new `LightClientStore` is proposed into the Capella spec that may be
used to sync LC data that includes execution data. Existing pre-Capella
LC data will remain as is, but can be locally upgraded before feeding it
into the new `LightClientStore` so that light clients do not need to run
a potentially expensive fork transition at a specific time. This enables
the `LightClientStore` to be upgraded at a use case dependent timing at
any time before Capella hits. Smart contract and embedded deployments
benefit from reduced code size and do not need synchronization with the
beacon chain clock to perform the Capella fork.
2022-12-12 00:48:40 +01:00
Etan Kissling
9ab22b3ef3
Merge branch 'lc-accessors' into lc-eph
2022-12-12 00:41:31 +01:00
Etan Kissling
c1a6b127f1
Merge branch 'lc-toheader' into lc-eph
2022-12-12 00:38:34 +01:00
Etan Kissling
08a2080937
Merge branch 'ci-phasesconfig' into lc-eph
2022-12-12 00:36:13 +01:00
Etan Kissling
364d106ac3
Merge branch 'sf-epochoverrides' into lc-eph
2022-12-12 00:35:30 +01:00
Etan Kissling
0c3853e959
Avoid modifying caller `phases` (`kw` is shallow copy)
2022-12-11 23:41:08 +01:00
Alex Stokes
37e504e784
bound the maximum number of validators considered for withdrawals per sweep
2022-12-09 10:51:25 -07:00
Etan Kissling
0649e0662c
Allow selecting phase to emit, and fix combi with overrides
2022-12-07 22:37:40 +01:00
Etan Kissling
ae64c515f4
Merge branch 'dev' into ci-phasesconfig
2022-12-07 20:56:59 +01:00
Etan Kissling
0fb0b26742
Add accessors for LC header
...
Introduce `get_lc_beacon_slot` and `get_lc_beacon_root` accessors
similar to `get_current_slot(state)` to account for future extensions
to the light client header structure that may override how those fields
are accessed. Idea is to extend with execution accessors in the future.
2022-12-06 22:05:19 +01:00
Etan Kissling
8bf801ecc6
Add `block_to_light_client_header` helper
...
Introduce `block_to_light_client_header` helper function to enable
future forks to override it with additional info (e.g., execution),
without having to change the general light client logic.
Likewise, update existing light client data creation flow to use
`block_to_light_client_header` and default-initialize empty fields.
Furthermore, generalize `create_update` helper to streamline test code
using `block_to_light_client_header`.
Note: In Altair spec, LC header is the same as `BeaconBlockHeader`.
however; future forks will extend it with more information.
2022-12-06 17:44:41 +01:00
Danny Ryan
9839ed4934
Merge pull request #3145 from terencechain/update-max-blobs
...
EIP4844: Update `MAX_BLOBS_PER_BLOCK` to 4
2022-12-06 09:37:05 -07:00
Etan Kissling
f4dafcfebc
Merge branch 'dev' into lc-blockfuncs
2022-12-05 18:38:40 +01:00
Etan Kissling
79c2099c9c
Merge branch 'dev' into el-rlp
2022-12-05 17:47:20 +01:00
Etan Kissling
6cf8df086f
Merge branch 'dev' into ci-phasesconfig
2022-12-05 16:46:37 +01:00
Etan Kissling
8524f54433
Merge branch 'dev' into sf-epochoverrides
2022-12-05 16:22:31 +01:00
Hsiao-Wei Wang
0dda0b2633
Fix tests
2022-12-01 23:37:16 +08:00
Etan Kissling
f8041091e4
Convert to Wei before multiply
2022-11-24 15:16:59 +01:00
Etan Kissling
0bb3470352
Formatting
2022-11-24 15:11:25 +01:00
Etan Kissling
bfc634dc8c
Amount is Wei in EL world / Gwei in CL
2022-11-24 15:10:25 +01:00
Alex Stokes
30bc3909d8
Merge pull request #3127 from ethereum/fix-eip4844-previous-version
...
Fix EIP4844 `previous_version` field in tests
2022-11-23 10:16:43 -07:00
kevaundray
f0ff15c14d
EIP4844: Refactor Fiat-Shamir logic to handle empty sidecars ( #3093 )
...
Additionally, it makes the Fiat-Shamir hashing logic more robust by making the challenges independent of each other. It also makes it more efficient to implement by moving both challenge computations to a single function needing a single transcript hash.
Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Dankrad Feist <mail@dankradfeist.de>
2022-11-23 16:52:47 +02:00
Etan Kissling
e9111a5168
Cleanup unnecessary init
2022-11-23 12:34:02 +01:00
Hsiao-Wei Wang
d202f620de
Fix EIP4844 previous_version in tests
2022-11-23 05:10:46 +08:00
Etan Kissling
d51345c6b3
proper EL block hash implementation in tests
...
Replaces the "FAKE RLP HASH" in `ExecutionPayload.block_hash` of all
generated tests with the correct value.
2022-11-22 21:58:29 +01:00
Etan Kissling
db796f70ad
Add missing `.config`
2022-11-20 14:25:50 +01:00
Etan Kissling
f42da8d00b
Apply `with_config_overrides` to all phases
...
When defining a fork transition test, additional spec forks are made
available through `@with_phases(..., other_phases=...)`.
The `with_config_overrides` decorator only applies to the primary phase
so far, which can be unexpected. `with_config_overrides` is adjusted to
override config in subsequent `other_phases` as well.
2022-11-19 12:58:20 +01:00
Etan Kissling
0fb2447a95
Merge branch 'dev' into lc-blockfuncs
2022-11-19 12:20:18 +01:00
Etan Kissling
c3000ed996
Merge branch 'dev' into sf-epochoverrides
2022-11-19 12:11:04 +01:00
Hsiao-Wei Wang
208da34ac4
Merge pull request #3119 from ethereum/eip4844-sync-testgen
...
Add EIP4844 sync tests
2022-11-19 02:08:38 +08:00
George Kadianakis
a45627164d
Merge pull request #3097 from asn-d6/verify_kzg_proof_bytes_api
...
EIP4844: Refactor `verify_kzg_proof()` to receive bytes (used in precompile)
2022-11-18 20:01:18 +02:00
Hsiao-Wei Wang
b71ad2f8be
Add EIP4844 sync tests
2022-11-19 01:55:01 +08:00
Hsiao-Wei Wang
c345f3063a
Merge pull request #3112 from ethereum/double-bls-changes
...
Add more double/duplicate operations tests
2022-11-19 00:11:23 +08:00
Hsiao-Wei Wang
fbb13f0cf0
Apply naming suggestion from @djrtwo
2022-11-19 00:03:29 +08:00
Hsiao-Wei Wang
9f4adfde9d
Add `test_invalid_two_bls_changes_of_different_addresses_same_validator_same_block`
2022-11-18 23:23:40 +08:00
Hsiao-Wei Wang
b78bd1fae0
Add other double-operations (attestations, deposits) tests
2022-11-18 23:14:57 +08:00
Danny Ryan
82007c33d5
bump VERSION.txt
2022-11-18 08:01:21 -07:00
Hsiao-Wei Wang
aac1af7db0
Add `test_fail_double_bls_changes_in_same_block`
2022-11-18 17:27:59 +08:00
Hsiao-Wei Wang
a1d259addf
Merge pull request #3111 from ethereum/testgen-fix
...
Fix --preset-list argument and enhance error output
2022-11-18 17:18:39 +08:00
Hsiao-Wei Wang
8824259131
Fix --preset-list argument and enhance error output
2022-11-18 05:08:37 +08:00
Hsiao-Wei Wang
d12c2a3b73
Add EIP4844 random tests
2022-11-18 04:55:59 +08:00
Hsiao-Wei Wang
812618cdaf
Fix fork test verifier
2022-11-18 03:37:24 +08:00
Hsiao-Wei Wang
5c5639f8f2
fix lint
2022-11-18 03:20:25 +08:00
Hsiao-Wei Wang
0c8885570e
Add Capella and EIP4844 fork random tests
2022-11-18 03:20:25 +08:00
Hsiao-Wei Wang
2a40b513cb
Add EIP4844 testgen
2022-11-18 03:20:22 +08:00
Hsiao-Wei Wang
ee0e2a03d2
Merge branch 'dev' into pr3052
2022-11-18 02:44:46 +08:00
Hsiao-Wei Wang
b6df4b5a9e
Merge pull request #3066 from etan-status/lc-prooftest
...
Allow extending LC merkle proof tests
2022-11-18 02:34:07 +08:00
Hsiao-Wei Wang
f1d4c9047a
Merge branch 'dev' into pr3052
2022-11-18 02:12:07 +08:00
Etan Kissling
b612ec5fd5
cleanup explicit fork enumerations in tests
...
Fork epoch override test decorators were still referring to `SHARDING`.
Replace the implementation with one that needs less maintenance.
2022-11-16 16:39:06 +01:00
terence tsao
bbc3ec02ff
Fix typos
2022-11-12 23:36:34 -08:00
George Kadianakis
ff34006807
Refactor `verify_kzg_proof()` to receive bytes (used in precompile)
...
This way, client devs don't need to convert to field elements themselves, and the KZG library takes care fo it.
2022-11-12 01:47:39 +02:00
inphi
37144460be
Fix merge conflict
2022-11-11 17:52:57 -05:00
inphi
3df1371897
Merge remote-tracking branch 'origin/dev' into inphi/eip4844-rebase
2022-11-11 17:32:06 -05:00
Hsiao-Wei Wang
a6c4b9ae9e
Merge pull request #3072 from etan-status/sf-ispostfork
...
Move `is_post_xxx` functions to new module
2022-11-12 04:26:29 +08:00
inphi
67ba28c9d0
remove eip4844 epoch_processing package
2022-11-10 14:13:49 -05:00
inphi
fcafdc14a3
remove eip4844 partial/full withdrawwals tests
2022-11-10 14:11:05 -05:00
inphi
2fbb1eddd2
fix test_process_withdrawals
2022-11-10 14:01:50 -05:00
inphi
a04f06bd11
Fix merge conflict
2022-11-10 13:29:33 -05:00
inphi
a59dd37933
Merge remote-tracking branch 'origin/dev' into inphi/eip4844-rebase
2022-11-10 13:17:57 -05:00
Danny Ryan
37996fc36c
Merge pull request #3068 from potuz/withdrawals_without_queues
...
Withdrawals without queues
2022-11-10 10:49:25 -07:00
Etan Kissling
76157f91d7
Rename `phases.py` to `forks.py`; add `ValueError` check
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-11-10 13:26:00 +01:00
Etan Kissling
99785733b7
Merge branch 'dev' into sf-ispostfork
2022-11-10 13:15:17 +01:00
Potuz
c7d733303f
lint
2022-11-10 08:47:16 -03:00
Potuz
3d82a19b3b
whitespace
2022-11-10 08:41:55 -03:00
Potuz
6179085b7e
Merge branch 'withdrawals_without_queues' of github-potuz:potuz/consensus-specs into withdrawals_without_queues
2022-11-10 08:40:31 -03:00
Potuz
7f266bcb0f
Use next_validator_withdrawal_index
2022-11-10 08:33:11 -03:00
Hsiao-Wei Wang
087f785ee9
PR feedback from @djrtwo
2022-11-09 17:15:00 -05:00
Potuz
2f89f5096d
Danny's review 1st pass
2022-11-07 17:29:56 -03:00
Hsiao-Wei Wang
95ee291f58
Merge branch 'dev' into pr3052
2022-11-07 10:10:16 -05:00
Hsiao-Wei Wang
544ae28721
Merge pull request #3016 from ethereum/gen_kzg_trusted_setups
...
Rework the testing KZG trusted setups presets
2022-11-07 22:29:54 +08:00
Hsiao-Wei Wang
b7dfd5a37e
Merge pull request #3027 from ethereum/eip-4844-fee-ssz-fix
...
eip4844: update tx_peek_blob_versioned_hashes to match tx type from fee market update
2022-11-07 22:22:12 +08:00
Etan Kissling
37c30ad9db
Merge branch 'dev' into sf-ispostfork
2022-11-07 15:22:02 +01:00
Hsiao-Wei Wang
dac756efee
Minor clean up
2022-11-07 09:09:09 -05:00
Etan Kissling
08ff71688f
Merge branch 'dev' into lc-blockfuncs
2022-11-07 15:03:20 +01:00
Etan Kissling
cfad029f45
Merge branch 'dev' into lc-prooftest
2022-11-07 14:41:27 +01:00
Hsiao-Wei Wang
3fc1ebce06
Move some Capella operation tests to sanity/blocks tests
2022-11-07 08:39:10 -05:00
Potuz
8488fb79d9
Alex Stokes' review
2022-11-04 18:47:56 -03:00
Potuz
e15b02d16f
lint
2022-11-04 09:13:21 -03:00
Potuz
9973e9f29f
harden tests and add couple of cases
2022-11-04 09:00:53 -03:00
Potuz
6e913ecbd2
rename to latest_withdrawal_validator_index
2022-11-03 20:23:35 -03:00
Hsiao-Wei Wang
b530dc09aa
Move old withdrawal epoch_processing tests to block_processing
2022-11-03 16:57:02 -05:00
Hsiao-Wei Wang
494cefcda6
Fix sanity block tests
2022-11-03 16:27:24 -05:00
Hsiao-Wei Wang
0b1f32ec25
Fix capella/block_processing tests
2022-11-03 16:08:05 -05:00
Potuz
a09d617737
right ret
2022-11-03 15:07:03 -03:00
Hsiao-Wei Wang
ad36548480
Fix auto-rebase errors
2022-11-03 11:46:07 -05:00
Potuz
f506087af5
rebase on top of develop
2022-11-03 11:42:30 -05:00
Hsiao-Wei Wang
7c016f3236
Add testing KZG trusted setups generator tool and load the file during building pyspec
2022-11-03 10:17:42 -05:00
George Kadianakis
86e15764ad
EIP4844: Update cryptography API ( #3038 )
...
This commit changes the public API of the KZG library to the following high-level API:
```
- verify_kzg_proof()
- compute_aggregate_kzg_proof()
- verify_aggregate_kzg_proof()
- blob_to_kzg_commitment()
```
compared to the previous much more low-level API:
```
- compute_powers()
- matrix_lincomb()
- lincomb()
- bytes_to_bls_field()
- evaluate_polynomial_in_evaluation_form()
- verify_kzg_proof()
- compute_kzg_proof()
```
This means that all the cryptographic logic (including Fiat-Shamir) is now isolated and hidden in the KZG library and the `validator.md` file ends up being significantly simplified, only calling high-level KZG functions.
Some additional things that this commit does:
- Moves all EIP4844 cryptography into polynomial-commitments.md
- Improves the Fiat-Shamir stack by removing the need for SSZ and by introducing simple domain separators
Co-authored-by: Kevaundray Wedderburn <kevtheappdev@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
Co-authored-by: Dankrad Feist <mail@dankradfeist.de>
2022-11-03 17:01:32 +02:00
Etan Kissling
332ad4cb57
Move `is_post_xxx` functions to new module
...
Moving the `is_post_xxx` functions to a separate module allows `genesis`
to also use them (cyclic import from `context` prevented this before).
This allows removing `FORKS_BEFORE_ALTAIR` and `FORKS_BEFORE_BELLATRIX`
constants and adding a more general `is_post_fork` function that needs
less maintenance. This then allows definition of `with_all_phases_from`
to streamline the implementation of the `with_xxx_and_later` decorators.
2022-10-30 12:50:56 +01:00
Etan Kissling
ff0e525ecc
Pass blocks to LC data creation functions
...
Future light client protocol extensions may include data from the block
in addition to data from the state, e.g., `ExecutionPayloadHeader`.
To prepare for this, also pass the block to the corresponding functions.
In practice, blocks access is easier than historic state access, meaning
there are no practical limitations due to this change.
2022-10-28 22:14:25 +02:00
Etan Kissling
5c66300171
Use `suite_name` instead of `meta.yaml` for SSZ type
2022-10-28 20:32:33 +02:00
Alex Stokes
bab01d6e99
Merge pull request #3067 from etan-status/lc-synctestroot
...
Rename LC test check from `root` to `beacon_root`
2022-10-28 08:55:27 -06:00
Alex Stokes
72b6abd545
Merge pull request #3064 from etan-status/lc-periodatepoch
...
Consistently use `compute_sync_committee_period_at_slot`
2022-10-28 08:49:58 -06:00
Etan Kissling
4fc80765ad
Also update test logic accordingly
2022-10-27 22:08:24 +02:00
Etan Kissling
990866dd9f
Rename LC test check from `root` to `beacon_root`
...
Future light client tests will also incorporate execution payload data.
To avoid confusion, rename the current `root` check to `beacon_root`.
Doing this now, as #3066 already requires LC test runners to update.
2022-10-27 22:06:11 +02:00
Etan Kissling
cdaf7e84dd
Allow extending LC merkle proof tests
...
Currently, `test_single_merkle_proof` only supports `BeaconState` tests.
For future tests, different object classes are desirable. Update format
to allow testing other objects as well.
2022-10-27 21:59:48 +02:00
Etan Kissling
14b3463f2c
Consistent variable name in LC test
...
In light client tests, a variable is named `finality_header` but
everywhere else it is called `finalized_header`. Rename for consistency.
2022-10-27 00:01:22 +02:00
Hsiao-Wei Wang
60187e5dc4
Add `test_process_withdrawals` no-op test
2022-10-26 15:19:15 -05:00
Hsiao-Wei Wang
e460005aff
Add tests for no-op functions
2022-10-26 15:12:05 -05:00
Hsiao-Wei Wang
317209591d
Make pyspec disable withdrawal-functions in EIP4844
2022-10-26 15:06:39 -05:00
Hsiao-Wei Wang
6c7922df67
Fix bls test case file name
2022-10-26 11:03:16 -05:00
Hsiao-Wei Wang
af8c5bf532
Merge pull request #3046 from terencechain/couple-block-sidecar
...
EIP4844: couple beacon block and blob sidecar for p2p
2022-10-26 23:51:23 +08:00
Hsiao-Wei Wang
3c7c3a9c97
bump VERSION.txt to 1.3.0-alpha.0 ( #3056 )
2022-10-25 11:45:04 +08:00
inphi
6d270cdc52
Add CAPELLA_FORK_EPOCH overrides
2022-10-24 17:21:36 -04:00
inphi
459310f744
Fix test_process_execution_payload
2022-10-24 16:25:50 -04:00
Hsiao-Wei Wang
9844ea1f30
Merge pull request #3040 from ethereum/capella-test-vectors
...
Capella test vectors
2022-10-23 06:44:03 +08:00
terence tsao
e2d0a4fa9a
Fix ToC and test
2022-10-22 08:36:46 -07:00
Hsiao-Wei Wang
f48d6b324d
Update test formats
2022-10-20 22:27:49 -05:00
Hsiao-Wei Wang
0e2c3d89e0
Fill `bls_to_execution_changes` field in Capella random tests
2022-10-20 22:22:11 -05:00
Hsiao-Wei Wang
d013379628
Ensure `validator_index` is in validator set
2022-10-19 10:27:01 -05:00
Hsiao-Wei Wang
53b63cedc5
Merge branch 'dev' into pr3050
2022-10-19 10:21:32 -05:00
Jim McDonald
0345b2284a
Add validator_index to Withdrawal.
2022-10-18 15:35:06 +01:00
Hsiao-Wei Wang
940fc20758
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-10-17 23:21:15 +08:00
Hsiao-Wei Wang
b90436c988
Fix capella random & fork
2022-10-14 23:42:42 -05:00
Hsiao-Wei Wang
03ced9c263
Add Capella tests
2022-10-14 23:40:45 -05:00
Hsiao-Wei Wang
6181035d5d
Fix typo ( #3039 )
2022-10-15 12:40:17 +08:00
Hsiao-Wei Wang
9717daa325
Merge branch 'dev' into more-withdrawals-tests
2022-10-10 10:07:38 -05:00
protolambda
2d08dc51c5
eip-4844: test tx_peek_blob_versioned_hashes
2022-10-06 18:13:35 +02:00
protolambda
c7d88b7ce5
eip4844: update test type definition
2022-10-06 18:13:35 +02:00
Danny Ryan
491f14c76f
some capella sanity tests
2022-10-05 10:40:58 -06:00
Hsiao-Wei Wang
44424c4080
Bump dep packages version and fix lint issues
2022-09-28 12:38:21 +08:00
Danny Ryan
0fdab6130e
Merge pull request #3010 from jtraglia/partial-withdrawal-balance-tests
...
Add partial withdrawal balance tests
2022-09-26 14:35:28 -06:00
Danny Ryan
eeebd42a95
Merge pull request #2998 from ethereum/remove-withdrawn-epoch
...
remove withdrawn_epoch
2022-09-26 14:30:25 -06:00
Justin Traglia
fdb5c7dcf3
Add partial withdrawal balance tests
2022-09-22 15:19:22 -05:00
Hsiao-Wei Wang
73c96b238a
Merge pull request #3001 from ethereum/bls-output-null
...
Update BLS test format: output `null` for invalid case
2022-09-22 14:36:31 +08:00
Danny Ryan
bfca7f9a96
Apply suggestions from code review
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-09-21 07:50:31 -06:00
Hsiao-Wei Wang
93b7ae299d
Update BLS test format: output `null` for invalid case
2022-09-21 01:24:22 +08:00
Danny Ryan
91ea9e6959
review suggestion from @hwwhww
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-09-20 08:22:26 -06:00
Hsiao-Wei Wang
0f8e12e929
Add a redirection README.md for the sync tests
2022-09-20 18:13:15 +08:00
Danny Ryan
70f90c5296
rmove withdrawn_epoch
2022-09-19 11:39:46 -06:00
Danny Ryan
63d284a85c
bump version to v1.2.0
2022-09-16 09:55:36 -06:00
Danny Ryan
770a603af9
Merge pull request #2989 from ethereum/deposit-zero-pk
...
Add `test_process_deposit::test_key_validate_invalid`
2022-09-13 14:05:13 -06:00
Hsiao-Wei Wang
4d2cfff2d6
Add `test_key_validate_invalid_decompression`
2022-09-12 22:59:29 +08:00
Hsiao-Wei Wang
e4407c64e3
Add `test_process_deposit::test_key_validate_invalid`
2022-09-12 22:31:49 +08:00
Hsiao-Wei Wang
f2c26560d5
Merge pull request #2982 from ethereum/optimistic-sync-tests
...
Add optimistic sync tests
2022-09-12 18:06:40 +08:00
Hsiao-Wei Wang
e639a3b4f9
Merge branch 'dev' into pr2965
2022-09-08 22:54:07 +08:00
Hsiao-Wei Wang
2e73091258
Add `get_valid_flag_value` helper to determine the `valid` flag value
2022-09-08 22:42:39 +08:00
Hsiao-Wei Wang
0f8b5ae6bd
Apply PR feedback from @michaelsproul
2022-09-02 20:45:51 +08:00
Hsiao-Wei Wang
ac717b106a
Address PR feedback from @mkalinin
2022-08-31 22:02:47 +08:00
Mikhail Kalinin
b67fb5b049
Update tests/formats/fork_choice/README.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-08-24 23:29:59 +06:00
Hsiao-Wei Wang
f8d92c3bd8
Add basic test case
2022-08-24 23:20:31 +08:00
Hsiao-Wei Wang
5db5b87e5e
Add bellatrix deposit and voluntary_exit tests
2022-08-19 01:52:34 +08:00
Danny Ryan
efc4d45bbc
bump VERSION.txt
2022-08-18 11:35:39 -06:00
Hsiao-Wei Wang
bafb5870c1
Update tests/core/pyspec/eth2spec/test/bellatrix/block_processing/test_process_deposit.py
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-08-19 01:20:53 +08:00
Hsiao-Wei Wang
6c00b48dca
PR feedback from @djrtwo: add `is_before_fork_epoch` and more param combinations
2022-08-19 00:29:56 +08:00
Hsiao-Wei Wang
806a6ad414
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2022-08-19 00:03:58 +08:00
Hsiao-Wei Wang
b3ef9b2b3e
Add invalid fork version tests
2022-08-18 22:49:02 +08:00
Hsiao-Wei Wang
d133dae471
Fix codespell errors ( #2975 )
2022-08-18 22:08:44 +08:00
Danny Ryan
ff6181f8f5
Merge branch 'master' into dev
2022-08-16 09:04:43 -06:00
Hsiao-Wei Wang
d95c45523f
Fix path: the bellatrix-new tests have been moved to altair file
2022-08-16 14:29:56 +08:00
Danny Ryan
91b584eb21
bump VERSION.txt ( #2971 )
2022-08-15 09:11:41 -06:00
Danny Ryan
ccc40e1982
a few more bellatrix tests ( #2962 )
...
* Do not overload index with WithdrawalIndex and ValidatorIndex
* a few more bellatrix tests
* use function from other PR
* fix tests
* Update tests/core/pyspec/eth2spec/test/bellatrix/transition/test_transition.py
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* refactor to reuse bellatrix transitio ntests for all transitions
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-08-15 07:49:53 -06:00
Danny Ryan
3d785dad7a
pr feedback from @hwwhww
2022-08-03 08:24:32 -06:00
Mikhail Kalinin
14d4f44c11
Extend fork_choice test format with on_payload_info
2022-08-03 18:19:39 +06:00
Danny Ryan
7e360240f9
more execution payload tests and cleanup old ones
2022-08-01 11:42:38 -06:00
Danny Ryan
981b05afb0
Merge pull request #2950 from ethereum/mv-merkle-tests
...
Move `merkle/single_proof` tests to `light_client/single_merkle_proof`
2022-07-26 12:46:51 -04:00
Alex Stokes
7e54cd09b0
Update README.md
2022-07-22 13:15:46 -06:00
Hsiao-Wei Wang
176a5d227a
Move `merkle/single_proof` tests to `light_client/single_merkle_proof`
2022-07-22 21:34:09 +08:00
Etan Kissling
8643e28f12
`try_...` --> `process_...`
2022-07-22 11:49:07 +02: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
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
Hsiao-Wei Wang
0f31fcdee4
[Refactor] remove useless `spec` param from `compute_committee_indices`
2022-07-19 22:17:35 +08: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
Etan Kissling
c9f0927d8b
Merge branch 'dev' into lc-testsuite
2022-07-17 06:34:52 +02:00
Etan Kissling
261c5317e1
Remove genesis check now that Capella is fixed
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-15 21:40:13 +02:00
Etan Kissling
63816debcc
Merge commit '9c798806355f67a32704a8cd5a98d90deccb8f69' into lc-testsuite
2022-07-15 21:38:18 +02:00
Etan Kissling
9d41c2306f
Align format of override `config.yaml` with base cfg
2022-07-15 21:37:18 +02:00
Etan Kissling
30d635259b
Move test files to `light_client` subdir
2022-07-15 21:36:26 +02:00
Hsiao-Wei Wang
ec7c7c8589
Remove leftover print
2022-07-16 01:41:56 +08:00
Hsiao-Wei Wang
185f51ec0e
Merge branch 'dev' into pr2937
2022-07-16 01:40:39 +08:00
Hsiao-Wei Wang
5356fee282
Fix `test_override_config_fork_epoch`
2022-07-16 01:28:19 +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
Danny Ryan
d49c98c7aa
Merge pull request #2926 from ralexstokes/spec-diagnostis
...
Add summary diagnostics to spec test gen
2022-07-15 09:01:32 -06: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
de15971ae8
Cleanups
2022-07-15 13:45:34 +02:00
Etan Kissling
3c5d347cdc
Emit checks after each individual test step
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-15 13:13:33 +02:00
Etan Kissling
73279f8382
Explain why the tests check for Altair twice
2022-07-15 12:24:40 +02:00
Etan Kissling
88a69512b2
`finalize_test` --> `finish_test`
2022-07-15 12:04:56 +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
George Kadianakis
2558282e6d
EIP-4844: Introduce KZG and blob verification unittests
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:14:31 +03:00
George Kadianakis
567a25f883
EIP-4844: Make the spec executable
...
- Implement all the required glue code to make things executable
- Implement a dummy KZG trusted setup
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-07-13 13:14:05 +03: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
c4dbd241ac
Root `next_sync_committee` in `attested_header`
...
`LightClientUpdate` structures currently use different merkle proof root
depending on the presence of `finalized_header`. By always rooting it in
the same state (the `attested_header.state_root`), logic gets simpler.
Caveats:
- In periods of extended non-finality, `update.finalized_header` may now
be outdated by several sync committee periods. The old implementation
rejected such updates as the `next_sync_committee` in them was stale,
but the new implementation can properly handle this case.
- The `next_sync_committee` can no longer be considered finalized based
on `is_finality_update`. Instead, waiting until `finalized_header` is
in the `attested_header`'s sync committee period is now necessary.
- Because `update.finalized_header > store.finalized_header` no longer
holds (for updates with finality), an `is_better_update` helper is
added to improve `best_valid_update` tracking (in the past, finalized
updates with supermajority participation would always directly apply)
This PR builds on prior work from:
- @hwwhww at https://github.com/ethereum/consensus-specs/pull/2829
2022-07-01 14:49:24 -07:00
Hsiao-Wei Wang
bfa048a449
Merge pull request #2929 from etan-status/lc-testterms
...
Cleanup light client tests
2022-07-02 02:32:18 +08:00
Hsiao-Wei Wang
d2a1f57e09
Merge pull request #2928 from ralexstokes/test-gen-patch-up
...
remove data logging from BLS test gen
2022-06-30 17:10:08 +08:00
Etan Kissling
e269b305b9
Cleanup light client tests
...
Various cleanups and minor fixes:
- Consistent terminology:
- `signed_block` -> `attested_block`
- `finalized_block_header` -> `finalized_header`
- `snapshot_period` -> `store_period`
- Use correct block in finality test (`blocks[-1]` instead of new one)
- Add `signed_block_header` func to get header from `SignedBeaconBlock`
- Remove `block_header` from `get_sync_aggregate` helper arguments
- Use `state_transition_with_full_block` as shortcut for multiple calls
- Have `finalized_header` actually be header instead of full block body
- Consistent ordering of `assert` to match structure definition
2022-06-30 11:09:49 +02:00
Alex Stokes
529ce301b8
write test generator diagnostics to a summary file
2022-06-29 12:09:56 -06:00
Alex Stokes
2dd9a52fe4
remove data logging from BLS test gen
2022-06-29 10:24:53 -06:00
Etan Kissling
f5f3031c5e
Allow passing redundant `next_sync_committee`
...
The producer of `LightClientUpdate` structures usually does not know how
far the `LightClientStore` on the client side has advanced. Updates are
currently rejected when including a redundant `next_sync_committee` not
advancing the `LightClientStore`. Behaviour is changed to allow this.
2022-06-29 13:16:03 +02:00
Etan Kissling
9a253e437d
create decorator for tests with matching config
2022-06-24 01:05:11 +02:00
Etan Kissling
0b8ab23bd4
Remove `fork_version` from `LightClientUpdate`
...
The `fork_version` field in `LightClientUpdate` can be derived from the
`update.signature_slot` value by consulting the locally configured fork
schedule. The light client already needs access to the fork schedule to
determine the `GeneralizedIndex` values used for merkle proofs, and the
memory layouts of the structures (including `LightClientUpdate`). The
`fork_version` itself is network dependent and doesn't reveal that info.
2022-06-16 17:17:24 +02:00
Hsiao-Wei Wang
8cc008d11c
Merge pull request #2805 from etan-status/lc-period
...
Allow light client to verify signatures at period boundary
2022-06-16 16:53:12 +02:00
Danny Ryan
74489d5523
Partial withdrawals ( #2862 )
...
* t push base design for partial withdrawals
* moor tests
* clean up withdrawals naming
* make partial withdrawal randomized tests better
* Apply suggestions from code review
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* fix mainnet brokn test
* name swap
* lint
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-06-08 13:16:12 -06:00
Hsiao-Wei Wang
c165d31ccb
Remove `@disable_process_reveal_deadlines`
2022-06-06 16:24:44 +08:00
Alex Stokes
0d305f0ae3
Update README.md
...
Some edits to remove stale information
2022-06-01 22:00:11 -06:00
Danny Ryan
e43b1f7679
bump version.txt ( #2900 )
2022-05-23 05:25:20 -06:00
Danny Ryan
895cce5aeb
bump version.txt
2022-05-23 05:23:16 -06:00
Danny Ryan
1d82d33774
Merge pull request #2887 from jtraglia/add-invalid-withdrawable-epoch-test
...
Add invalid large withdrawable epoch test
2022-05-16 08:07:21 -06:00
Hsiao-Wei Wang
89e7a1073d
Add notes about invalid case to `epoch_processing` test format
2022-05-10 19:02:10 +02:00
Justin Traglia
02090d94ab
Remove pytest import
2022-05-10 11:00:16 -05:00
Justin Traglia
d1f0187076
Revert "Move test case to new location"
...
This reverts commit e2cbdb2b67
.
2022-05-10 10:48:59 -05:00
Justin Traglia
5868a53cf1
Revert "Fix linter warnings again"
...
This reverts commit ac7267c938
.
2022-05-10 10:48:51 -05:00
Justin Traglia
ac7267c938
Fix linter warnings again
2022-05-09 16:50:43 -05:00
Justin Traglia
e2cbdb2b67
Move test case to new location
2022-05-09 16:47:19 -05:00
Justin Traglia
90c1825637
Convert participation_fn from lambda to def
...
I felt that the the lambda was a little too complicated.
2022-05-09 15:53:36 -05:00
Justin Traglia
9dcb2eecbc
Fix linter warnings
2022-05-09 14:28:54 -05:00
Justin Traglia
a7bda480fe
Convert sets to sorted lists prior to sampling
...
This is because sampling of sets has been deprecated in Python 3.9. I used
sorted() instead of list() so that things are deterministic.
2022-05-09 14:09:27 -05:00
Justin Traglia
3c7544af3d
Add invalid large withdrawable epoch test
2022-05-06 13:56:40 -05:00
Danny Ryan
c1d0836936
Merge pull request #2855 from ethereum/00-to-01
...
00 to 01 cred change
2022-05-05 07:31:49 -06:00
Hsiao-Wei Wang
8a4ea1d13d
Merge pull request #2877 from zilm13/fix/equivocating-indices
...
Yield attestation in equivocating indices test
2022-05-03 14:44:57 +02:00
Etan Kissling
5653649ca8
Allow light client to verify signatures at period boundary
...
As the sync committee signs the previous block, the situation arises at
every sync committee period boundary, that the new sync committee signs
a block in the previous sync committee period. The light client cannot
reliably detect this condition (e.g., assume that this is the case when
it is currently on the last slot of a sync committee period), because
the last couple slots of a sync committee period may not have a block.
For example, when receiving a `LightClientUpdate` that is constructed
as in the following illustration, it is unknown whether `sync_aggregate`
was signed by the current or next sync committee at `attested_header`.
```
slot N N + 1 | N + 2 (slot not sent!)
|
+-----------------+ \ / | +----------------+
| attested_header | <--- X ----|---- | sync_aggregate |
+-----------------+ / \ | +----------------+
missed |
|
sync committee
period boundary
```
This patch addresses this edge case by including the slot at which the
`sync_aggregate` was created into the `LightClientUpdate` object.
Note that the `signature_slot` cannot be trusted beyond the purpose of
signature verification, as it could be manipulated to any other slot
within the same sync committee period and fork version, without making
the `sync_aggregate` invalid.
2022-05-02 13:08:20 +02:00
Dmitrii Shmatko
b9cb294650
Yield attestation in equivocating indices test
2022-04-25 23:23:44 +03:00
Etan Kissling
f125538122
Fix param order in `prepare_execution_payload`
...
Documentation on how to call `prepare_execution_payload` had the params
for `safe_block_hash` and `finalized_block` hash flipped compared to the
function definition. Also updated tests for consistency.
2022-04-25 16:49:00 +02:00
Danny Ryan
1bfefe301d
Merge pull request #2858 from mkalinin/justified-to-safe-block
...
Bellatrix: pass justified as a safe block
2022-03-30 12:19:21 -06:00
Danny Ryan
ee5f29cb75
fix ci
2022-03-24 09:57:43 -06:00
Danny Ryan
6e369e4a53
Apply suggestions from code review
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2022-03-23 10:55:27 -06:00
Danny Ryan
2017b61265
test address_change
2022-03-22 13:37:17 -06:00
Mikhail Kalinin
95a2327800
Bellatrix: add get_safe_block_hash to validator.md
2022-03-22 22:51:45 +06:00
Danny Ryan
702ed9f39a
Merge branch 'withdrawals-push' into 00-to-01
2022-03-22 08:23:34 -06:00
Danny Ryan
b469593219
toc
2022-03-22 08:22:35 -06:00
Danny Ryan
0da78ebc4b
Merge branch 'withdrawals-push' into 00-to-01
2022-03-22 08:19:31 -06:00
Danny Ryan
c10d219664
Merge branch 'dev' into withdrawals-push
2022-03-22 08:11:09 -06:00
Danny Ryan
493b169022
refine naming for withdrawals
2022-03-22 07:55:45 -06:00
Danny Ryan
79cdb88e66
wip 00 to 01 cred change
2022-03-16 15:41:37 -06:00
Danny Ryan
36aae1d848
add tests for process_withdrawals
2022-03-16 13:35:29 -06:00
Mikhail Kalinin
cc347c6ff4
Merge pull request #2851 from mkalinin/safe-head
...
Add safe_block_hash to notify_forkchoice_updated
2022-03-16 13:29:23 +06:00
Mikhail Kalinin
84ab086d94
Add safe_block_hash to notify_fc_updated
2022-03-14 19:09:21 +06:00
Danny Ryan
3dd83cf4ee
minor withdrawals renamings
2022-03-10 12:30:51 -07:00
Danny Ryan
507f550cb1
Merge branch 'dev' into withdrawals-push
2022-03-10 10:27:20 -07:00
Hsiao-Wei Wang
3cdc0e61ed
Add `on_attester_slashing` execution step
2022-03-09 10:18:00 +08:00
Hsiao-Wei Wang
95c712598a
Fix `test_discard_equivocations` test vectors
2022-03-09 10:16:37 +08:00
Danny Ryan
e1b9cf97e2
add withdrawal index to wihdrawal transaction
2022-03-03 14:02:52 -07:00
Aditya Asgaonkar
7f31c80b8f
Fix lint & CI
2022-03-01 11:47:45 -08:00
Aditya Asgaonkar
4fbe162655
Add on_attester_slashing() and related test
2022-03-01 11:42:49 -08:00
Danny Ryan
1fb7a95329
bump VERSION.txt to 1.1.10
2022-02-25 11:23:15 -07:00
Danny Ryan
0a55f062d7
fix execution paylaod tests
2022-02-24 15:38:23 -07:00
Danny Ryan
f5dab5b666
fix fully withdrawal tests
2022-02-24 15:06:31 -07:00
Danny Ryan
2026103bb9
Merge branch 'dev' into withdrawals-push
2022-02-23 15:08:29 -07:00
Mikhail Kalinin
1280fe2a02
Bellatrix: random -> prev_randao
2022-02-22 17:16:33 +06:00
Hsiao-Wei Wang
3d7f307020
Refactor test_sync_protocol.py a bit
2022-02-04 17:46:37 -08:00
Hsiao-Wei Wang
f2fd673a66
Merge pull request #2807 from etan-status/compute-sync-period
...
Consistently use `compute_sync_committee_period`
2022-02-01 16:05:58 -08:00
Danny Ryan
67fcbf22ec
bump version
2022-01-28 06:44:04 -07:00
Alex Stokes
129d9e28b4
add randomized tests for bellatrix
2022-01-27 19:41:09 -08:00
Mikhail Kalinin
eb4497fae7
Bellatrix: Rename execute_payload to notify_new_payload
2022-01-27 15:24:53 +06:00
Danny Ryan
671c4f0e3a
receipt_root -> receipts_root
2022-01-17 13:42:10 -07:00
Etan Kissling
8319d07084
Consistently use `compute_sync_committee_period`
...
There were a couple instances where a division was used on an epoch
to derive the corresponding sync committee period instead of calling the
`compute_sync_committee_period` function.
These instances were changed to also use the function.
2022-01-17 17:38:24 +01:00
Alex Stokes
50a63c4135
Merge pull request #2790 from asanso/patch-5
...
Add 3 new invalid test cases
2022-01-13 12:56:38 -06:00
Hsiao-Wei Wang
16c350ebcd
Merge pull request #2796 from etan-status/lc-aggregate
...
Rename `sync_committee_aggregate` > `sync_aggregate`
2022-01-13 21:07:50 +08:00
Antonio Sanso
7255faf41b
Update ssz_container.py
2022-01-13 13:40:48 +01:00
Alex Stokes
c4a60225cb
Merge branch 'dev' into patch-5
2022-01-11 16:09:40 -06:00
Danny Ryan
a1719f9afc
Merge pull request #2784 from status-im/config-name
...
Add `CONFIG_NAME` to configs
2022-01-11 07:24:15 -07: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
Alex Stokes
d74cb5c9ec
remove unnecessary conditional
2022-01-06 15:34:59 -08:00
Antonio Sanso
e56dddd6ec
Update tests/generators/ssz_generic/ssz_container.py
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:07:48 +01:00
Antonio Sanso
69a2fb4af0
Update tests/generators/ssz_generic/ssz_container.py
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:07:31 +01:00
Antonio Sanso
7df0d4d70e
Update tests/generators/ssz_generic/ssz_container.py
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:07:23 +01:00
Antonio Sanso
22719f2748
Update tests/generators/ssz_generic/ssz_container.py
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:06:50 +01:00
Antonio Sanso
6f64d46bc4
Update tests/generators/ssz_generic/ssz_container.py
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2022-01-06 19:06:42 +01:00
Antonio Sanso
db16f590cb
fixing lint
2022-01-06 13:29:57 +01:00
Antonio Sanso
b5908cf294
fixing lint
2022-01-06 13:28:19 +01:00
Antonio Sanso
7ccd528cd1
fixing lint
2022-01-06 13:26:00 +01:00
Antonio Sanso
b220655d24
Add 3 new invalid test cases
2022-01-06 13:08:47 +01:00
Danny Ryan
af4725d08a
add some non-empty extra_data tests
2022-01-03 07:51:35 -07:00
Jacek Sieka
46bc206740
Add `CONFIG_NAME` to configs
...
Runtime configurations apply to a certain network and the name of that
network is useful for humans such that they can talk about it.
Some of the existing configs already include a `CONFIG_NAME` toggle -
might as well add it here as well and avoid some confusion - this name
above all becomes useful in the beacon API.
By extension, the `CONFIG_NAME` config will appear in the beacon api as
a result of being defined here.
2021-12-29 13:02:36 +01:00
Hsiao-Wei Wang
cbf314c67e
Move capella fork tests to the correct folder and resolve conflicts
2021-12-27 18:44:03 +08:00
Hsiao-Wei Wang
171a9ccc81
Resolve conflicts
2021-12-27 18:30:12 +08:00
Hsiao-Wei Wang
db642e0586
bump VERSION.txt to 1.1.8
2021-12-25 00:59:11 +08:00
Alex Stokes
b1998872fa
Merge pull request #2777 from ethereum/bellatrix-fork-testgen
...
Enable Bellatrix fork tests in test generator
2021-12-24 08:22:45 -08:00
Hsiao-Wei Wang
ba690852d6
Merge pull request #2774 from ethereum/bellatrix
...
Rename "Merge" -> "Bellatrix"
2021-12-24 01:46:55 +08:00
Hsiao-Wei Wang
5910b90c43
Enable Bellatrix fork tests in test generator
2021-12-24 00:56:55 +08:00
Hsiao-Wei Wang
a7df9a39cc
Set RNG seed
2021-12-23 21:33:23 +08:00
Hsiao-Wei Wang
41af639517
PR feedback from @mkalinin
2021-12-23 17:26:48 +08:00
Hsiao-Wei Wang
8facc0a095
Merge -> Bellatrix
2021-12-23 14:25:43 +08:00
Hsiao-Wei Wang
cba3ddfc3d
bump VERSION.txt to 1.1.7
2021-12-22 15:47:38 +08:00
Hsiao-Wei Wang
2fa396f67d
Merge pull request #2746 from ethereum/vbuterin-patch-12
...
Simplify sync protocol and update to calculate optimistic heads
2021-12-16 00:12:36 +08:00
Hsiao-Wei Wang
257c2413a5
Update test_sync_protocol.py per the new optimistic_header and data structure
2021-12-14 22:06:25 +08:00
Hsiao-Wei Wang
6edf840992
fix lint
2021-12-11 09:06:56 +08:00
Hsiao-Wei Wang
4cea972cc0
Apply suggestions from code review
...
Co-authored-by: Caspar Schwarz-Schilling <31305984+casparschwa@users.noreply.github.com>
2021-12-11 09:01:16 +08:00
Hsiao-Wei Wang
11a42f8d06
Remove `*_without_boost` tests
2021-12-09 17:58:31 +08:00
Hsiao-Wei Wang
addc03cb7c
Enable ex-ante tests in testgen and minor fixes
2021-12-09 17:47:20 +08:00
Caspar Schwarz-Schilling
9f614fca83
Fix linting
2021-12-08 18:31:14 +01:00
Caspar Schwarz-Schilling
79e1d5e021
Fix head view comparison
2021-12-08 18:14:46 +01:00
Caspar Schwarz-Schilling
dc9db78a67
Add sandwich test scenarios
2021-12-08 17:05:44 +01:00
Alex Stokes
db2be42baa
use a specific `spec` rather than the pre-defined phases
2021-12-07 18:50:00 +01:00
Alex Stokes
55c9c03f08
simply module import and fix config adjustment
2021-12-07 18:22:10 +01:00
Alex Stokes
733f37715e
use `importlib` to perform an actual spec copy
2021-12-07 17:55:17 +01:00
Alex Stokes
57be9d064f
update per-test config to be unique per-test
2021-12-07 17:13:26 +01:00
Hsiao-Wei Wang
200ed58dd9
Merge branch 'dev' into ex-ante-tests
2021-12-07 18:29:48 +08:00
Hsiao-Wei Wang
9dc1b7af7e
Test with strict `proposer_boost + 1` attestation participants
2021-12-07 00:25:26 +08:00
Danny Ryan
59d48210a1
fix forkchoice tests
2021-12-02 12:10:46 -07:00
Danny Ryan
6969c8af67
lint
2021-12-02 12:03:51 -07:00
Danny Ryan
180abb90ec
clean up some withdrawal logic and add tests
2021-12-02 11:56:33 -07:00
Hsiao-Wei Wang
6308cee7a6
Fix typo
2021-12-03 02:17:57 +08:00
Danny Ryan
3024dc8ba8
add withdrawn_epoch to capella validators
2021-12-02 10:52:56 -07:00
Hsiao-Wei Wang
a399d953d3
Add assertion to `test_shorter_chain_but_heavier_weight`
2021-12-02 17:21:42 +08:00
Danny Ryan
78d55839b9
fix tsts
2021-12-01 16:42:12 -07:00
Danny Ryan
b7308e0953
remove capella built files
2021-12-01 11:43:32 -07:00
Danny Ryan
4f24fe455b
basic capella withdrawal in place
2021-12-01 11:37:30 -07:00
Hsiao-Wei Wang
dc52b35145
Add `PROPOSER_SCORE_BOOST` to meta.yaml and fix comments
2021-12-02 01:37:01 +08:00
Hsiao-Wei Wang
bb8168fd95
Make config dict compatible with yaml.dump
2021-12-02 01:34:35 +08:00
Hsiao-Wei Wang
d7f6a42729
[WIP] Add ex-ante fork choice test cases
2021-12-01 02:37:22 +08:00
Antonio Sanso
dfb3ef8f2c
Update ssz_container.py
2021-11-24 08:42:27 +01:00
Danny Ryan
4370b9c816
bump VERSION.txt to 1.1.6
2021-11-23 14:53:13 -07:00
Danny Ryan
69e7f586ac
Merge pull request #2738 from ethereum/fix-names
...
is_merge -> is_merge_transition
2021-11-23 14:52:05 -07:00
Danny Ryan
a0d008bb86
is_merge -> is_merge_transition
2021-11-23 14:45:03 -07:00
Danny Ryan
32e8ca26a0
Merge pull request #2737 from ethereum/test_prepare_execution_payload
...
Fix spec typo and add `test_prepare_execution_payload` unit tests
2021-11-23 14:25:48 -07:00
Danny Ryan
395fdd4566
Merge pull request #2730 from ethereum/proposer-score-boost
...
Proposer LMD Score Boosting
2021-11-23 11:39:07 -07:00
Hsiao-Wei Wang
8050de384e
Fix spec typo and add `test_prepare_execution_payload` unit tests
2021-11-24 02:23:24 +08:00
Danny Ryan
975931b5cf
pr feedback
2021-11-23 11:19:22 -07:00
Hsiao-Wei Wang
2ba0586c3d
Add `proposer_boost_root` field to test vector "checks" step
2021-11-24 00:09:48 +08:00
Aditya Asgaonkar
6f95637637
Merging local branch to remote latest
2021-11-23 07:32:56 -08:00
Aditya Asgaonkar
ecbe9190b9
Apply HWW code's review - properly update test steps
2021-11-23 07:20:54 -08:00
Hsiao-Wei Wang
bdd7b0782e
Add configuration value checks
2021-11-23 16:44:12 +08:00
Ori Pomerantz
9999331f81
How to write tests for the consensus layer ( #2700 )
...
* Create README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Signed my name
* Update tests/README.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
* Update tests/README.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
* Update tests/README.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
* Update tests/README.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
* Update tests/README.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
* Update tests/README.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
* Update README.md
* Update README.md
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-11-22 16:30:12 -07:00
Aditya Asgaonkar
d85d4399cb
Rename test
2021-11-22 14:45:20 -08:00
Aditya Asgaonkar
1d835c5198
Apply Danny's code review & suggestions
2021-11-22 14:44:52 -08:00
Danny Ryan
ea09df50db
toc
2021-11-22 11:39:08 -07:00
Aditya Asgaonkar
2d161b4244
Add proposer score boosting & related tests
2021-11-22 11:12:24 -07:00
Danny Ryan
bbdb0d8fba
Merge pull request #2727 from ethereum/fc-dev-validate_target_epoch_scope-patch
...
always atomically update justified and finalized
2021-11-22 09:42:20 -07:00
Danny Ryan
97e6d5c6d6
Merge branch 'fc-dev-validate_target_epoch_scope-patch' into dev
2021-11-22 08:32:32 -07:00
Hsiao-Wei Wang
29beba6ab5
Merge pull request #2706 from ethereum/transition-reuse
2021-11-20 08:21:22 +08:00
Danny Ryan
3c25da8218
Merge pull request #2726 from ethereum/get_pow_block_at_ttd-tests
...
Fix `get_pow_block_at_terminal_total_difficulty` and add unit tests
2021-11-19 09:37:11 -07:00
Danny Ryan
e7df64b0a4
Merge pull request #2723 from ethereum/add-test_is_execution_enabled_false
...
Add a test to cover the case of `is_execution_enabled` result is false
2021-11-19 09:33:34 -07:00
Danny Ryan
dc14b79a52
Merge pull request #2720 from paulhauner/patch-34
...
Remove `difficulty` from `PowBlock`
2021-11-18 15:49:27 -07:00
Mikhail Kalinin
58968f9286
Rename coinbase to fee_recipient
2021-11-18 19:23:52 +06:00
Hsiao-Wei Wang
2c865e3627
Resolve the commented out code in `test_new_finalized_slot_is_not_justified_checkpoint_ancestor`
2021-11-18 11:02:12 +08:00
Danny Ryan
3d4ece44df
port phase0 forkchocie changes to merge
2021-11-17 18:37:45 -07:00
Danny Ryan
eb00f8f735
cleanup forkchoice tests
2021-11-17 18:24:47 -07:00
Hsiao-Wei Wang
e56bbb8c44
Fix `get_pow_block_at_terminal_total_difficulty` and add unit tests
2021-11-17 18:00:35 +08:00
Hsiao-Wei Wang
79f1f16adf
Clean `PowBlock.difficulty` leftover
2021-11-16 22:08:00 +08:00
Hsiao-Wei Wang
2b9692a22c
Add a test to cover the case of `is_execution_enabled` result is false
2021-11-16 21:56:55 +08:00
Hsiao-Wei Wang
63c9e5ea56
Minor refactoring and add comments
2021-11-16 00:32:29 +08:00
Hsiao-Wei Wang
f0bb032eb1
Fix `test_transition_with_one_fourth_exiting_validators_exit_at_fork` assertions
2021-11-15 23:46:40 +08:00
Hsiao-Wei Wang
f643554aa5
Fix issue around on_attestation validation by skipping epoch scope
...
validation if attestation is from a block message
2021-11-13 18:28:05 +08:00
Danny Ryan
cd3d2ce692
working through test issues
2021-11-12 12:43:54 -07:00
Hsiao-Wei Wang
49d96f92ef
Add a sample altair-to-merge-only transition
2021-11-12 17:06:10 +08:00
Hsiao-Wei Wang
e70da78377
Merge branch 'dev' into transition-reuse
2021-11-12 15:57:27 +08:00
Danny Ryan
342171f441
version.txt bump to v1.1.5
2021-11-08 07:50:54 -07:00
Mikhail Kalinin
f463c32879
Apply feedback from the review of test_validate_merge_block
2021-11-06 10:21:56 +06:00