Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kintsugi 🍵 #2768

Merged
merged 46 commits into from
Dec 2, 2021
Merged

Kintsugi 🍵 #2768

merged 46 commits into from
Dec 2, 2021

Conversation

paulhauner
Copy link
Member

@paulhauner paulhauner commented Nov 3, 2021

Description

This is the canonical branch for the Kintsugi testnet.

For instructions on running the Kintsugi testnet, see #2830.

This PR contains the changes required for Lighthouse to run "the merge" specifications. It does not deliver a production-ready implementation of "the merge" for Lighthouse, instead it provides the necessary components for Lighthouse to run on testnets and progress towards a production implementation.

Where this PR touches code that will run on the pre-merge (i.e., current) Beacon Chain, any changes should be production ready. For post-merge components (e.g., execution_layer), some degree of unfinished-ness is acceptable. After all, "the merge" specification is not yet complete.

TODO

This section lists tasks required before this branch can be merged into unstable.

N/A

@paulhauner paulhauner changed the base branch from stable to unstable November 3, 2021 04:57
@paulhauner paulhauner mentioned this pull request Nov 3, 2021
7 tasks
@realbigsean
Copy link
Member

Upgrade to v1.1.4 spec tests, fixing any consensus changes.

I can work on this

@paulhauner
Copy link
Member Author

paulhauner commented Nov 11, 2021

I just rebased this branch onto unstable. It will fail CI until I push another fix (#2799).

@paulhauner
Copy link
Member Author

paulhauner commented Nov 28, 2021

I just rebased to fix a conflict with unstable and to fix a merge (instead of squash-merge) of #2796.

This will fail CI until we merge #2829.

@michaelsproul michaelsproul added the backwards-incompat Backwards-incompatible API change label Nov 28, 2021
@paulhauner paulhauner mentioned this pull request Nov 28, 2021
12 tasks
Copy link
Member

@michaelsproul michaelsproul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have reviewed the ./consensus changes thoroughly and I'm happy to merge this to unstable.

Makefile Outdated Show resolved Hide resolved
beacon_node/beacon_chain/src/beacon_chain.rs Show resolved Hide resolved
consensus/proto_array/src/proto_array_fork_choice.rs Outdated Show resolved Hide resolved
consensus/proto_array/src/ssz_container.rs Outdated Show resolved Hide resolved
consensus/types/Cargo.toml Outdated Show resolved Hide resolved
beacon_node/src/config.rs Outdated Show resolved Hide resolved
beacon_node/src/config.rs Outdated Show resolved Hide resolved
Copy link
Collaborator

@divagant-martian divagant-martian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked ./lighthouse_network and ./network. it looks good to me

beacon_node/lighthouse_network/src/rpc/codec/ssz_snappy.rs Outdated Show resolved Hide resolved
beacon_node/lighthouse_network/src/rpc/codec/ssz_snappy.rs Outdated Show resolved Hide resolved
beacon_node/lighthouse_network/src/rpc/codec/ssz_snappy.rs Outdated Show resolved Hide resolved
beacon_node/lighthouse_network/src/rpc/protocol.rs Outdated Show resolved Hide resolved
ethDreamer and others added 5 commits December 2, 2021 14:26
Added Execution Payload from Rayonism Fork

Updated new Containers to match Merge Spec

Updated BeaconBlockBody for Merge Spec

Completed updating BeaconState and BeaconBlockBody

Modified ExecutionPayload<T> to use Transaction<T>

Mostly Finished Changes for beacon-chain.md

Added some things for fork-choice.md

Update to match new fork-choice.md/fork.md changes

ran cargo fmt

Added Missing Pieces in eth2_libp2p for Merge

fix ef test

Various Changes to Conform Closer to Merge Spec
* Update to v1.1.0-beta.4 (squash of #2548)

* SSZ, cached tree hash, EF tests
* Remove unchecked arith from ssz_derive

* Address clippy lints in block_verfication

* Use safe math for is_valid_gas_limit
pawanjay176 and others added 24 commits December 2, 2021 14:26
* Add payload verification status to fork choice

* Pass payload verification status to import_block

* Add valid back-propagation

* Add head safety status latch to API

* Remove ExecutionLayerStatus

* Add execution info to client notifier

* Update notifier logs

* Change use of "hash" to refer to beacon block

* Shutdown on invalid finalized block

* Tidy, add comments

* Fix failing FC tests

* Allow blocks with unsafe head

* Fix forkchoiceUpdate call on startup
* update initializing from eth1 for merge genesis

* read execution payload header from file lcli

* add `create-payload-header` command to `lcli`

* fix base fee parsing

* Apply suggestions from code review

* default `execution_payload_header` bool to false when deserializing `meta.yml` in EF tests

Co-authored-by: Paul Hauner <paul@paulhauner.com>
* Freshen Cargo.lock

* Fix gossip worker

* Update map_fork_name_with
* Fix arbitrary check kintsugi

* Add merge chain spec fields, and a function to determine which constant to use based on the state variant

* increment spec test version

* Remove `Transaction` enum wrapper

* Remove Transaction new-type

* Remove gas validations

* Add `--terminal-block-hash-epoch-override` flag

* Increment spec tests version to 1.1.5

* Remove extraneous gossip verification ethereum/consensus-specs#2687

* - Remove unused Error variants
- Require both "terminal-block-hash-epoch-override" and "terminal-block-hash-override" when either flag is used

* - Remove a couple more unused Error variants

Co-authored-by: Paul Hauner <paul@paulhauner.com>
* Change base_fee_per_gas to Uint256

* Add custom (de)serialization to ExecutionPayload

* Fix errors

* Add a quoted_u256 module

* Remove unused function

* lint

* Add test

* Remove extra line

Co-authored-by: Paul Hauner <paul@paulhauner.com>
* Fix fork choice after rebase

* Remove paulhauner warp dep

* Fix fork choice test compile errors

* Assume fork choice payloads are valid

* Add comment

* Ignore new tests

* Fix error in test skipping
* Allocate less memory (3GB) in engine tests

* Run cargo format

* Remove tx too large test

Co-authored-by: Michael Sproul <michael@sigmaprime.io>
* Added ForkchoiceUpdatedV1 & GetPayloadV1

* Added ExecutePayloadV1

* Added new geth test vectors

* Separated Json Object/Serialization Code into file

* Deleted code/tests for Requests Removed from spec

* Finally fixed serialization of null '0x'

* Made Naming of JSON Structs Consistent

* Fix clippy lints

* Remove u64 payload id

* Remove unused serde impls

* Swap to [u8; 8] for payload id

* Tidy

* Adjust some block gen return vals

* Tidy

* Add fallback when payload id is unknown

* Remove comment

Co-authored-by: Mark Mackey <mark@sigmaprime.io>
* Unify loading of eth2_network_config

* Apply overrides at lighthouse binary level

* Remove duplicate override values

* Add merge values to existing net configs

* Make override flags global

* Add merge fields to testing config

* Add one to TTD

* Fix failing engine tests

* Fix test compile error

* Remove TTD flags

* Move get_eth2_network_config

* Fix warn

* Address review comments
Fix max packet sizes

Fix max_payload_size function

Add merge block test

Fix max size calculation; fix up test

Clear comments

Add a payload_size_function

Use safe arith for payload calculation

Return an error if block too big in block production

Separate test to check if block is over limit
* Start v1.1.5 updates

* Implement new payload creation logic

* Tidy, add comments

* Remove unused error enums

* Add validate payload for gossip

* Refactor validate_merge_block

* Split payload verification in per block processing

* Add execute_payload

* Tidy

* Tidy

* Start working on new fork choice tests

* Fix failing merge block test

* Skip block_lookup_failed test

* Fix failing terminal block test

* Fixes from self-review

* Address review comments
* Fix makefile

* Return on invalid finalized block

* Fix todo in gossip scoring

* Require --merge for --fee-recipient

* Bump eth2_serde_utils

* Change schema versions

* Swap hash/uint256 test_random impls

* Use default for ExecutionPayload::empty

* Check for DBs before removing

* Remove kintsugi docker image

* Fix CLI default value
* Remove TODOs

* Fix typo
@paulhauner
Copy link
Member Author

I've just rebased to fix a merge conflict.

@paulhauner paulhauner merged commit f3c237c into unstable Dec 2, 2021
@paulhauner paulhauner deleted the kintsugi branch December 2, 2021 05:51
@paulhauner paulhauner restored the kintsugi branch December 2, 2021 05:52
@AgeManning AgeManning deleted the kintsugi branch January 20, 2022 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backwards-incompat Backwards-incompatible API change kintsugi 🍵
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants