Commit Graph

61 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 744ae2e687
Add EIP-6800 linter checks.
Fix the lint errors.
Remove custom type `StateDiff` and then use `List[StemStateDiff, MAX_STEMS]` directly in `ExecutionWitness`.
2024-05-28 16:24:11 +08:00
Alex Stokes ce3931653d
Add EIP-7251 to Electra fork 2024-04-15 19:37:49 -06:00
Hsiao-Wei Wang 9edfb29e2c
fix conflict 2024-04-09 14:13:44 +08:00
Hsiao-Wei Wang 94a0b6c581
Merge branch 'dev' into pr3653 2024-04-09 12:55:56 +09:00
Alex Stokes e4068b5391
Merge EIP-7549 into Electra 2024-04-05 13:56:57 -06:00
Hsiao-Wei Wang 55c81e7fa1
Merge EIP7002 into Electra 2024-04-05 11:36:49 -06:00
Hsiao-Wei Wang d2c69fe3cf
Rename EIP6110 to Electra 2024-04-05 10:53:42 -06:00
Hsiao-Wei Wang cd91c04066
Merge branch 'dev' into init-electra 2024-04-04 22:49:53 +09:00
Mikhail Kalinin a127bbf0c6
Merge branch 'dev' into eip-7251 2024-03-20 14:46:43 +06:00
dapplion 668e447c55 Add EIP-7251 spec
Co-authored-by: fradamt <104826920+fradamt@users.noreply.github.com>
2024-03-08 12:37:35 +08:00
Hsiao-Wei Wang 03c23c6fb1
make it executable for basic linter checks & fix errors 2024-03-06 23:24:21 +08:00
Hsiao-Wei Wang ec9bbfa2ea
Merge EIP7002 into Electra 2024-03-06 14:23:23 +08:00
Hsiao-Wei Wang 6ffd27bd60
Rename EIP6110 to Electra 2024-03-06 13:38:49 +08:00
Hsiao-Wei Wang b7d9ea9a75
Rename `peerdas` to `eip7594` 2024-01-14 00:13:08 +08:00
Hsiao-Wei Wang 7f8858b2ac
Add `PeerDAS` feature 2024-01-05 18:43:37 +08:00
Parithosh Jayanthi e52594634c
WIP: Update dockerisation (#3477)
* 🐳 add Dockerfile and dockerfile based script for consensus-spec tests
2024-01-04 17:09:06 +01:00
Hsiao-Wei Wang 7b771ccb13
Merge branch 'dev' into eip7002 2023-06-26 18:07:48 +08:00
djrtwo ecefe2d147 pr review 2023-06-20 15:50:20 -06:00
djrtwo 559b89c447 Merge branch 'dev' into att-slot-range 2023-06-14 09:35:30 -06:00
Hsiao-Wei Wang 19edc2d1ec
Merge branch 'dev' into eip7002 2023-06-13 19:35:02 +08:00
Lion - dapplion 241e52a202
Whisk (SSLE) with Curdleproofs - rebased (#3342)
* Introduce consensus code for Whisk

* polish, simplify, clean up (~100 fewer lines)

@asn-d6: As discussed, I fixed a few bugs along the way but likely also introduced some bugs :)

* minor cleanups and fixes

* simplify is_k_commitment_unique

* Update beacon-chain.md

* Update beacon-chain.md

* Initialize `k` in `get_validator_from_deposit()`

* minor cleanups

* Update beacon-chain.md

* Create beacon-chain.md

This PR changes the Whisk tracker format to be of the form `(r * pubkey, r * BLS_GT_GENERATOR)` instead of `(r * k * BLS_G1_GENERATOR, r * BLS_G1_GENERATOR)`. This allows for non-interactive tracker registrations from validator pubkeys, removing ~50 lines the code. It also significantly reduces the amount of state overhead. This PR also removes permutation commitments, though those can be easily readded if deemed necessary.

* A couple of fixes to the no-registration simplification

@asn-d6: Readded a consistency check for `IsValidWhiskOpeningProof` (involving `pubkey` instead of `k_commitment`).

* remove unused helpers

* use Mary's suggested tracker

* Update beacon-chain.md

* Revert G_t element optimization

This needs its own ethresearch post, and some additional analysis to see if we can do the shuffle ZKP in the allowed
timeframe.

This reverts commit 8517acabfc1dbb1a35789e6170b5db0bb2c19c9a.

* Implement new shuffling strategy

Ditch the Feistel logic and instead have each shuffler pick the row they shuffle using their RANDAO reveal.

* Curdleproofs edits

* working whisk eth2spec

* working whisk dummy test

* add more boilerplate set up code

* rebase constants

* Implement even newer and simplified shuffling strategy

This commit further simplifies 0faef30fc131d1b471b63a7f16772eeeef548ef8 by removing the entire squareshuffle.

The latest version of https://eprint.iacr.org/2022/560 proposes that each shuffler picks random indices from the entire
candidate set instead of organizing validators into a square.

* Move to _features

* remove dummy test

* Run doctoc

* Change Whisk's previous fork to Capella instead of Bellatrix. Make linter happier.

* Fix lint

* Fix pylint

* Fix mypy issues

* Clean-up get_beacon_proposer_index

* Fix doc headers

* Fix capella link

* Update apply_deposit

* Rename process_shuffled_trackers

---------

Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Justin <drakefjustin@gmail.com>
Co-authored-by: Nalin Bhardwaj <nalinbhardwaj@nibnalin.me>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2023-06-08 15:35:03 +08:00
djrtwo 6679b8a1ae attslotrange -> eip-7045 2023-05-18 10:49:57 -06:00
djrtwo 3e2d9a755a disable some attestation tests for attslotrange 2023-05-15 11:57:13 -06:00
djrtwo bce45c5671 working through att slot range fix 2023-05-15 11:35:29 -06:00
Hsiao-Wei Wang b8e77c5486
Add EIP-7002 feature spec 2023-05-10 02:46:51 +08:00
Hsiao-Wei Wang 21d4370fd5
Add docs about how to add a new feature proposal in consensus-specs and online viewer support (#3239)
* Add docs

* update link to template

* Add more info

* Try mkdocs

* Create docs.yml

* Update docs.yml

* update

* update

* update

* Try mkdocs

* Add "B: Make it executable for pytest and test generator" section

* Use mkdocs-material

* Use `mkdocs-awesome-pages-plugin` to create custom specs order

* Add toc permalink

* Update site_url

* Add .pages files for navigations. Update highlight style

* Dark theme

* Fix list indent
2023-04-18 18:31:34 +08:00
Hsiao-Wei Wang a1daac098c
Make EIP-6110 executable and fix linter errors 2023-02-23 22:34:32 +08:00
Paul Harris 317facbd64 Replaced EIP4844 references with Deneb
Fixes #3207
2023-01-23 15:08:34 +01: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
Hsiao-Wei Wang 171a9ccc81
Resolve conflicts 2021-12-27 18:30:12 +08:00
Hsiao-Wei Wang 8facc0a095
Merge -> Bellatrix 2021-12-23 14:25:43 +08:00
Danny Ryan b7308e0953
remove capella built files 2021-12-01 11:43:32 -07:00
Hsiao-Wei Wang 3be3643bcb
Rename `eth2.0-spec-tests` to `consensus-spec-tests` 2021-08-19 20:09:15 +08:00
protolambda 8148c427b0
ignore tmp files from TOC tool 2021-05-18 09:33:07 +02:00
Danny Ryan af9ea0efb6
Merge branch 'dev' into merge-exe 2021-04-09 07:21:51 -05:00
protolambda 07b7774241
misc. phase1 modules refactor updates 2021-03-30 01:46:02 +02:00
Hsiao-Wei Wang b44e576e95
LIGHTCLIENT_PATCH/HF1 -> ALTAIR 2021-03-11 21:32:00 +08:00
Hsiao-Wei Wang acfe49e3f3
executable light client patch: beacon-chain.md (#2141)
* Bump remerkleable to 0.1.18

* Disable `sync-protocol.md` for now. Make linter pass

* Enable lightclient tests

* Use *new* `optional_fast_aggregate_verify`

* Fix ToC and codespell

* Do not run phase1 tests with Lightclient patch

* Fix the Eth1Data casting bug. Add a workaround.

* Fix `run_on_attestation` testing helper

* Revert

* Rename `optional_fast_aggregate_verify` to `eth2_fast_aggregate_verify`

* Apply Proto's suggestion

* Apply Danny's suggestion

* Fixing tests

* Fix after rebasing

* Rename `LIGHTCLIENT` -> `LIGHTCLIENT_PATCH`

* New doctoc

* Add lightclient patch configs

* fix gitignore light client patch generator output

* Upgrade state for light client patch

* Add `lightclient-fork.md` to deal the fork boundary and fix
`process_block_header`

* Misc cleanups

1) Add a summary note for every function that is changed.
2) Avoid changing `process_block` (instead only change `process_block_header`).
3) Rename `G2_INFINITY_POINT_SIG` to `G2_POINT_AT_INFINITY` to avoid `SIG` contraction.
4) Misc cleanups

* Update block.py

* Update beacon-chain.md

* Fix typo "minimal" -> "mainnet"

Co-authored-by: Marin Petrunić <mpetrunic@users.noreply.github.com>

* Use the new `BeaconBlockHeader` instead of phase 0 version

* Update config files

* Move `sync_committee_bits` and `sync_committee_signature` back to `BeaconBlockBody`

Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Justin <drakefjustin@gmail.com>
Co-authored-by: Marin Petrunić <mpetrunic@users.noreply.github.com>
2020-12-15 13:18:20 +08:00
Hsiao-Wei Wang 4df3547edf
Make `lightclient` patch pass the linter (#2133)
* Make `lightclient` an executable patch fork

* fix conflicts

* Fix ToC

* Lightclient -> Light client

* Try protolambda/remerkleable#8

* Fix sync-protocol.md ToC

* Build lightclient/sync-protocol

* Fix typo

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

Co-authored-by: vbuterin <v@buterin.com>
2020-11-17 10:41:26 +08:00
Danny Ryan ace46c38a7
revert local config settings from .gitignore 2020-06-16 15:34:01 -06:00
Dankrad Feist 113563176a
Updated .gitignore 2020-06-16 14:36:12 +01:00
protolambda 675d404c38
Package eth2spec for tooling and experimentation
See tests/core/pyspec/README.md for usage description.

This commit:
- refactors config loading to be part of the pyspec package
- updates requirements and main files to use new config loading
- cleans up the build script
- converts the build script to a distutil command
- runs pyspec build as part of build package command
- provides pyspecdev command to get editable spec python files
2020-01-25 01:57:11 +01:00
protolambda d9f62f9303
Remerkleable - merkle tree based ssz for better and faster spec 2020-01-25 00:43:43 +01:00
Danny Ryan 676e216beb
reorg specs by fork and move ssz out to own folder. make all of the build and link changes to support move 2020-01-10 11:55:13 -07:00
protolambda f0e909c8d8
add mypy cache to gitignore 2019-06-18 21:54:00 +02:00
protolambda 1c51982c6b
generate coverage reports in make test, open as html site 2019-06-14 23:12:04 +02:00
Carl Beekhuizen b1711b4ff1
Implements parameterised phase1 tests 2019-05-16 12:10:08 +02:00
Danny Ryan 451c28342a
Revert "Only use `setup.py`" 2019-04-24 11:59:13 -06:00
Hsiao-Wei Wang 5437273e23
Update `packages` 2019-04-24 17:18:52 +08:00
Hsiao-Wei Wang 0fc31e3e7d
Update .gitignore 2019-04-24 17:18:52 +08:00