Add experimental witness-generator-spec-cli#290
Draft
jsign wants to merge 1 commit into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a new experimental
witness-generator-spec-cliwhich builds guest program input for live networks using the spec format.Notes:
witness-generator{-cli}stuff to not mix existing stuff. I think at some point they can be merged, or probably replace the old one, since ideally we should stop using the old format.stateless-validator-commonas possible. Still, some were missing and have now been added inschema.rs. Not sure where this will live eventually -- we could move theschema.rsstuff toere-guestseventually so bothworkloadandzkboostcan leverage them as a neutral definition of things.Regarding the last bullet, I think my goal is to have super-simple code for stateless input generation. Using EL-only RPC means having to do some gymnastics that we already suffered in
ere-guestsreg having to re-execute statelessly to get some fields (e.g.requests).I think I would prefer to avoid all those complex things for two reasons:
The current implementation is super simple, mainly does JSON-RPC calls, which usually 1:1 map into our neutral structs, the only exceptions are:
StatelessInputs.public_keys, since it is a field invented for stateless guests and not part of RPCsversioned_hashesaren't part of CL RPC. From what I've seen, kzg blobs commitments aren't part of CL RPC in Gloas, which looks a bit surprising to me. I would like to dig a bit more into whether there was a reason for this, since in Osaka RPC I think they were returned.For both cases, we deserialise the RLP transactions and derive both things, which is quite simple anyway.
Next steps are I'm waiting for
glamsterdam-devnet-4to be healthy, and would like to test this out in that devnet. If this works correctly, we could incorporate this experiment more intoworkloadto generate live network spec guest inputs for live networks (prob only Glamsterdam devnets).