Commit Graph

1436 Commits

Author SHA1 Message Date
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