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

fusaka light client: implement Ssz and Log EIPs to enable merkle proof generation and validation #3756

Draft
wants to merge 22 commits into
base: master
Choose a base branch
from

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Oct 21, 2024

superseding #3452 because of branch rename to a more appropriate one

WIP

Fusaka light client
Work

doesn't include 7702 support, EL p2p still stays RLP which also implies that 6493 ssz txs out of scope. so for beacon payload, it shifts to the ssz stablecontainer format for txs, as well as the roots shift to ssz HTR

Note

  1. please note that a dummy hardfork eip6493 has been added for ease of development testing and devnet creation and is scheduled at the praugeTime itself so that will be cleaned up later when the work will become mergable
  2. some parts of the code will be cleaned up/optimized later

g11tech added 18 commits October 9, 2024 17:32
debug and fix the legacy ssz encoding decoding

add a spec test for legacy ssz encoding decoding

add the ssztx boilerplate to other tx types

implement sszRaw value for 2930 tx

add 2930 spec test and debug/fix ssz encoding/decoding

add the ssz encoding decoding to 1559 tx

add eip 1559 testcase and get it working

add 4844 ssz encoding decoding

add eip 4844 testcase and get it working

define block transactions ssz type and test ssz transactionsRoot

handle ssz roots for transactions and withdrawals in block when 6493 activated

handle the roots gen in the build block

fix the transaction stable container

update the execution payload serialization deserialization for 6493

add 6493 hardfork for the testing/devnet

refactor the transaction factory ssz tx deserialization

add ssz profile<>stablecontaiber conversion spec test

add eip6493 support to common

debug and fix the block transaction withdrawal root comparision by removing null keccak hash hardcoding

enhance eip6493 tx test by testing transaction factory deserialization which uses stable container

add client eip6493 end to end spec and fix the payload generation

refactor tx serialization deserializion with respect to execution/beacon payload

add, debug and fix the transactionv1 or hex transactions validator and debug/fix the newpayloadeip6493 spec test

add 6493 to electra for kurtosis testing

console log error for debugging

console log error for debugging

txpool fix attempt

add more descriptive checks for nulloroptional

add more descriptive checks for nulloroptional

log full error

debug and fix handling of replay vs legacy tx w.r.t. v/ypartity and confirm via spec test

build fix

dev and add transaction inclusion proof to the getTransactionX apis

workaround to get the proof since stable container impl for proof seems buggy and breaking

refactor the proof format based on feedback

debug, discuss and fix the signature packing scheme

add hack to schedule 6493 on prague in cli for stablecontainer devnets

debug and fix newpayload eip6493 spec

debug rebase and spec fixes in tx utils

debug and fix block build

fix the vm build

debug and get 6493 end to end client spec working

rebase 4844 fixes

add ssz blockheader type and update the blockhash to use when ssz activated

debug and update client spec with ssz blockhash

update ssz field to receiptstrie

updates after discussion with etan

update test
…and add log proofing capabilities by multiple filters
Copy link

codecov bot commented Oct 21, 2024

Codecov Report

Attention: Patch coverage is 34.41296% with 162 lines in your changes missing coverage. Please review.

Project coverage is 37.72%. Comparing base (4470cc3) to head (e2bf0bc).
Report is 105 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

Flag Coverage Δ
block ?
blockchain 83.50% <ø> (?)
client ?
common 89.90% <100.00%> (?)
devp2p 0.00% <ø> (?)
evm 65.22% <100.00%> (?)
genesis 0.00% <ø> (?)
mpt 51.83% <ø> (?)
statemanager 67.41% <ø> (?)
tx ?
vm 55.38% <31.35%> (?)
wallet 0.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant