[WIP] pickles async circuits
!ci-build-me
A few things remain to address:
- [x] Failing Rosetta intg test because of the
block_on_async_exnincreate_trivial_snapp - [x] JS only works when this console log is added, I don't know why
- [x] Commented out
log_stepandlog_wrap - [x] How does this PR affect error feedback on constraint failures and similar errors?
EDIT - answer: even though snarky is left with a half-finished circuit state on such failures, the way we use it doesn't seem to be affected by that (but see https://github.com/o1-labs/snarky/pull/836#pullrequestreview-1903811416). the restrictions in how pickles can be used after this PR are more worrying
!ci-build-me
!ci-build-me
!ci-build-me
Note: Some of the test failures and their fixes suggest that this PR adds some brittleness to Pickles because it's no longer possible to await the results of two different compiled instances concurrently. While we take care to run circuits sequentially within one compile call, we don't ensure this across all compile calls. The error messages in these cases are also very unhelpful, e.g. seemingly random constraint failures.
EDIT: see also https://github.com/MinaProtocol/mina/pull/15084/commits/b5e4eccc6fe1a4094a6a209d98d57bce249d72f5
!ci-build-me
Tested and working in o1js here: https://github.com/o1-labs/o1js/pull/1450
Heads up @mrmr1993 - this seems to change all verification keys https://github.com/o1-labs/o1js/pull/1450/files#diff-d157735e3d120da8877dad8c85ce828fb388beae8a3080dfaf4654694ab43feb
!ci-build-me
!ci-build-me
!ci-build-me