-
Notifications
You must be signed in to change notification settings - Fork 303
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
verkle trees: add 2 fields to ExecutionPayload #6346
Comments
hmm, I'm not sure I have enough info to actually implement this. For execution payloads specifically we'd also need to know if these new fields are present on |
Thank you for the feedback.
1. Both lists are arbitraty-length, but limiting them to a maximum of 75K
each for now should be fine.
2. It should indeed be the empty list by default.
3. it can be hashed in the header, because without transactions, the
proof is of limited use
Thanks
Guillaume
…On Mon, 31 Oct 2022, 06:42 Adrian Sutton, ***@***.***> wrote:
hmm, I'm not sure I have enough info to actually implement this.
ExecutionPayload is an SSZ object so there's no way to add an optional
field - there hasn't be some default value (for a list or array that's
usually just the empty list), and there has to be a maximum length on every
type.
For execution payloads specifically we'd also need to know if these new
fields are present on ExecutionPayloadHeader as well or if they're
replaced with the hash tree root like transactions is.
—
Reply to this email directly, view it on GitHub
<#6346 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAY7ANU3KD4QPNKGKIMZHWDWF5L4VANCNFSM6AAAAAARQEK57A>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
I've put up master...ajsutton:teku:verkle-trees which has this added in. There's nothing to test it with so hard to know if there's something I've missed though. I wound up including the full verkle proof and verkle key val values in the To make this fit within SSZ the two new fields wind up being defined as:
Notably the |
@ajsutton thank you for this, there is now a branch to test: gballet/go-ethereum#136. We will add your branch to our tests when they are ready and come back with more feedback. Incidentally, there has been a proposal for the SSZ encoding a few months ago: https://notes.ethereum.org/Si5tEWlMTYerkhG3fOIAMQ It hasn't been used so far because it requires the post-state, which isn't really practical to provide. The other problem is that it uses |
Spec PR |
All the code is on a branch, waiting until it is time to merge it into master. |
Description
With the verge, proofs and witness of the pre-state of an (EL) block execution are included in the blocks. In order to build a PoS testnet that provides proofs in blocks, it would be great if it were possible to create a branch with the required fields to be added to the
ExecutionPayload
.The
ExecutionPayload
needs to have two more, optional fields:VerkleProof
, a byte array of variable lengthVerkleKeyVals
, an array of (key, value) pairs, in which the key is a 32-byte vector, and value is a byte vector of length either 0 (missing value) or 32.At the moment, there is no need to support forking as for this testnet, verkle trees are used since the genesis.
If present, these two fields should be propagated over the network with the rest of the
ExecutionPayload
so that other clients can inject these fields in their verkle-enabled EL.The text was updated successfully, but these errors were encountered: