-
Notifications
You must be signed in to change notification settings - Fork 145
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
Async circuits, pt. 1 - async circuit runners #1450
Conversation
…orking for a while)
"methods": { | ||
"addEntry": { | ||
"rows": 1317, | ||
"digest": "86c4cb3e10764e94741e23cce1342192" | ||
"rows": 5530, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wtf happened here??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wow :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it turns out that 298c4bd fixed a major bug - previously, reduce()
thought there are no actions emitted in any method if the only method that emitted actions called reduce()
itself
The new constraint count is the correct one 😅
The last commit b47224f addressed the weird reduction by one constraint for many of our circuits |
@@ -101,6 +101,8 @@ function get<C>(t: Context.t<C>): C { | |||
return current.context; | |||
} | |||
|
|||
// FIXME there are many common scenarios where this error occurs, which weren't expected when this was written |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 also encountered them recently
Just wanted to share that this massively improves our "witness generation" benchmark. The reason is that this witness generation step no longer maintains and updates a constraint system (it really doesn't need to). I'm also expecting big improvements in uncached compilation since we run the circuit fewer times.
|
Starts to address MinaFoundation/Core-Grants#4
This is the first step of supporting async circuits. It does not yet support async methods in contracts / zkprogram, but brings significant internal changes towards that support:
constraintSystem()
andrunAndCheck()
-- to be async, and support async callbacks in them. This is a necessary step because we run contract methods through these runnersbindings: o1-labs/o1js-bindings#248
mina: MinaProtocol/mina#15084
snarky: o1-labs/snarky#836