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

Support multiple Rust runners #4

Open
maxgillett opened this issue Jun 1, 2022 · 3 comments
Open

Support multiple Rust runners #4

maxgillett opened this issue Jun 1, 2022 · 3 comments

Comments

@maxgillett
Copy link
Owner

The current runner is based on an implementation by O(1) labs, and in particular is lacking Python hint support. It would be nice to integrate Cleopatra and/or Oriac (two other Rust runners that plan to support hints) once they are complete.

@frisitano
Copy link

I'm happy to pick this up. Cleopatra looks most mature out of the two. Do you agree it is the better choice?

@maxgillett
Copy link
Owner Author

Hey @frisitano, thanks for volunteering! Cleopatra seems to be the more mature runner at the moment with a significant amount of hint support and a lot of active developers. Following the discussion in #1 (comment), however, it might be best to remain modular and not fully integrate it into Giza. One question is whether we can use components of Cleopatra (or alter the current runner code in Giza) to more quickly construct the full execution trace needed for proof generation, as this is still quite slow for large traces. Would you be willing to look into that?

@frisitano
Copy link

frisitano commented Aug 22, 2022

I agree with the philosophy of keeping things modular and maintaining that giza has the single responsibility of proving cairo execution traces. However, I also see the value in having a unified cli that allows users to both generate and prove execution traces. One way I believe this can be achieved is using feature flags that trigger optional dependencies / code. For example, say a user wanted to include the cleopatra runner in the cli they could build with --feature cleopatra. This pattern could work with any number of runners including the o1 labs fork. I would then suggest to introduce an additional cli method for generating an execution trace e.g. giza execute --program program.json --input input.json --runner cleopatra --trace-file trace.bin --memory-file .... These outputs would then be fed as inputs to the giza prove ... command.

On a more general note what is the rationale behind maintaining and extending the o1 labs fork runner?

Repository owner deleted a comment from leocsilva Mar 4, 2024
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

No branches or pull requests

6 participants
@maxgillett @frisitano and others