diff --git a/Cargo.lock b/Cargo.lock index 33476e9fad..321e4b231a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4410,36 +4410,36 @@ dependencies = [ [[package]] name = "openvm" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "bytemuck", + "getrandom 0.2.16", + "getrandom 0.3.3", "num-bigint 0.4.6", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1)", - "openvm-platform 1.2.1-rc.0", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "serde", ] [[package]] name = "openvm" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "bytemuck", - "getrandom 0.2.16", - "getrandom 0.3.3", "num-bigint 0.4.6", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", - "openvm-platform 1.3.0", - "openvm-rv32im-guest 1.3.0", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "serde", ] [[package]] name = "openvm-algebra-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -4467,10 +4467,10 @@ dependencies = [ [[package]] name = "openvm-algebra-complex-macros" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-macros-common 1.2.1-rc.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "quote", "syn 2.0.101", ] @@ -4478,25 +4478,25 @@ dependencies = [ [[package]] name = "openvm-algebra-complex-macros" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ - "openvm-macros-common 1.3.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "quote", "syn 2.0.101", ] [[package]] name = "openvm-algebra-guest" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "halo2curves-axiom", "num-bigint 0.4.6", "once_cell", - "openvm-algebra-complex-macros 1.2.1-rc.0", - "openvm-algebra-moduli-macros 1.2.1-rc.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1)", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm-algebra-complex-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-moduli-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "serde-big-array", "strum_macros 0.26.4", ] @@ -4504,27 +4504,27 @@ dependencies = [ [[package]] name = "openvm-algebra-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "halo2curves-axiom", "num-bigint 0.4.6", "once_cell", - "openvm-algebra-complex-macros 1.3.0", - "openvm-algebra-moduli-macros 1.3.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", - "openvm-rv32im-guest 1.3.0", + "openvm-algebra-complex-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-algebra-moduli-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "serde-big-array", "strum_macros 0.26.4", ] [[package]] name = "openvm-algebra-moduli-macros" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "num-bigint 0.4.6", "num-prime", - "openvm-macros-common 1.2.1-rc.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "quote", "syn 2.0.101", ] @@ -4532,21 +4532,21 @@ dependencies = [ [[package]] name = "openvm-algebra-moduli-macros" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "num-bigint 0.4.6", "num-prime", - "openvm-macros-common 1.3.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "quote", "syn 2.0.101", ] [[package]] name = "openvm-algebra-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ - "openvm-algebra-guest 1.2.1-rc.0", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-instructions", "openvm-instructions-derive", "openvm-stark-backend", @@ -4557,8 +4557,8 @@ dependencies = [ [[package]] name = "openvm-bigint-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -4579,17 +4579,17 @@ dependencies = [ [[package]] name = "openvm-bigint-guest" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "strum_macros 0.26.4", ] [[package]] name = "openvm-bigint-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "openvm-bigint-guest", "openvm-instructions", @@ -4603,20 +4603,20 @@ dependencies = [ [[package]] name = "openvm-build" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "cargo_metadata", "eyre", - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "serde", "serde_json", ] [[package]] name = "openvm-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "backtrace", "cfg-if", @@ -4646,8 +4646,8 @@ dependencies = [ [[package]] name = "openvm-circuit-derive" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "itertools 0.14.0", "quote", @@ -4656,8 +4656,8 @@ dependencies = [ [[package]] name = "openvm-circuit-primitives" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "itertools 0.14.0", @@ -4671,8 +4671,8 @@ dependencies = [ [[package]] name = "openvm-circuit-primitives-derive" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "itertools 0.14.0", "quote", @@ -4681,8 +4681,8 @@ dependencies = [ [[package]] name = "openvm-continuations" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derivative", "openvm-circuit", @@ -4697,7 +4697,7 @@ dependencies = [ [[package]] name = "openvm-custom-insn" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "proc-macro2", "quote", @@ -4707,7 +4707,7 @@ dependencies = [ [[package]] name = "openvm-custom-insn" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "proc-macro2", "quote", @@ -4716,16 +4716,14 @@ dependencies = [ [[package]] name = "openvm-ecc-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", - "eyre", "hex-literal", "lazy_static", "num-bigint 0.4.6", - "num-integer", "num-traits", "once_cell", "openvm-algebra-circuit", @@ -4746,19 +4744,19 @@ dependencies = [ [[package]] name = "openvm-ecc-guest" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "ecdsa", "elliptic-curve", "group 0.13.0", "halo2curves-axiom", "once_cell", - "openvm 1.2.1-rc.0", - "openvm-algebra-guest 1.2.1-rc.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1)", - "openvm-ecc-sw-macros 1.2.1-rc.0", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-sw-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "serde", "strum_macros 0.26.4", ] @@ -4766,28 +4764,28 @@ dependencies = [ [[package]] name = "openvm-ecc-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "ecdsa", "elliptic-curve", "group 0.13.0", "halo2curves-axiom", "once_cell", - "openvm 1.3.0", - "openvm-algebra-guest 1.3.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", - "openvm-ecc-sw-macros 1.3.0", - "openvm-rv32im-guest 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-ecc-sw-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "serde", "strum_macros 0.26.4", ] [[package]] name = "openvm-ecc-sw-macros" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-macros-common 1.2.1-rc.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "quote", "syn 2.0.101", ] @@ -4795,19 +4793,19 @@ dependencies = [ [[package]] name = "openvm-ecc-sw-macros" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ - "openvm-macros-common 1.3.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "quote", "syn 2.0.101", ] [[package]] name = "openvm-ecc-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ - "openvm-ecc-guest 1.2.1-rc.0", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-instructions", "openvm-instructions-derive", "openvm-stark-backend", @@ -4818,8 +4816,8 @@ dependencies = [ [[package]] name = "openvm-instructions" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "backtrace", "derive-new 0.6.0", @@ -4835,8 +4833,8 @@ dependencies = [ [[package]] name = "openvm-instructions-derive" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "quote", "syn 2.0.101", @@ -4844,8 +4842,8 @@ dependencies = [ [[package]] name = "openvm-keccak256-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -4870,16 +4868,16 @@ dependencies = [ [[package]] name = "openvm-keccak256-guest" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", ] [[package]] name = "openvm-keccak256-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "openvm-instructions", "openvm-instructions-derive", @@ -4892,8 +4890,8 @@ dependencies = [ [[package]] name = "openvm-macros-common" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "syn 2.0.101", ] @@ -4901,15 +4899,15 @@ dependencies = [ [[package]] name = "openvm-macros-common" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "syn 2.0.101", ] [[package]] name = "openvm-mod-circuit-builder" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "itertools 0.14.0", "num-bigint 0.4.6", @@ -4927,8 +4925,8 @@ dependencies = [ [[package]] name = "openvm-native-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -4954,8 +4952,8 @@ dependencies = [ [[package]] name = "openvm-native-compiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "backtrace", "itertools 0.14.0", @@ -4978,8 +4976,8 @@ dependencies = [ [[package]] name = "openvm-native-compiler-derive" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "quote", "syn 2.0.101", @@ -4987,8 +4985,8 @@ dependencies = [ [[package]] name = "openvm-native-recursion" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "cfg-if", "itertools 0.14.0", @@ -5015,8 +5013,8 @@ dependencies = [ [[package]] name = "openvm-native-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "openvm-instructions", "openvm-transpiler", @@ -5034,24 +5032,24 @@ dependencies = [ "itertools 0.14.0", "num-bigint 0.4.6", "num-traits", - "openvm 1.3.0", - "openvm-algebra-complex-macros 1.3.0", - "openvm-algebra-guest 1.3.0", - "openvm-algebra-moduli-macros 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-complex-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-moduli-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", - "openvm-ecc-guest 1.3.0", - "openvm-ecc-sw-macros 1.3.0", - "openvm-pairing-guest 1.3.0", - "openvm-platform 1.3.0", - "openvm-rv32im-guest 1.3.0", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-sw-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-pairing-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "rand 0.8.5", "serde", ] [[package]] name = "openvm-pairing-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -5066,10 +5064,10 @@ dependencies = [ "openvm-circuit-primitives", "openvm-circuit-primitives-derive", "openvm-ecc-circuit", - "openvm-ecc-guest 1.2.1-rc.0", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-instructions", "openvm-mod-circuit-builder", - "openvm-pairing-guest 1.2.1-rc.0", + "openvm-pairing-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-pairing-transpiler", "openvm-rv32-adapters", "openvm-rv32im-circuit", @@ -5081,8 +5079,8 @@ dependencies = [ [[package]] name = "openvm-pairing-guest" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "halo2curves-axiom", "hex-literal", @@ -5090,11 +5088,11 @@ dependencies = [ "lazy_static", "num-bigint 0.4.6", "num-traits", - "openvm 1.2.1-rc.0", - "openvm-algebra-guest 1.2.1-rc.0", - "openvm-algebra-moduli-macros 1.2.1-rc.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1)", - "openvm-ecc-guest 1.2.1-rc.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-moduli-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "rand 0.8.5", "serde", "strum_macros 0.26.4", @@ -5103,7 +5101,7 @@ dependencies = [ [[package]] name = "openvm-pairing-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "halo2curves-axiom", "hex-literal", @@ -5111,11 +5109,11 @@ dependencies = [ "lazy_static", "num-bigint 0.4.6", "num-traits", - "openvm 1.3.0", - "openvm-algebra-guest 1.3.0", - "openvm-algebra-moduli-macros 1.3.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", - "openvm-ecc-guest 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-algebra-moduli-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "rand 0.8.5", "serde", "strum_macros 0.26.4", @@ -5123,12 +5121,12 @@ dependencies = [ [[package]] name = "openvm-pairing-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "openvm-instructions", "openvm-instructions-derive", - "openvm-pairing-guest 1.2.1-rc.0", + "openvm-pairing-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-stark-backend", "openvm-transpiler", "rrs-lib", @@ -5137,28 +5135,28 @@ dependencies = [ [[package]] name = "openvm-platform" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "libm", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1)", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", ] [[package]] name = "openvm-platform" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "libm", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", - "openvm-rv32im-guest 1.3.0", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", ] [[package]] name = "openvm-poseidon2-air" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derivative", "lazy_static", @@ -5174,8 +5172,8 @@ dependencies = [ [[package]] name = "openvm-rv32-adapters" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "itertools 0.14.0", @@ -5194,8 +5192,8 @@ dependencies = [ [[package]] name = "openvm-rv32im-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -5217,10 +5215,10 @@ dependencies = [ [[package]] name = "openvm-rv32im-guest" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "p3-field 0.1.0", "strum_macros 0.26.4", ] @@ -5228,21 +5226,21 @@ dependencies = [ [[package]] name = "openvm-rv32im-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "p3-field 0.1.0", "strum_macros 0.26.4", ] [[package]] name = "openvm-rv32im-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "openvm-instructions", "openvm-instructions-derive", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-stark-backend", "openvm-transpiler", "rrs-lib", @@ -5253,8 +5251,8 @@ dependencies = [ [[package]] name = "openvm-sdk" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "async-trait", "bitcode", @@ -5268,7 +5266,7 @@ dependencies = [ "itertools 0.14.0", "metrics", "num-bigint 0.4.6", - "openvm 1.2.1-rc.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-algebra-circuit", "openvm-algebra-transpiler", "openvm-bigint-circuit", @@ -5310,14 +5308,14 @@ name = "openvm-sha2" version = "1.3.0" source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-sha256-guest 1.3.0", + "openvm-sha256-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "sha2 0.10.9", ] [[package]] name = "openvm-sha256-air" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "openvm-circuit-primitives", "openvm-stark-backend", @@ -5327,8 +5325,8 @@ dependencies = [ [[package]] name = "openvm-sha256-circuit" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -5350,28 +5348,28 @@ dependencies = [ [[package]] name = "openvm-sha256-guest" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", ] [[package]] name = "openvm-sha256-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ - "openvm-platform 1.3.0", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", ] [[package]] name = "openvm-sha256-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "openvm-instructions", "openvm-instructions-derive", - "openvm-sha256-guest 1.2.1-rc.0", + "openvm-sha256-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-stark-backend", "openvm-transpiler", "rrs-lib", @@ -5381,7 +5379,7 @@ dependencies = [ [[package]] name = "openvm-stark-backend" version = "1.1.1" -source = "git+https://github.com/openvm-org/stark-backend.git?rev=f48090c9febd021f8ee0349bc929a775fb1fa3ad#f48090c9febd021f8ee0349bc929a775fb1fa3ad" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.1.1#0879de162658b797b8dd6b6ee4429cbb8dd78ba1" dependencies = [ "bitcode", "cfg-if", @@ -5407,7 +5405,7 @@ dependencies = [ [[package]] name = "openvm-stark-sdk" version = "1.1.1" -source = "git+https://github.com/openvm-org/stark-backend.git?rev=f48090c9febd021f8ee0349bc929a775fb1fa3ad#f48090c9febd021f8ee0349bc929a775fb1fa3ad" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.1.1#0879de162658b797b8dd6b6ee4429cbb8dd78ba1" dependencies = [ "derivative", "derive_more 0.99.20", @@ -5442,13 +5440,13 @@ dependencies = [ [[package]] name = "openvm-transpiler" -version = "1.2.1-rc.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.2.1-rc.1#152b6b6c85eda34b367ec261f2f65b0457b9b2d9" +version = "1.3.0" +source = "git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c#c033e184cdb04a5bfdbd95ca5651c44f5a355c0c" dependencies = [ "elf", "eyre", "openvm-instructions", - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=c033e184cdb04a5bfdbd95ca5651c44f5a355c0c)", "openvm-stark-backend", "rrs-lib", "thiserror 1.0.69", @@ -6340,6 +6338,7 @@ dependencies = [ "ctor", "eyre", "futures", + "futures-util", "hex", "http 1.3.1", "once_cell", @@ -6761,6 +6760,7 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", "webpki-roots 1.0.0", ] @@ -8365,7 +8365,7 @@ dependencies = [ [[package]] name = "scroll-proving-sdk" version = "0.1.0" -source = "git+https://github.com/scroll-tech/scroll-proving-sdk.git?branch=refactor%2Fscroll#c144015870771db14b1b5d6071e4d3c4e9b48b9c" +source = "git+https://github.com/scroll-tech/scroll-proving-sdk.git?rev=4c36ab2#4c36ab29255481c34beb08ee7c3d8d4f5d7390c2" dependencies = [ "anyhow", "async-trait", @@ -8395,7 +8395,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-prover" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=feat%2F0.5.1#8f29f60cc73495e8586338a67433a812097427c4" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "base64 0.22.1", @@ -8417,8 +8417,8 @@ dependencies = [ "revm 24.0.0", "rkyv", "sbv-primitives", - "scroll-alloy-evm", "scroll-zkvm-types", + "scroll-zkvm-types-batch", "scroll-zkvm-types-chunk", "scroll-zkvm-verifier", "serde", @@ -8433,15 +8433,17 @@ dependencies = [ [[package]] name = "scroll-zkvm-types" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=feat%2F0.5.1#8f29f60cc73495e8586338a67433a812097427c4" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "base64 0.22.1", "bincode", + "c-kzg", "openvm-continuations", "openvm-native-recursion", "openvm-sdk", "openvm-stark-sdk", "rkyv", + "sbv-primitives", "scroll-zkvm-types-base", "scroll-zkvm-types-batch", "scroll-zkvm-types-bundle", @@ -8453,7 +8455,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-base" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=feat%2F0.5.1#8f29f60cc73495e8586338a67433a812097427c4" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "alloy-serde 1.0.16", @@ -8468,17 +8470,17 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-batch" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=feat%2F0.5.1#8f29f60cc73495e8586338a67433a812097427c4" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "halo2curves-axiom", "itertools 0.14.0", - "openvm 1.3.0", - "openvm-ecc-guest 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "openvm-pairing", - "openvm-pairing-guest 1.3.0", + "openvm-pairing-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "openvm-sha2", - "openvm-sha256-guest 1.3.0", + "openvm-sha256-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "rkyv", "scroll-zkvm-types-base", "serde", @@ -8488,7 +8490,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-bundle" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=feat%2F0.5.1#8f29f60cc73495e8586338a67433a812097427c4" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -8501,13 +8503,13 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-chunk" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=feat%2F0.5.1#8f29f60cc73495e8586338a67433a812097427c4" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "itertools 0.14.0", - "openvm 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", - "openvm-rv32im-guest 1.3.0", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "revm-precompile 21.0.0 (git+https://github.com/scroll-tech/revm?branch=feat%2Freth-v74)", "rkyv", "sbv-core", @@ -8521,11 +8523,12 @@ dependencies = [ [[package]] name = "scroll-zkvm-verifier" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=feat%2F0.5.1#8f29f60cc73495e8586338a67433a812097427c4" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "bincode", "eyre", "itertools 0.14.0", + "once_cell", "openvm-circuit", "openvm-continuations", "openvm-native-circuit", @@ -8535,7 +8538,9 @@ dependencies = [ "revm 24.0.0", "scroll-zkvm-types", "serde", + "serde_json", "snark-verifier-sdk", + "tracing", ] [[package]] @@ -9931,6 +9936,7 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -10096,6 +10102,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wasm-timer" version = "0.2.5" diff --git a/Cargo.toml b/Cargo.toml index adc6765da7..8068345910 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,9 +17,9 @@ repository = "https://github.com/scroll-tech/scroll" version = "4.5.8" [workspace.dependencies] -scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "feat/0.5.1", package = "scroll-zkvm-prover" } -scroll-zkvm-verifier-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "feat/0.5.1", package = "scroll-zkvm-verifier" } -scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "feat/0.5.1" } +scroll-zkvm-prover = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "89a2dc1" } +scroll-zkvm-verifier = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "89a2dc1" } +scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "89a2dc1" } sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "chore/openvm-1.3", features = ["scroll"] } sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "chore/openvm-1.3" } diff --git a/common/types/message/message.go b/common/types/message/message.go index c7db53704a..acc7e63702 100644 --- a/common/types/message/message.go +++ b/common/types/message/message.go @@ -135,10 +135,18 @@ type BlockContextV2 struct { NumL1Msgs uint16 `json:"num_l1_msgs"` } +// Metric data carried with OpenVMProof +type OpenVMProofStat struct { + TotalCycle uint64 `json:"total_cycles"` + ExecutionTimeMills uint64 `json:"execution_time_mills"` + ProvingTimeMills uint64 `json:"proving_time_mills"` +} + // Proof for flatten VM proof type OpenVMProof struct { - Proof []byte `json:"proofs"` - PublicValues []byte `json:"public_values"` + Proof []byte `json:"proofs"` + PublicValues []byte `json:"public_values"` + Stat *OpenVMProofStat `json:"stat,omitempty"` } // Proof for flatten EVM proof @@ -150,7 +158,8 @@ type OpenVMEvmProof struct { // OpenVMChunkProof includes the proof info that are required for chunk verification and rollup. type OpenVMChunkProof struct { MetaData struct { - ChunkInfo *ChunkInfo `json:"chunk_info"` + ChunkInfo *ChunkInfo `json:"chunk_info"` + TotalGasUsed uint64 `json:"chunk_total_gas"` } `json:"metadata"` VmProof *OpenVMProof `json:"proof"` diff --git a/coordinator/Makefile b/coordinator/Makefile index f4630f6ad9..dce6556840 100644 --- a/coordinator/Makefile +++ b/coordinator/Makefile @@ -34,6 +34,13 @@ coordinator_cron: coordinator_tool: go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_tool ./cmd/tool +localsetup: coordinator_api ## Local setup: build coordinator_api, copy config, and setup releases + @echo "Copying configuration files..." + cp -r $(PWD)/conf $(PWD)/build/bin/ + @echo "Setting up releases..." + cd $(PWD)/build && bash setup_releases.sh + + #coordinator_api_skip_libzkp: # go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_api ./cmd/api diff --git a/coordinator/build/setup_releases.sh b/coordinator/build/setup_releases.sh new file mode 100644 index 0000000000..256bdfa3cd --- /dev/null +++ b/coordinator/build/setup_releases.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# release version +if [ -z "${SCROLL_ZKVM_VERSION}" ]; then + echo "SCROLL_ZKVM_VERSION not set" + exit 1 +fi + +# set ASSET_DIR by reading from config.json +CONFIG_FILE="bin/conf/config.json" +if [ ! -f "$CONFIG_FILE" ]; then + echo "Config file $CONFIG_FILE not found" + exit 1 +fi + +# get the number of verifiers in the array +VERIFIER_COUNT=$(jq -r '.prover_manager.verifier.verifiers | length' "$CONFIG_FILE") + +if [ "$VERIFIER_COUNT" = "null" ] || [ "$VERIFIER_COUNT" -eq 0 ]; then + echo "No verifiers found in config file" + exit 1 +fi + +echo "Found $VERIFIER_COUNT verifier(s) in config" + +# iterate through each verifier entry +for ((i=0; i<$VERIFIER_COUNT; i++)); do + # extract assets_path for current verifier + ASSETS_PATH=$(jq -r ".prover_manager.verifier.verifiers[$i].assets_path" "$CONFIG_FILE") + FORK_NAME=$(jq -r ".prover_manager.verifier.verifiers[$i].fork_name" "$CONFIG_FILE") + + if [ "$ASSETS_PATH" = "null" ]; then + echo "Warning: Could not find assets_path for verifier $i, skipping..." + continue + fi + + echo "Processing verifier $i ($FORK_NAME): assets_path=$ASSETS_PATH" + + # check if it's an absolute path (starts with /) + if [[ "$ASSETS_PATH" = /* ]]; then + # absolute path, use as is + ASSET_DIR="$ASSETS_PATH" + else + # relative path, prefix with "bin/" + ASSET_DIR="bin/$ASSETS_PATH" + fi + + echo "Using ASSET_DIR: $ASSET_DIR" + + # create directory if it doesn't exist + mkdir -p "$ASSET_DIR" + + # assets for verifier-only mode + echo "Downloading assets for $FORK_NAME to $ASSET_DIR..." + wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/verifier.bin -O ${ASSET_DIR}/verifier.bin + wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/openVmVk.json -O ${ASSET_DIR}/openVmVk.json + + echo "Completed downloading assets for $FORK_NAME" + echo "---" +done + +echo "All verifier assets downloaded successfully" \ No newline at end of file diff --git a/coordinator/conf/config.json b/coordinator/conf/config.json index 7e07c039fd..02acb2fa74 100644 --- a/coordinator/conf/config.json +++ b/coordinator/conf/config.json @@ -12,7 +12,7 @@ { "assets_path": "assets", "fork_name": "euclidV2" - }, + }, { "assets_path": "assets", "fork_name": "feynman" diff --git a/coordinator/internal/config/config.go b/coordinator/internal/config/config.go index 4cb91ab57b..1156230f26 100644 --- a/coordinator/internal/config/config.go +++ b/coordinator/internal/config/config.go @@ -57,9 +57,10 @@ type Config struct { // AssetConfig contain assets configurated for each fork, the defaul vkfile name is "OpenVmVk.json". type AssetConfig struct { - AssetsPath string `json:"assets_path"` - ForkName string `json:"fork_name"` - Vkfile string `json:"vk_file,omitempty"` + AssetsPath string `json:"assets_path"` + ForkName string `json:"fork_name"` + Vkfile string `json:"vk_file,omitempty"` + MinProverVersion string `json:"min_prover_version,omitempty"` } // VerifierConfig load zk verifier config. diff --git a/coordinator/internal/logic/auth/login.go b/coordinator/internal/logic/auth/login.go index f5c01a2dfe..28cb3b8a18 100644 --- a/coordinator/internal/logic/auth/login.go +++ b/coordinator/internal/logic/auth/login.go @@ -24,18 +24,16 @@ type LoginLogic struct { openVmVks map[string]struct{} - proverVersionHardForkMap map[string][]string + proverVersionHardForkMap map[string]string } // NewLoginLogic new a LoginLogic func NewLoginLogic(db *gorm.DB, cfg *config.Config, vf *verifier.Verifier) *LoginLogic { - proverVersionHardForkMap := make(map[string][]string) + proverVersionHardForkMap := make(map[string]string) - var hardForks []string for _, cfg := range cfg.ProverManager.Verifier.Verifiers { - hardForks = append(hardForks, cfg.ForkName) + proverVersionHardForkMap[cfg.ForkName] = cfg.MinProverVersion } - proverVersionHardForkMap[cfg.ProverManager.Verifier.MinProverVersion] = hardForks return &LoginLogic{ cfg: cfg, @@ -101,9 +99,15 @@ func (l *LoginLogic) ProverHardForkName(login *types.LoginParameter) (string, er } proverVersion := proverVersionSplits[0] - if hardForkNames, ok := l.proverVersionHardForkMap[proverVersion]; ok { - return strings.Join(hardForkNames, ","), nil + var hardForkNames []string + for n, minVersion := range l.proverVersionHardForkMap { + if minVersion == "" || version.CheckScrollRepoVersion(proverVersion, minVersion) { + hardForkNames = append(hardForkNames, n) + } + } + if len(hardForkNames) == 0 { + return "", fmt.Errorf("invalid prover prover_version:%s", login.Message.ProverVersion) } - return "", fmt.Errorf("invalid prover prover_version:%s", login.Message.ProverVersion) + return strings.Join(hardForkNames, ","), nil } diff --git a/coordinator/internal/logic/submitproof/proof_receiver.go b/coordinator/internal/logic/submitproof/proof_receiver.go index e35b7aa98a..3d1693affa 100644 --- a/coordinator/internal/logic/submitproof/proof_receiver.go +++ b/coordinator/internal/logic/submitproof/proof_receiver.go @@ -71,6 +71,9 @@ type ProofReceiverLogic struct { validateFailureProverTaskStatusNotOk prometheus.Counter validateFailureProverTaskTimeout prometheus.Counter validateFailureProverTaskHaveVerifier prometheus.Counter + proverSpeed *prometheus.GaugeVec + provingTime prometheus.Gauge + evmCyclePerGas prometheus.Gauge ChunkTask provertask.ProverTask BundleTask provertask.ProverTask @@ -79,6 +82,7 @@ type ProofReceiverLogic struct { // NewSubmitProofReceiverLogic create a proof receiver logic func NewSubmitProofReceiverLogic(cfg *config.ProverManager, chainCfg *params.ChainConfig, db *gorm.DB, vf *verifier.Verifier, reg prometheus.Registerer) *ProofReceiverLogic { + return &ProofReceiverLogic{ chunkOrm: orm.NewChunk(db), batchOrm: orm.NewBatch(db), @@ -133,6 +137,18 @@ func NewSubmitProofReceiverLogic(cfg *config.ProverManager, chainCfg *params.Cha Name: "coordinator_validate_failure_submit_have_been_verifier", Help: "Total number of submit proof validate failure proof have been verifier.", }), + evmCyclePerGas: promauto.With(reg).NewGauge(prometheus.GaugeOpts{ + Name: "evm_circuit_cycle_per_gas", + Help: "VM cycles cost for a gas unit cost in evm execution", + }), + provingTime: promauto.With(reg).NewGauge(prometheus.GaugeOpts{ + Name: "chunk_proving_time", + Help: "Wall clock time for chunk proving in second", + }), + proverSpeed: promauto.With(reg).NewGaugeVec(prometheus.GaugeOpts{ + Name: "prover_speed", + Help: "Cycle against running time of prover (in mhz)", + }, []string{"type", "phase"}), } } @@ -204,12 +220,34 @@ func (m *ProofReceiverLogic) HandleZkProof(ctx *gin.Context, proofParameter coor return unmarshalErr } success, verifyErr = m.verifier.VerifyChunkProof(chunkProof, hardForkName) + if stat := chunkProof.VmProof.Stat; stat != nil { + if g, _ := m.proverSpeed.GetMetricWithLabelValues("chunk", "exec"); g != nil && stat.ExecutionTimeMills > 0 { + g.Set(float64(stat.TotalCycle) / float64(stat.ExecutionTimeMills*1000)) + } + if g, _ := m.proverSpeed.GetMetricWithLabelValues("chunk", "proving"); g != nil && stat.ProvingTimeMills > 0 { + g.Set(float64(stat.TotalCycle) / float64(stat.ProvingTimeMills*1000)) + } + if chunkProof.MetaData.TotalGasUsed > 0 { + cycle_per_gas := float64(stat.TotalCycle) / float64(chunkProof.MetaData.TotalGasUsed) + m.evmCyclePerGas.Set(cycle_per_gas) + } + m.provingTime.Set(float64(stat.ProvingTimeMills) / 1000) + } + case message.ProofTypeBatch: batchProof := &message.OpenVMBatchProof{} if unmarshalErr := json.Unmarshal([]byte(proofParameter.Proof), &batchProof); unmarshalErr != nil { return unmarshalErr } success, verifyErr = m.verifier.VerifyBatchProof(batchProof, hardForkName) + if stat := batchProof.VmProof.Stat; stat != nil { + if g, _ := m.proverSpeed.GetMetricWithLabelValues("batch", "exec"); g != nil && stat.ExecutionTimeMills > 0 { + g.Set(float64(stat.TotalCycle) / float64(stat.ExecutionTimeMills*1000)) + } + if g, _ := m.proverSpeed.GetMetricWithLabelValues("batch", "proving"); g != nil && stat.ProvingTimeMills > 0 { + g.Set(float64(stat.TotalCycle) / float64(stat.ProvingTimeMills*1000)) + } + } case message.ProofTypeBundle: bundleProof := &message.OpenVMBundleProof{} if unmarshalErr := json.Unmarshal([]byte(proofParameter.Proof), &bundleProof); unmarshalErr != nil { diff --git a/coordinator/internal/logic/verifier/verifier.go b/coordinator/internal/logic/verifier/verifier.go index c2ad5d7db0..05800fb538 100644 --- a/coordinator/internal/logic/verifier/verifier.go +++ b/coordinator/internal/logic/verifier/verifier.go @@ -4,6 +4,7 @@ package verifier import ( "encoding/base64" + "encoding/hex" "encoding/json" "fmt" "io" @@ -129,6 +130,23 @@ const blocked_vks = ` D6YFHwTLZF/U2zpYJPQ3LwJZRm85yA5Vq2iFBqd3Mk4iwOUpS8sbOp3vg2+NDxhhKphgYpuUlykpdsoRhEt+cw==, ` +// tries to decode s as hex, and if that fails, as base64. +func decodeVkString(s string) ([]byte, error) { + // Try hex decoding first + if b, err := hex.DecodeString(s); err == nil { + return b, nil + } + // Fallback to base64 decoding + b, err := base64.StdEncoding.DecodeString(s) + if err != nil { + return nil, err + } + if len(b) == 0 { + return nil, fmt.Errorf("decode vk string %s fail (empty bytes)", s) + } + return b, nil +} + func (v *Verifier) loadOpenVMVks(cfg config.AssetConfig) error { vkFileName := cfg.Vkfile @@ -165,17 +183,17 @@ func (v *Verifier) loadOpenVMVks(cfg config.AssetConfig) error { v.OpenVMVkMap[dump.Bundle] = struct{}{} log.Info("Load vks", "from", cfg.AssetsPath, "chunk", dump.Chunk, "batch", dump.Batch, "bundle", dump.Bundle) - decodedBytes, err := base64.StdEncoding.DecodeString(dump.Chunk) + decodedBytes, err := decodeVkString(dump.Chunk) if err != nil { return err } v.ChunkVk[cfg.ForkName] = decodedBytes - decodedBytes, err = base64.StdEncoding.DecodeString(dump.Batch) + decodedBytes, err = decodeVkString(dump.Batch) if err != nil { return err } v.BatchVk[cfg.ForkName] = decodedBytes - decodedBytes, err = base64.StdEncoding.DecodeString(dump.Bundle) + decodedBytes, err = decodeVkString(dump.Bundle) if err != nil { return err } diff --git a/coordinator/test/api_test.go b/coordinator/test/api_test.go index 88d5b6081e..053f6b715e 100644 --- a/coordinator/test/api_test.go +++ b/coordinator/test/api_test.go @@ -584,7 +584,8 @@ func testTimeoutProof(t *testing.T) { err = chunkOrm.UpdateBatchHashInRange(context.Background(), 0, 100, batch.Hash) assert.NoError(t, err) encodeData, err := json.Marshal(message.OpenVMChunkProof{VmProof: &message.OpenVMProof{}, MetaData: struct { - ChunkInfo *message.ChunkInfo `json:"chunk_info"` + ChunkInfo *message.ChunkInfo `json:"chunk_info"` + TotalGasUsed uint64 `json:"chunk_total_gas"` }{ChunkInfo: &message.ChunkInfo{}}}) assert.NoError(t, err) assert.NotEmpty(t, encodeData) diff --git a/crates/gpu_override/.cargo/config.toml b/crates/gpu_override/.cargo/config.toml index 0fa02b3a4a..90a52f1a93 100644 --- a/crates/gpu_override/.cargo/config.toml +++ b/crates/gpu_override/.cargo/config.toml @@ -1,16 +1,16 @@ [patch."https://github.com/openvm-org/openvm.git"] -openvm-build = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-circuit = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-continuations = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-instructions ={ git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-native-circuit = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-native-compiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-native-recursion = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-native-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-rv32im-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } -openvm-sdk = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false, features = ["parallel", "bench-metrics", "evm-prove"] } -openvm-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-build = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-circuit = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-continuations = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-instructions ={ git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-native-circuit = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-native-compiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-native-recursion = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-native-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-rv32im-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } +openvm-sdk = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false, features = ["parallel", "bench-metrics", "evm-prove"] } +openvm-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.3.0-pipe", default-features = false } [patch."https://github.com/openvm-org/stark-backend.git"] openvm-stark-backend = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } @@ -42,4 +42,4 @@ p3-poseidon2-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", t p3-symmetric = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.1" } p3-uni-stark = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.1" } p3-maybe-rayon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.1" } # the "parallel" feature is NOT on by default to allow single-threaded benchmarking -p3-bn254-fr = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.1" } +p3-bn254-fr = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.1" } \ No newline at end of file diff --git a/crates/gpu_override/Cargo.lock b/crates/gpu_override/Cargo.lock index fb54a1bf1e..b99730e238 100644 --- a/crates/gpu_override/Cargo.lock +++ b/crates/gpu_override/Cargo.lock @@ -4573,36 +4573,36 @@ dependencies = [ [[package]] name = "openvm" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "bytemuck", "num-bigint 0.4.6", - "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe)", - "openvm-platform 1.2.1-rc.0", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-platform 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-rv32im-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "serde", ] [[package]] name = "openvm" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "bytemuck", "getrandom 0.2.16", "getrandom 0.3.3", "num-bigint 0.4.6", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422)", - "openvm-platform 1.3.0", - "openvm-rv32im-guest 1.3.0", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "serde", ] [[package]] name = "openvm-algebra-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -4630,10 +4630,10 @@ dependencies = [ [[package]] name = "openvm-algebra-complex-macros" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ - "openvm-macros-common 1.2.1-rc.0", + "openvm-macros-common 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "quote", "syn 2.0.101", ] @@ -4641,25 +4641,25 @@ dependencies = [ [[package]] name = "openvm-algebra-complex-macros" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-macros-common 1.3.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "quote", "syn 2.0.101", ] [[package]] name = "openvm-algebra-guest" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "halo2curves-axiom", "num-bigint 0.4.6", "once_cell", - "openvm-algebra-complex-macros 1.2.1-rc.0", - "openvm-algebra-moduli-macros 1.2.1-rc.0", - "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe)", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm-algebra-complex-macros 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-algebra-moduli-macros 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-rv32im-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "serde-big-array", "strum_macros 0.26.4", ] @@ -4667,27 +4667,27 @@ dependencies = [ [[package]] name = "openvm-algebra-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "halo2curves-axiom", "num-bigint 0.4.6", "once_cell", - "openvm-algebra-complex-macros 1.3.0", - "openvm-algebra-moduli-macros 1.3.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422)", - "openvm-rv32im-guest 1.3.0", + "openvm-algebra-complex-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-moduli-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "serde-big-array", "strum_macros 0.26.4", ] [[package]] name = "openvm-algebra-moduli-macros" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "num-bigint 0.4.6", "num-prime", - "openvm-macros-common 1.2.1-rc.0", + "openvm-macros-common 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "quote", "syn 2.0.101", ] @@ -4695,21 +4695,21 @@ dependencies = [ [[package]] name = "openvm-algebra-moduli-macros" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "num-bigint 0.4.6", "num-prime", - "openvm-macros-common 1.3.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "quote", "syn 2.0.101", ] [[package]] name = "openvm-algebra-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ - "openvm-algebra-guest 1.2.1-rc.0", + "openvm-algebra-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-instructions", "openvm-instructions-derive", "openvm-stark-backend", @@ -4720,8 +4720,8 @@ dependencies = [ [[package]] name = "openvm-bigint-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -4742,17 +4742,17 @@ dependencies = [ [[package]] name = "openvm-bigint-guest" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "strum_macros 0.26.4", ] [[package]] name = "openvm-bigint-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "openvm-bigint-guest", "openvm-instructions", @@ -4766,20 +4766,20 @@ dependencies = [ [[package]] name = "openvm-build" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "cargo_metadata", "eyre", - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "serde", "serde_json", ] [[package]] name = "openvm-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "backtrace", "cfg-if", @@ -4809,8 +4809,8 @@ dependencies = [ [[package]] name = "openvm-circuit-derive" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "itertools 0.14.0", "quote", @@ -4819,8 +4819,8 @@ dependencies = [ [[package]] name = "openvm-circuit-primitives" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "itertools 0.14.0", @@ -4834,8 +4834,8 @@ dependencies = [ [[package]] name = "openvm-circuit-primitives-derive" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "itertools 0.14.0", "quote", @@ -4844,8 +4844,8 @@ dependencies = [ [[package]] name = "openvm-continuations" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derivative", "openvm-circuit", @@ -4860,7 +4860,7 @@ dependencies = [ [[package]] name = "openvm-custom-insn" version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "proc-macro2", "quote", @@ -4870,7 +4870,7 @@ dependencies = [ [[package]] name = "openvm-custom-insn" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "proc-macro2", "quote", @@ -4879,16 +4879,14 @@ dependencies = [ [[package]] name = "openvm-ecc-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", - "eyre", "hex-literal", "lazy_static", "num-bigint 0.4.6", - "num-integer", "num-traits", "once_cell", "openvm-algebra-circuit", @@ -4909,19 +4907,19 @@ dependencies = [ [[package]] name = "openvm-ecc-guest" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "ecdsa", "elliptic-curve", "group 0.13.0", "halo2curves-axiom", "once_cell", - "openvm 1.2.1-rc.0", - "openvm-algebra-guest 1.2.1-rc.0", - "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe)", - "openvm-ecc-sw-macros 1.2.1-rc.0", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-algebra-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-ecc-sw-macros 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-rv32im-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "serde", "strum_macros 0.26.4", ] @@ -4929,28 +4927,28 @@ dependencies = [ [[package]] name = "openvm-ecc-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "ecdsa", "elliptic-curve", "group 0.13.0", "halo2curves-axiom", "once_cell", - "openvm 1.3.0", - "openvm-algebra-guest 1.3.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422)", - "openvm-ecc-sw-macros 1.3.0", - "openvm-rv32im-guest 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-sw-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "serde", "strum_macros 0.26.4", ] [[package]] name = "openvm-ecc-sw-macros" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ - "openvm-macros-common 1.2.1-rc.0", + "openvm-macros-common 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "quote", "syn 2.0.101", ] @@ -4958,19 +4956,19 @@ dependencies = [ [[package]] name = "openvm-ecc-sw-macros" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-macros-common 1.3.0", + "openvm-macros-common 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "quote", "syn 2.0.101", ] [[package]] name = "openvm-ecc-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ - "openvm-ecc-guest 1.2.1-rc.0", + "openvm-ecc-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-instructions", "openvm-instructions-derive", "openvm-stark-backend", @@ -4981,8 +4979,8 @@ dependencies = [ [[package]] name = "openvm-instructions" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "backtrace", "derive-new 0.6.0", @@ -4998,8 +4996,8 @@ dependencies = [ [[package]] name = "openvm-instructions-derive" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "quote", "syn 2.0.101", @@ -5007,8 +5005,8 @@ dependencies = [ [[package]] name = "openvm-keccak256-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -5033,16 +5031,16 @@ dependencies = [ [[package]] name = "openvm-keccak256-guest" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", ] [[package]] name = "openvm-keccak256-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "openvm-instructions", "openvm-instructions-derive", @@ -5055,8 +5053,8 @@ dependencies = [ [[package]] name = "openvm-macros-common" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "syn 2.0.101", ] @@ -5064,15 +5062,15 @@ dependencies = [ [[package]] name = "openvm-macros-common" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "syn 2.0.101", ] [[package]] name = "openvm-mod-circuit-builder" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "itertools 0.14.0", "num-bigint 0.4.6", @@ -5090,8 +5088,8 @@ dependencies = [ [[package]] name = "openvm-native-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -5117,8 +5115,8 @@ dependencies = [ [[package]] name = "openvm-native-compiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "backtrace", "itertools 0.14.0", @@ -5141,8 +5139,8 @@ dependencies = [ [[package]] name = "openvm-native-compiler-derive" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "quote", "syn 2.0.101", @@ -5150,8 +5148,8 @@ dependencies = [ [[package]] name = "openvm-native-recursion" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "cfg-if", "itertools 0.14.0", @@ -5178,8 +5176,8 @@ dependencies = [ [[package]] name = "openvm-native-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "openvm-instructions", "openvm-transpiler", @@ -5189,7 +5187,7 @@ dependencies = [ [[package]] name = "openvm-pairing" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "group 0.13.0", "halo2curves-axiom", @@ -5197,24 +5195,24 @@ dependencies = [ "itertools 0.14.0", "num-bigint 0.4.6", "num-traits", - "openvm 1.3.0", - "openvm-algebra-complex-macros 1.3.0", - "openvm-algebra-guest 1.3.0", - "openvm-algebra-moduli-macros 1.3.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422)", - "openvm-ecc-guest 1.3.0", - "openvm-ecc-sw-macros 1.3.0", - "openvm-pairing-guest 1.3.0", - "openvm-platform 1.3.0", - "openvm-rv32im-guest 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-complex-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-moduli-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-sw-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-pairing-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "rand 0.8.5", "serde", ] [[package]] name = "openvm-pairing-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -5229,10 +5227,10 @@ dependencies = [ "openvm-circuit-primitives", "openvm-circuit-primitives-derive", "openvm-ecc-circuit", - "openvm-ecc-guest 1.2.1-rc.0", + "openvm-ecc-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-instructions", "openvm-mod-circuit-builder", - "openvm-pairing-guest 1.2.1-rc.0", + "openvm-pairing-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-pairing-transpiler", "openvm-rv32-adapters", "openvm-rv32im-circuit", @@ -5244,8 +5242,8 @@ dependencies = [ [[package]] name = "openvm-pairing-guest" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "halo2curves-axiom", "hex-literal", @@ -5253,11 +5251,11 @@ dependencies = [ "lazy_static", "num-bigint 0.4.6", "num-traits", - "openvm 1.2.1-rc.0", - "openvm-algebra-guest 1.2.1-rc.0", - "openvm-algebra-moduli-macros 1.2.1-rc.0", - "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe)", - "openvm-ecc-guest 1.2.1-rc.0", + "openvm 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-algebra-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-algebra-moduli-macros 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-ecc-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "rand 0.8.5", "serde", "strum_macros 0.26.4", @@ -5266,7 +5264,7 @@ dependencies = [ [[package]] name = "openvm-pairing-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "halo2curves-axiom", "hex-literal", @@ -5274,11 +5272,11 @@ dependencies = [ "lazy_static", "num-bigint 0.4.6", "num-traits", - "openvm 1.3.0", - "openvm-algebra-guest 1.3.0", - "openvm-algebra-moduli-macros 1.3.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422)", - "openvm-ecc-guest 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-algebra-moduli-macros 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "rand 0.8.5", "serde", "strum_macros 0.26.4", @@ -5286,12 +5284,12 @@ dependencies = [ [[package]] name = "openvm-pairing-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "openvm-instructions", "openvm-instructions-derive", - "openvm-pairing-guest 1.2.1-rc.0", + "openvm-pairing-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-stark-backend", "openvm-transpiler", "rrs-lib", @@ -5300,28 +5298,28 @@ dependencies = [ [[package]] name = "openvm-platform" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "libm", - "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe)", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", + "openvm-rv32im-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", ] [[package]] name = "openvm-platform" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ "libm", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422)", - "openvm-rv32im-guest 1.3.0", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", ] [[package]] name = "openvm-poseidon2-air" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derivative", "lazy_static", @@ -5337,8 +5335,8 @@ dependencies = [ [[package]] name = "openvm-rv32-adapters" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "itertools 0.14.0", @@ -5357,8 +5355,8 @@ dependencies = [ [[package]] name = "openvm-rv32im-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -5380,10 +5378,10 @@ dependencies = [ [[package]] name = "openvm-rv32im-guest" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ - "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe)", + "openvm-custom-insn 0.1.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "p3-field 0.1.0", "strum_macros 0.26.4", ] @@ -5391,21 +5389,21 @@ dependencies = [ [[package]] name = "openvm-rv32im-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "p3-field 0.1.0", "strum_macros 0.26.4", ] [[package]] name = "openvm-rv32im-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "openvm-instructions", "openvm-instructions-derive", - "openvm-rv32im-guest 1.2.1-rc.0", + "openvm-rv32im-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-stark-backend", "openvm-transpiler", "rrs-lib", @@ -5416,8 +5414,8 @@ dependencies = [ [[package]] name = "openvm-sdk" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "async-trait", "bitcode", @@ -5431,7 +5429,7 @@ dependencies = [ "itertools 0.14.0", "metrics", "num-bigint 0.4.6", - "openvm 1.2.1-rc.0", + "openvm 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-algebra-circuit", "openvm-algebra-transpiler", "openvm-bigint-circuit", @@ -5471,16 +5469,16 @@ dependencies = [ [[package]] name = "openvm-sha2" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-sha256-guest 1.3.0", + "openvm-sha256-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "sha2 0.10.9", ] [[package]] name = "openvm-sha256-air" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "openvm-circuit-primitives", "openvm-stark-backend", @@ -5490,8 +5488,8 @@ dependencies = [ [[package]] name = "openvm-sha256-circuit" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "derive-new 0.6.0", "derive_more 1.0.0", @@ -5513,28 +5511,28 @@ dependencies = [ [[package]] name = "openvm-sha256-guest" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", ] [[package]] name = "openvm-sha256-guest" version = "1.3.0" -source = "git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422#4973d38cb3f2e14ebdd59e03802e65bb657ee422" +source = "git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0#5368d4756993fc1e51092499a816867cf4808de0" dependencies = [ - "openvm-platform 1.3.0", + "openvm-platform 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", ] [[package]] name = "openvm-sha256-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "openvm-instructions", "openvm-instructions-derive", - "openvm-sha256-guest 1.2.1-rc.0", + "openvm-sha256-guest 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-stark-backend", "openvm-transpiler", "rrs-lib", @@ -5609,13 +5607,13 @@ dependencies = [ [[package]] name = "openvm-transpiler" -version = "1.2.1-rc.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.1-rc.1-pipe#7dd6d1620d07c2c3faa5b91105cbb3d19ff0c9b0" +version = "1.3.0" +source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe#07e2731a2afd8bcb05b76566331e68e1e4ef00d0" dependencies = [ "elf", "eyre", "openvm-instructions", - "openvm-platform 1.2.1-rc.0", + "openvm-platform 1.3.0 (git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.3.0-pipe)", "openvm-stark-backend", "rrs-lib", "thiserror 1.0.69", @@ -6609,6 +6607,7 @@ dependencies = [ "ctor", "eyre", "futures", + "futures-util", "hex", "http 1.3.1", "once_cell", @@ -7047,6 +7046,7 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", "webpki-roots 1.0.0", ] @@ -8662,7 +8662,7 @@ dependencies = [ [[package]] name = "scroll-proving-sdk" version = "0.1.0" -source = "git+https://github.com/scroll-tech/scroll-proving-sdk.git?branch=refactor%2Fscroll#c144015870771db14b1b5d6071e4d3c4e9b48b9c" +source = "git+https://github.com/scroll-tech/scroll-proving-sdk.git?rev=4c36ab2#4c36ab29255481c34beb08ee7c3d8d4f5d7390c2" dependencies = [ "anyhow", "async-trait", @@ -8692,7 +8692,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-prover" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.5.0rc1#0eb4c11df4909dc6096dfc98875038385578264a" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "base64 0.22.1", @@ -8714,8 +8714,8 @@ dependencies = [ "revm 24.0.0", "rkyv", "sbv-primitives", - "scroll-alloy-evm", "scroll-zkvm-types", + "scroll-zkvm-types-batch", "scroll-zkvm-types-chunk", "scroll-zkvm-verifier", "serde", @@ -8730,15 +8730,17 @@ dependencies = [ [[package]] name = "scroll-zkvm-types" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.5.0rc1#0eb4c11df4909dc6096dfc98875038385578264a" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "base64 0.22.1", "bincode", + "c-kzg", "openvm-continuations", "openvm-native-recursion", "openvm-sdk", "openvm-stark-sdk", "rkyv", + "sbv-primitives", "scroll-zkvm-types-base", "scroll-zkvm-types-batch", "scroll-zkvm-types-bundle", @@ -8750,7 +8752,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-base" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.5.0rc1#0eb4c11df4909dc6096dfc98875038385578264a" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "alloy-serde 1.0.16", @@ -8765,17 +8767,17 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-batch" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.5.0rc1#0eb4c11df4909dc6096dfc98875038385578264a" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "halo2curves-axiom", "itertools 0.14.0", - "openvm 1.3.0", - "openvm-ecc-guest 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-ecc-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "openvm-pairing", - "openvm-pairing-guest 1.3.0", + "openvm-pairing-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "openvm-sha2", - "openvm-sha256-guest 1.3.0", + "openvm-sha256-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "rkyv", "scroll-zkvm-types-base", "serde", @@ -8785,7 +8787,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-bundle" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.5.0rc1#0eb4c11df4909dc6096dfc98875038385578264a" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -8798,13 +8800,13 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-chunk" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.5.0rc1#0eb4c11df4909dc6096dfc98875038385578264a" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "alloy-primitives", "itertools 0.14.0", - "openvm 1.3.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=4973d38cb3f2e14ebdd59e03802e65bb657ee422)", - "openvm-rv32im-guest 1.3.0", + "openvm 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", + "openvm-rv32im-guest 1.3.0 (git+https://github.com/openvm-org/openvm.git?rev=5368d4756993fc1e51092499a816867cf4808de0)", "revm-precompile 21.0.0 (git+https://github.com/scroll-tech/revm?branch=feat%2Freth-v74)", "rkyv", "sbv-core", @@ -8818,11 +8820,12 @@ dependencies = [ [[package]] name = "scroll-zkvm-verifier" version = "0.5.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.5.0rc1#0eb4c11df4909dc6096dfc98875038385578264a" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=89a2dc1#89a2dc19633f0e0de390177a7ba142bfdea164cc" dependencies = [ "bincode", "eyre", "itertools 0.14.0", + "once_cell", "openvm-circuit", "openvm-continuations", "openvm-native-circuit", @@ -8832,7 +8835,9 @@ dependencies = [ "revm 24.0.0", "scroll-zkvm-types", "serde", + "serde_json", "snark-verifier-sdk", + "tracing", ] [[package]] @@ -10237,6 +10242,7 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -10414,6 +10420,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wasm-timer" version = "0.2.5" diff --git a/crates/libzkp/Cargo.toml b/crates/libzkp/Cargo.toml index 6a195a6dff..305974c47a 100644 --- a/crates/libzkp/Cargo.toml +++ b/crates/libzkp/Cargo.toml @@ -6,7 +6,7 @@ edition.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] scroll-zkvm-types.workspace = true -scroll-zkvm-verifier-euclid.workspace = true +scroll-zkvm-verifier.workspace = true alloy-primitives.workspace = true #depress the effect of "native-keccak" sbv-primitives = {workspace = true, features = ["scroll-compress-ratio", "scroll"]} diff --git a/crates/libzkp/src/lib.rs b/crates/libzkp/src/lib.rs index c2902210f9..1fbb3673b8 100644 --- a/crates/libzkp/src/lib.rs +++ b/crates/libzkp/src/lib.rs @@ -5,7 +5,7 @@ pub use verifier::{TaskType, VerifierConfig}; mod utils; use sbv_primitives::B256; -use scroll_zkvm_types::util::vec_as_base64; +use scroll_zkvm_types::utils::vec_as_base64; use serde::{Deserialize, Serialize}; use serde_json::value::RawValue; use std::path::Path; diff --git a/crates/libzkp/src/proofs.rs b/crates/libzkp/src/proofs.rs index c9a09a9ebc..8f2687d660 100644 --- a/crates/libzkp/src/proofs.rs +++ b/crates/libzkp/src/proofs.rs @@ -7,10 +7,10 @@ use scroll_zkvm_types::{ batch::BatchInfo, bundle::BundleInfo, chunk::ChunkInfo, - proof::{EvmProof, OpenVmEvmProof, ProofEnum, RootProof}, + proof::{EvmProof, OpenVmEvmProof, ProofEnum, StarkProof}, public_inputs::{ForkName, MultiVersionPublicInputs}, types_agg::{AggregationInput, ProgramCommitment}, - util::vec_as_base64, + utils::vec_as_base64, }; use serde::{de::DeserializeOwned, Deserialize, Serialize}; @@ -40,7 +40,7 @@ pub struct WrappedProof { } pub trait AsRootProof { - fn as_root_proof(&self) -> &RootProof; + fn as_root_proof(&self) -> &StarkProof; } pub trait AsEvmProof { @@ -61,17 +61,17 @@ pub type BatchProof = WrappedProof; pub type BundleProof = WrappedProof; impl AsRootProof for ChunkProof { - fn as_root_proof(&self) -> &RootProof { + fn as_root_proof(&self) -> &StarkProof { self.proof - .as_root_proof() + .as_stark_proof() .expect("batch proof use root proof") } } impl AsRootProof for BatchProof { - fn as_root_proof(&self) -> &RootProof { + fn as_root_proof(&self) -> &StarkProof { self.proof - .as_root_proof() + .as_stark_proof() .expect("batch proof use root proof") } } @@ -122,6 +122,8 @@ pub trait PersistableProof: Sized { pub struct ChunkProofMetadata { /// The chunk information describing the list of blocks contained within the chunk. pub chunk_info: ChunkInfo, + /// Additional data for stat + pub chunk_total_gas: u64, } impl ProofMetadata for ChunkProofMetadata { diff --git a/crates/libzkp/src/tasks.rs b/crates/libzkp/src/tasks.rs index 51bde1f94b..ae937416b2 100644 --- a/crates/libzkp/src/tasks.rs +++ b/crates/libzkp/src/tasks.rs @@ -44,12 +44,16 @@ pub fn gen_universal_chunk_task( if let Some(interpreter) = interpreter { task.prepare_task_via_interpret(interpreter)?; } + let chunk_total_gas = task.stats().total_gas_used; let chunk_info = task.precheck_and_build_metadata()?; let proving_task = task.try_into()?; let expected_pi_hash = chunk_info.pi_hash_by_fork(fork_name); Ok(( expected_pi_hash, - ChunkProofMetadata { chunk_info }, + ChunkProofMetadata { + chunk_info, + chunk_total_gas, + }, proving_task, )) } diff --git a/crates/libzkp/src/tasks/batch.rs b/crates/libzkp/src/tasks/batch.rs index 7945464201..1e55d6b988 100644 --- a/crates/libzkp/src/tasks/batch.rs +++ b/crates/libzkp/src/tasks/batch.rs @@ -91,7 +91,7 @@ impl TryFrom for ProvingTask { aggregated_proofs: value .chunk_proofs .into_iter() - .map(|w_proof| w_proof.proof.into_root_proof().expect("expect root proof")) + .map(|w_proof| w_proof.proof.into_stark_proof().expect("expect root proof")) .collect(), serialized_witness: vec![to_rkyv_bytes::(&witness)?.into_vec()], vk: Vec::new(), diff --git a/crates/libzkp/src/tasks/batch/utils.rs b/crates/libzkp/src/tasks/batch/utils.rs index 260bd4b828..31a7a2f26d 100644 --- a/crates/libzkp/src/tasks/batch/utils.rs +++ b/crates/libzkp/src/tasks/batch/utils.rs @@ -18,7 +18,7 @@ pub mod base64 { pub mod point_eval { use c_kzg; use sbv_primitives::{types::eips::eip4844::BLS_MODULUS, B256 as H256, U256}; - use scroll_zkvm_types::util::sha256_rv32; + use scroll_zkvm_types::utils::sha256_rv32; /// Given the blob-envelope, translate it to a fixed size EIP-4844 blob. /// diff --git a/crates/libzkp/src/tasks/bundle.rs b/crates/libzkp/src/tasks/bundle.rs index 66aceaf3e2..a70d767f86 100644 --- a/crates/libzkp/src/tasks/bundle.rs +++ b/crates/libzkp/src/tasks/bundle.rs @@ -81,7 +81,7 @@ impl TryFrom for ProvingTask { aggregated_proofs: value .batch_proofs .into_iter() - .map(|w_proof| w_proof.proof.into_root_proof().expect("expect root proof")) + .map(|w_proof| w_proof.proof.into_stark_proof().expect("expect root proof")) .collect(), serialized_witness: vec![witness.rkyv_serialize(None)?.to_vec()], vk: Vec::new(), diff --git a/crates/libzkp/src/verifier.rs b/crates/libzkp/src/verifier.rs index 753a77277c..5f6168798d 100644 --- a/crates/libzkp/src/verifier.rs +++ b/crates/libzkp/src/verifier.rs @@ -1,7 +1,6 @@ #![allow(static_mut_refs)] -mod euclidv2; -use euclidv2::EuclidV2Verifier; +mod universal; use eyre::Result; use serde::{Deserialize, Serialize}; use std::{ @@ -9,6 +8,7 @@ use std::{ path::Path, sync::{Arc, Mutex, OnceLock}, }; +use universal::Verifier; #[derive(Debug, Clone, Copy, PartialEq)] pub enum TaskType { @@ -61,7 +61,7 @@ pub fn init(config: VerifierConfig) { for cfg in &config.circuits { let canonical_fork_name = cfg.fork_name.to_lowercase(); - let verifier = EuclidV2Verifier::new(&cfg.assets_path, canonical_fork_name.as_str().into()); + let verifier = Verifier::new(&cfg.assets_path, canonical_fork_name.as_str().into()); let ret = verifiers.insert(canonical_fork_name, Arc::new(Mutex::new(verifier))); assert!( ret.is_none(), diff --git a/crates/libzkp/src/verifier/euclidv2.rs b/crates/libzkp/src/verifier/universal.rs similarity index 54% rename from crates/libzkp/src/verifier/euclidv2.rs rename to crates/libzkp/src/verifier/universal.rs index 332cb2ccee..07e7c54cd9 100644 --- a/crates/libzkp/src/verifier/euclidv2.rs +++ b/crates/libzkp/src/verifier/universal.rs @@ -7,59 +7,47 @@ use crate::{ utils::panic_catch, }; use scroll_zkvm_types::public_inputs::ForkName; -use scroll_zkvm_verifier_euclid::verifier::UniversalVerifier; +use scroll_zkvm_verifier::verifier::UniversalVerifier; use std::path::Path; -pub struct EuclidV2Verifier { +pub struct Verifier { verifier: UniversalVerifier, fork: ForkName, } -impl EuclidV2Verifier { +impl Verifier { pub fn new(assets_dir: &str, fork: ForkName) -> Self { let verifier_bin = Path::new(assets_dir).join("verifier.bin"); - let config = Path::new(assets_dir).join("root-verifier-vm-config"); - let exe = Path::new(assets_dir).join("root-verifier-committed-exe"); Self { - verifier: UniversalVerifier::setup(&config, &exe, &verifier_bin) - .expect("Setting up chunk verifier"), + verifier: UniversalVerifier::setup(&verifier_bin).expect("Setting up chunk verifier"), fork, } } } -impl ProofVerifier for EuclidV2Verifier { +impl ProofVerifier for Verifier { fn verify(&self, task_type: super::TaskType, proof: &[u8]) -> Result { panic_catch(|| match task_type { TaskType::Chunk => { let proof = serde_json::from_slice::(proof).unwrap(); - if !proof.pi_hash_check(self.fork) { - return false; - } - self.verifier - .verify_proof(proof.as_root_proof(), &proof.vk) - .unwrap() + assert!(proof.pi_hash_check(self.fork)); + UniversalVerifier::verify_stark_proof(proof.as_root_proof(), &proof.vk).unwrap() } TaskType::Batch => { let proof = serde_json::from_slice::(proof).unwrap(); - if !proof.pi_hash_check(self.fork) { - return false; - } - self.verifier - .verify_proof(proof.as_root_proof(), &proof.vk) - .unwrap() + assert!(proof.pi_hash_check(self.fork)); + UniversalVerifier::verify_stark_proof(proof.as_root_proof(), &proof.vk).unwrap() } TaskType::Bundle => { let proof = serde_json::from_slice::(proof).unwrap(); - if !proof.pi_hash_check(self.fork) { - return false; - } + assert!(proof.pi_hash_check(self.fork)); let vk = proof.vk.clone(); let evm_proof = proof.into_evm_proof(); - self.verifier.verify_proof_evm(&evm_proof, &vk).unwrap() + self.verifier.verify_evm_proof(&evm_proof, &vk).unwrap() } }) + .map(|_| true) .map_err(|err_str: String| eyre::eyre!("{err_str}")) } diff --git a/crates/prover-bin/Cargo.toml b/crates/prover-bin/Cargo.toml index 4075ce855e..3d5abe5856 100644 --- a/crates/prover-bin/Cargo.toml +++ b/crates/prover-bin/Cargo.toml @@ -7,8 +7,8 @@ edition.workspace = true [dependencies] scroll-zkvm-types.workspace = true -scroll-zkvm-prover-euclid.workspace = true -scroll-proving-sdk = { git = "https://github.com/scroll-tech/scroll-proving-sdk.git", branch = "refactor/scroll" } +scroll-zkvm-prover.workspace = true +scroll-proving-sdk = { git = "https://github.com/scroll-tech/scroll-proving-sdk.git", rev = "4c36ab2" } serde.workspace = true serde_json.workspace = true once_cell.workspace =true @@ -17,8 +17,9 @@ tiny-keccak = { workspace = true, features = ["sha3", "keccak"] } eyre.workspace = true futures = "0.3.30" +futures-util = "0.3" -reqwest = { version = "0.12.4", features = ["gzip"] } +reqwest = { version = "0.12.4", features = ["gzip", "stream"] } reqwest-middleware = "0.3" reqwest-retry = "0.5" hex = "0.4.3" @@ -30,5 +31,5 @@ sled = "0.34.7" http = "1.1.0" clap = { version = "4.5", features = ["derive"] } ctor = "0.2.8" -url = "2.5.4" +url = { version = "2.5.4", features = ["serde",] } serde_bytes = "0.11.15" diff --git a/crates/prover-bin/assets_url_preset.json b/crates/prover-bin/assets_url_preset.json new file mode 100644 index 0000000000..177be0bfbe --- /dev/null +++ b/crates/prover-bin/assets_url_preset.json @@ -0,0 +1,7 @@ +{ + "feynman": { + "b68fdc3f28a5ce006280980df70cd3447e56913e5bca6054603ba85f0794c23a6618ea25a7991845bbc5fd571670ee47379ba31ace92d345bca59702a0d4112d": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/chunk/", + "9a3f66370f11e3303f1a1248921025104e83253efea43a70d221cf4e15fc145bf2be2f4468d1ac4a70e7682babb1c60417e21c7633d4b55b58f44703ec82b05a": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/batch/", + "1f8627277e1c1f6e1cc70c03e6fde06929e5ea27ca5b1d56e23b235dfeda282e22c0e5294bcb1b3a9def836f8d0f18612a9860629b9497292976ca11844b7e73": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/bundle/" + } +} diff --git a/crates/prover-bin/src/main.rs b/crates/prover-bin/src/main.rs index 1fb13e7590..07c299a1e6 100644 --- a/crates/prover-bin/src/main.rs +++ b/crates/prover-bin/src/main.rs @@ -34,11 +34,6 @@ struct Args { #[derive(Subcommand, Debug)] enum Commands { - /// Dump vk of this prover - Dump { - /// path to save the verifier's asset - asset_path: String, - }, Handle { /// path to save the verifier's asset task_path: String, @@ -64,16 +59,10 @@ async fn main() -> eyre::Result<()> { } let cfg = LocalProverConfig::from_file(args.config_file)?; - let default_fork_name = cfg.circuits.keys().next().unwrap().clone(); let sdk_config = cfg.sdk_config.clone(); let local_prover = LocalProver::new(cfg.clone()); match args.command { - Some(Commands::Dump { asset_path }) => { - let fork_name = args.fork_name.unwrap_or(default_fork_name); - println!("dump assets for {fork_name} into {asset_path}"); - local_prover.dump_verifier_assets(&fork_name, asset_path.as_ref())?; - } Some(Commands::Handle { task_path }) => { let file = File::open(Path::new(&task_path))?; let reader = BufReader::new(file); diff --git a/crates/prover-bin/src/prover.rs b/crates/prover-bin/src/prover.rs index 412ab8bc4e..95b644eb90 100644 --- a/crates/prover-bin/src/prover.rs +++ b/crates/prover-bin/src/prover.rs @@ -1,4 +1,4 @@ -use crate::zk_circuits_handler::{euclidV2::EuclidV2Handler, CircuitsHandler}; +use crate::zk_circuits_handler::{universal::UniversalHandler, CircuitsHandler}; use async_trait::async_trait; use eyre::Result; use scroll_proving_sdk::{ @@ -16,12 +16,111 @@ use serde::{Deserialize, Serialize}; use std::{ collections::HashMap, fs::File, - path::Path, - sync::{Arc, OnceLock}, + path::{Path, PathBuf}, + sync::{Arc, LazyLock}, time::{SystemTime, UNIX_EPOCH}, }; use tokio::{runtime::Handle, sync::Mutex, task::JoinHandle}; +#[derive(Clone, Serialize, Deserialize)] +pub struct AssetsLocationData { + /// the base url to form a general downloading url for an asset, MUST HAVE A TRAILING SLASH + pub base_url: url::Url, + #[serde(default)] + /// a altered url for specififed vk + pub asset_detours: HashMap, +} + +impl AssetsLocationData { + pub fn gen_asset_url(&self, vk_as_path: &str, proof_type: ProofType) -> Result { + Ok(self.base_url.join( + match proof_type { + ProofType::Chunk => format!("chunk/{vk_as_path}/"), + ProofType::Batch => format!("batch/{vk_as_path}/"), + ProofType::Bundle => format!("bundle/{vk_as_path}/"), + t => eyre::bail!("unrecognized proof type: {}", t as u8), + } + .as_str(), + )?) + } + + pub fn validate(&self) -> Result<()> { + if !self.base_url.path().ends_with('/') { + eyre::bail!( + "base_url must have a trailing slash, got: {}", + self.base_url + ); + } + Ok(()) + } + + pub async fn get_asset( + &self, + vk: &str, + url_base: &url::Url, + base_path: impl AsRef, + ) -> Result { + let download_files = ["app.vmexe", "openvm.toml"]; + + // Step 1: Create a local path for storage + let storage_path = base_path.as_ref().join(vk); + std::fs::create_dir_all(&storage_path)?; + + // Step 2 & 3: Download each file if needed + let client = reqwest::Client::new(); + + for filename in download_files.iter() { + let local_file_path = storage_path.join(filename); + let download_url = url_base.join(filename)?; + + // Check if file already exists + if local_file_path.exists() { + // Get file metadata to check size + if let Ok(metadata) = std::fs::metadata(&local_file_path) { + // Make a HEAD request to get remote file size + + if let Ok(head_resp) = client.head(download_url.clone()).send().await { + if let Some(content_length) = head_resp.headers().get("content-length") { + if let Ok(remote_size) = + content_length.to_str().unwrap_or("0").parse::() + { + // If sizes match, skip download + if metadata.len() == remote_size { + println!("File {} already exists with matching size, skipping download", filename); + continue; + } + } + } + } + } + } + + println!("Downloading {} from {}", filename, download_url); + + let response = client.get(download_url).send().await?; + if !response.status().is_success() { + eyre::bail!( + "Failed to download {}: HTTP status {}", + filename, + response.status() + ); + } + + // Stream the content directly to file instead of loading into memory + let mut file = std::fs::File::create(&local_file_path)?; + let mut stream = response.bytes_stream(); + + use futures_util::StreamExt; + while let Some(chunk) = stream.next().await { + std::io::Write::write_all(&mut file, &chunk?)?; + } + } + + // Step 4: Return the storage path + Ok(storage_path) + } +} + #[derive(Clone, Serialize, Deserialize)] pub struct LocalProverConfig { pub sdk_config: SdkConfig, @@ -45,7 +144,11 @@ impl LocalProverConfig { #[derive(Clone, Serialize, Deserialize)] pub struct CircuitConfig { pub hard_fork_name: String, + /// The path to save assets for a specified hard fork phase pub workspace_path: String, + #[serde(flatten)] + /// The location data for dynamic loading + pub location_data: AssetsLocationData, /// cached vk value to save some initial cost, for debugging only #[serde(default)] pub vks: HashMap, @@ -56,7 +159,7 @@ pub struct LocalProver { next_task_id: u64, current_task: Option>>, - handlers: HashMap>>, + handlers: HashMap>, } #[async_trait] @@ -64,24 +167,15 @@ impl ProvingService for LocalProver { fn is_local(&self) -> bool { true } - async fn get_vks(&self, req: GetVkRequest) -> GetVkResponse { - let mut vks = vec![]; - for (hard_fork_name, cfg) in self.config.circuits.iter() { - for proof_type in &req.proof_types { - if let Some(vk) = cfg.vks.get(proof_type) { - vks.push(vk.clone()) - } else { - let handler = self.get_or_init_handler(hard_fork_name); - vks.push(handler.get_vk(*proof_type).await); - } - } + async fn get_vks(&self, _: GetVkRequest) -> GetVkResponse { + // get vk has been deprecated in new prover with dynamic asset loading scheme + GetVkResponse { + vks: vec![], + error: None, } - - GetVkResponse { vks, error: None } } async fn prove(&mut self, req: ProveRequest) -> ProveResponse { - let handler = self.get_or_init_handler(&req.hard_fork_name); - match self.do_prove(req, handler).await { + match self.do_prove(req).await { Ok(resp) => resp, Err(e) => ProveResponse { status: TaskStatus::Failed, @@ -132,34 +226,91 @@ impl ProvingService for LocalProver { } } +static GLOBAL_ASSET_URLS: LazyLock>> = + LazyLock::new(|| { + const ASSETS_JSON: &str = include_str!("../assets_url_preset.json"); + serde_json::from_str(ASSETS_JSON).expect("Failed to parse assets_url_preset.json") + }); + impl LocalProver { - pub fn new(config: LocalProverConfig) -> Self { - let handlers = config - .circuits - .keys() - .map(|k| (k.clone(), OnceLock::new())) - .collect(); + pub fn new(mut config: LocalProverConfig) -> Self { + for (fork_name, circuit_config) in config.circuits.iter_mut() { + // validate each base url + circuit_config.location_data.validate().unwrap(); + let mut template_url_mapping = GLOBAL_ASSET_URLS + .get(&fork_name.to_lowercase()) + .cloned() + .unwrap_or_default(); + + // apply default settings in template + for (key, url) in circuit_config.location_data.asset_detours.drain() { + template_url_mapping.insert(key, url); + } + + circuit_config.location_data.asset_detours = template_url_mapping; + + // validate each detours url + for url in circuit_config.location_data.asset_detours.values() { + assert!( + url.path().ends_with('/'), + "url {} must be end with /", + url.as_str() + ); + } + } + Self { config, next_task_id: 0, current_task: None, - handlers, + handlers: HashMap::new(), } } - async fn do_prove( - &mut self, - req: ProveRequest, - handler: Arc, - ) -> Result { + async fn do_prove(&mut self, req: ProveRequest) -> Result { self.next_task_id += 1; let duration = SystemTime::now().duration_since(UNIX_EPOCH).unwrap(); let created_at = duration.as_secs() as f64 + duration.subsec_nanos() as f64 * 1e-9; - let req_clone = req.clone(); + let prover_task = UniversalHandler::get_task_from_input(&req.input)?; + let vk = hex::encode(&prover_task.vk); + let handler = if let Some(handler) = self.handlers.get(&vk) { + handler.clone() + } else { + let base_config = self + .config + .circuits + .get(&req.hard_fork_name) + .ok_or_else(|| { + eyre::eyre!( + "coordinator sent unexpected forkname {}", + req.hard_fork_name + ) + })?; + let url_base = if let Some(url) = base_config.location_data.asset_detours.get(&vk) { + url.clone() + } else { + base_config + .location_data + .gen_asset_url(&vk, req.proof_type)? + }; + let asset_path = base_config + .location_data + .get_asset(&vk, &url_base, &base_config.workspace_path) + .await?; + let circuits_handler = Arc::new(Mutex::new(UniversalHandler::new( + &asset_path, + req.proof_type, + )?)); + self.handlers.insert(vk, circuits_handler.clone()); + circuits_handler + }; + let handle = Handle::current(); - let task_handle = - tokio::task::spawn_blocking(move || handle.block_on(handler.get_proof_data(req_clone))); + let is_evm = req.proof_type == ProofType::Bundle; + let task_handle = tokio::task::spawn_blocking(move || { + handle.block_on(handler.get_proof_data(&prover_task, is_evm)) + }); self.current_task = Some(task_handle); Ok(ProveResponse { @@ -173,77 +324,4 @@ impl LocalProver { ..Default::default() }) } - - fn get_or_init_handler(&self, hard_fork_name: &str) -> Arc { - let lk = self - .handlers - .get(hard_fork_name) - .expect("coordinator should never sent unexpected forkname"); - lk.get_or_init(|| self.new_handler(hard_fork_name)).clone() - } - - pub fn new_handler(&self, hard_fork_name: &str) -> Arc { - // if we got assigned a task for an unknown hard fork, there is something wrong in the - // coordinator - let config = self.config.circuits.get(hard_fork_name).unwrap(); - - match hard_fork_name { - // The new EuclidV2Handler is a universal handler - // We can add other handler implements if needed - "some future forkname" => unreachable!(), - _ => Arc::new(Arc::new(Mutex::new(EuclidV2Handler::new(config)))) - as Arc, - } - } - - pub fn dump_verifier_assets(&self, hard_fork_name: &str, out_path: &Path) -> Result<()> { - let config = self - .config - .circuits - .get(hard_fork_name) - .ok_or_else(|| eyre::eyre!("no corresponding config for fork {hard_fork_name}"))?; - - if !config.vks.is_empty() { - eyre::bail!("clean vks cache first or we will have wrong dumped vk"); - } - - let workspace_path = &config.workspace_path; - let universal_prover = EuclidV2Handler::new(config); - let _ = universal_prover - .get_prover() - .dump_universal_verifier(Some(out_path))?; - - #[derive(Debug, serde::Serialize)] - struct VKDump { - pub chunk_vk: String, - pub batch_vk: String, - pub bundle_vk: String, - } - - let dump = VKDump { - chunk_vk: universal_prover.get_vk_and_cache(ProofType::Chunk), - batch_vk: universal_prover.get_vk_and_cache(ProofType::Batch), - bundle_vk: universal_prover.get_vk_and_cache(ProofType::Bundle), - }; - - let f = File::create(out_path.join("openVmVk.json"))?; - serde_json::to_writer(f, &dump)?; - - // Copy verifier.bin from workspace bundle directory to output path - let bundle_verifier_path = Path::new(workspace_path) - .join("bundle") - .join("verifier.bin"); - if bundle_verifier_path.exists() { - let dest_path = out_path.join("verifier.bin"); - std::fs::copy(&bundle_verifier_path, &dest_path) - .map_err(|e| eyre::eyre!("Failed to copy verifier.bin: {}", e))?; - } else { - eprintln!( - "Warning: verifier.bin not found at {:?}", - bundle_verifier_path - ); - } - - Ok(()) - } } diff --git a/crates/prover-bin/src/zk_circuits_handler.rs b/crates/prover-bin/src/zk_circuits_handler.rs index f4c84b5a12..f6b9f0086c 100644 --- a/crates/prover-bin/src/zk_circuits_handler.rs +++ b/crates/prover-bin/src/zk_circuits_handler.rs @@ -1,65 +1,13 @@ //pub mod euclid; #[allow(non_snake_case)] -pub mod euclidV2; +pub mod universal; use async_trait::async_trait; use eyre::Result; -use scroll_proving_sdk::prover::{proving_service::ProveRequest, ProofType}; -use scroll_zkvm_prover_euclid::ProverConfig; -use std::path::Path; +use scroll_zkvm_types::ProvingTask; #[async_trait] pub trait CircuitsHandler: Sync + Send { - async fn get_vk(&self, task_type: ProofType) -> String; - - async fn get_proof_data(&self, prove_request: ProveRequest) -> Result; -} - -#[derive(Clone, Copy)] -pub(crate) enum Phase { - EuclidV2, -} - -impl Phase { - pub fn phase_spec_chunk(&self, workspace_path: &Path) -> ProverConfig { - let dir_cache = Some(workspace_path.join("cache")); - let path_app_exe = workspace_path.join("chunk/app.vmexe"); - let path_app_config = workspace_path.join("chunk/openvm.toml"); - let segment_len = Some((1 << 22) - 100); - ProverConfig { - dir_cache, - path_app_config, - path_app_exe, - segment_len, - ..Default::default() - } - } - - pub fn phase_spec_batch(&self, workspace_path: &Path) -> ProverConfig { - let dir_cache = Some(workspace_path.join("cache")); - let path_app_exe = workspace_path.join("batch/app.vmexe"); - let path_app_config = workspace_path.join("batch/openvm.toml"); - let segment_len = Some((1 << 22) - 100); - ProverConfig { - dir_cache, - path_app_config, - path_app_exe, - segment_len, - ..Default::default() - } - } - - pub fn phase_spec_bundle(&self, workspace_path: &Path) -> ProverConfig { - let dir_cache = Some(workspace_path.join("cache")); - let path_app_config = workspace_path.join("bundle/openvm.toml"); - let segment_len = Some((1 << 22) - 100); - ProverConfig { - dir_cache, - path_app_config, - segment_len, - path_app_exe: workspace_path.join("bundle/app.vmexe"), - ..Default::default() - } - } + async fn get_proof_data(&self, u_task: &ProvingTask, need_snark: bool) -> Result; } diff --git a/crates/prover-bin/src/zk_circuits_handler/euclid.rs b/crates/prover-bin/src/zk_circuits_handler/euclid.rs deleted file mode 100644 index 1235da4fc3..0000000000 --- a/crates/prover-bin/src/zk_circuits_handler/euclid.rs +++ /dev/null @@ -1,144 +0,0 @@ -use std::{path::Path, sync::Arc}; - -use super::CircuitsHandler; -use anyhow::{anyhow, Result}; -use async_trait::async_trait; -use scroll_proving_sdk::prover::{proving_service::ProveRequest, ProofType}; -use scroll_zkvm_prover_euclid::{ - task::{batch::BatchProvingTask, bundle::BundleProvingTask, chunk::ChunkProvingTask}, - BatchProver, BundleProverEuclidV1, ChunkProver, ProverConfig, -}; -use tokio::sync::Mutex; -pub struct EuclidHandler { - chunk_prover: ChunkProver, - batch_prover: BatchProver, - bundle_prover: BundleProverEuclidV1, -} - -#[derive(Clone, Copy)] -pub(crate) enum Phase { - EuclidV1, - EuclidV2, -} - -impl Phase { - pub fn as_str(&self) -> &str { - match self { - Phase::EuclidV1 => "euclidv1", - Phase::EuclidV2 => "euclidv2", - } - } - - pub fn phase_spec_chunk(&self, workspace_path: &Path) -> ProverConfig { - let dir_cache = Some(workspace_path.join("cache")); - let path_app_exe = workspace_path.join("chunk/app.vmexe"); - let path_app_config = workspace_path.join("chunk/openvm.toml"); - let segment_len = Some((1 << 22) - 100); - ProverConfig { - dir_cache, - path_app_config, - path_app_exe, - segment_len, - ..Default::default() - } - } - - pub fn phase_spec_batch(&self, workspace_path: &Path) -> ProverConfig { - let dir_cache = Some(workspace_path.join("cache")); - let path_app_exe = workspace_path.join("batch/app.vmexe"); - let path_app_config = workspace_path.join("batch/openvm.toml"); - let segment_len = Some((1 << 22) - 100); - ProverConfig { - dir_cache, - path_app_config, - path_app_exe, - segment_len, - ..Default::default() - } - } - - pub fn phase_spec_bundle(&self, workspace_path: &Path) -> ProverConfig { - let dir_cache = Some(workspace_path.join("cache")); - let path_app_config = workspace_path.join("bundle/openvm.toml"); - let segment_len = Some((1 << 22) - 100); - match self { - Phase::EuclidV1 => ProverConfig { - dir_cache, - path_app_config, - segment_len, - path_app_exe: workspace_path.join("bundle/app_euclidv1.vmexe"), - ..Default::default() - }, - Phase::EuclidV2 => ProverConfig { - dir_cache, - path_app_config, - segment_len, - path_app_exe: workspace_path.join("bundle/app.vmexe"), - ..Default::default() - }, - } - } -} - -unsafe impl Send for EuclidHandler {} - -impl EuclidHandler { - pub fn new(workspace_path: &str) -> Self { - let p = Phase::EuclidV1; - let workspace_path = Path::new(workspace_path); - let chunk_prover = ChunkProver::setup(p.phase_spec_chunk(workspace_path)) - .expect("Failed to setup chunk prover"); - - let batch_prover = BatchProver::setup(p.phase_spec_batch(workspace_path)) - .expect("Failed to setup batch prover"); - - let bundle_prover = BundleProverEuclidV1::setup(p.phase_spec_bundle(workspace_path)) - .expect("Failed to setup bundle prover"); - - Self { - chunk_prover, - batch_prover, - bundle_prover, - } - } -} - -#[async_trait] -impl CircuitsHandler for Arc> { - async fn get_vk(&self, task_type: ProofType) -> Option> { - Some(match task_type { - ProofType::Chunk => self.try_lock().unwrap().chunk_prover.get_app_vk(), - ProofType::Batch => self.try_lock().unwrap().batch_prover.get_app_vk(), - ProofType::Bundle => self.try_lock().unwrap().bundle_prover.get_app_vk(), - _ => unreachable!("Unsupported proof type"), - }) - } - - async fn get_proof_data(&self, prove_request: ProveRequest) -> Result { - match prove_request.proof_type { - ProofType::Chunk => { - let task: ChunkProvingTask = serde_json::from_str(&prove_request.input)?; - let proof = self.try_lock().unwrap().chunk_prover.gen_proof(&task)?; - - Ok(serde_json::to_string(&proof)?) - } - ProofType::Batch => { - let task: BatchProvingTask = serde_json::from_str(&prove_request.input)?; - let proof = self.try_lock().unwrap().batch_prover.gen_proof(&task)?; - - Ok(serde_json::to_string(&proof)?) - } - ProofType::Bundle => { - let batch_proofs: BundleProvingTask = serde_json::from_str(&prove_request.input)?; - let proof = self - .try_lock() - .unwrap() - .bundle_prover - .gen_proof_evm(&batch_proofs)?; - - Ok(serde_json::to_string(&proof)?) - } - _ => Err(anyhow!("Unsupported proof type")), - } - } -} diff --git a/crates/prover-bin/src/zk_circuits_handler/euclidV2.rs b/crates/prover-bin/src/zk_circuits_handler/euclidV2.rs deleted file mode 100644 index 79df0fc276..0000000000 --- a/crates/prover-bin/src/zk_circuits_handler/euclidV2.rs +++ /dev/null @@ -1,119 +0,0 @@ -use std::{ - collections::HashMap, - path::Path, - sync::{Arc, OnceLock}, -}; - -use super::{CircuitsHandler, Phase}; -use crate::prover::CircuitConfig; -use async_trait::async_trait; -use base64::{prelude::BASE64_STANDARD, Engine}; -use eyre::Result; -use scroll_proving_sdk::prover::{proving_service::ProveRequest, ProofType}; -use scroll_zkvm_prover_euclid::{BatchProver, BundleProverEuclidV2, ChunkProver}; -use scroll_zkvm_types::ProvingTask; -use tokio::sync::Mutex; -pub struct EuclidV2Handler { - chunk_prover: ChunkProver, - batch_prover: BatchProver, - bundle_prover: BundleProverEuclidV2, - cached_vks: HashMap>, -} - -unsafe impl Send for EuclidV2Handler {} - -impl EuclidV2Handler { - pub fn new(cfg: &CircuitConfig) -> Self { - let workspace_path = &cfg.workspace_path; - let p = Phase::EuclidV2; - let workspace_path = Path::new(workspace_path); - let chunk_prover = ChunkProver::setup(p.phase_spec_chunk(workspace_path)) - .expect("Failed to setup chunk prover"); - - let batch_prover = BatchProver::setup(p.phase_spec_batch(workspace_path)) - .expect("Failed to setup batch prover"); - - let bundle_prover = BundleProverEuclidV2::setup(p.phase_spec_bundle(workspace_path)) - .expect("Failed to setup bundle prover"); - - let build_vk_cache = |proof_type: ProofType| { - let vk = if let Some(vk) = cfg.vks.get(&proof_type) { - OnceLock::from(vk.clone()) - } else { - OnceLock::new() - }; - (proof_type, vk) - }; - - Self { - chunk_prover, - batch_prover, - bundle_prover, - cached_vks: HashMap::from([ - build_vk_cache(ProofType::Chunk), - build_vk_cache(ProofType::Batch), - build_vk_cache(ProofType::Bundle), - ]), - } - } - - /// get_prover get the inner prover, later we would replace chunk/batch/bundle_prover with - /// universal prover, before that, use bundle_prover as the represent one - pub fn get_prover(&self) -> &BundleProverEuclidV2 { - &self.bundle_prover - } - - pub fn get_vk_and_cache(&self, task_type: ProofType) -> String { - match task_type { - ProofType::Chunk => self.cached_vks[&ProofType::Chunk] - .get_or_init(|| BASE64_STANDARD.encode(self.chunk_prover.get_app_vk())), - ProofType::Batch => self.cached_vks[&ProofType::Batch] - .get_or_init(|| BASE64_STANDARD.encode(self.batch_prover.get_app_vk())), - ProofType::Bundle => self.cached_vks[&ProofType::Bundle] - .get_or_init(|| BASE64_STANDARD.encode(self.bundle_prover.get_app_vk())), - _ => unreachable!("Unsupported proof type {:?}", task_type), - } - .clone() - } -} - -#[async_trait] -impl CircuitsHandler for Arc> { - async fn get_vk(&self, task_type: ProofType) -> String { - self.lock().await.get_vk_and_cache(task_type) - } - - async fn get_proof_data(&self, prove_request: ProveRequest) -> Result { - let handler_self = self.lock().await; - let u_task: ProvingTask = serde_json::from_str(&prove_request.input)?; - let expected_vk = handler_self.get_vk_and_cache(prove_request.proof_type); - if BASE64_STANDARD.encode(&u_task.vk) != expected_vk { - eyre::bail!( - "vk is not match!, prove type {:?}, expected {}, get {}", - prove_request.proof_type, - expected_vk, - BASE64_STANDARD.encode(&u_task.vk), - ); - } - - let proof = match prove_request.proof_type { - ProofType::Chunk => handler_self - .chunk_prover - .gen_proof_universal(&u_task, false)?, - ProofType::Batch => handler_self - .batch_prover - .gen_proof_universal(&u_task, false)?, - ProofType::Bundle => handler_self - .bundle_prover - .gen_proof_universal(&u_task, true)?, - _ => { - return Err(eyre::eyre!( - "Unsupported proof type {:?}", - prove_request.proof_type - )) - } - }; - //TODO: check expected PI - Ok(serde_json::to_string(&proof)?) - } -} diff --git a/crates/prover-bin/src/zk_circuits_handler/universal.rs b/crates/prover-bin/src/zk_circuits_handler/universal.rs new file mode 100644 index 0000000000..12038d4511 --- /dev/null +++ b/crates/prover-bin/src/zk_circuits_handler/universal.rs @@ -0,0 +1,63 @@ +use std::path::Path; + +use super::CircuitsHandler; +use async_trait::async_trait; +use base64::{prelude::BASE64_STANDARD, Engine}; +use eyre::Result; +use scroll_proving_sdk::prover::ProofType; +use scroll_zkvm_prover::{Prover, ProverConfig}; +use scroll_zkvm_types::ProvingTask; +use tokio::sync::Mutex; +pub struct UniversalHandler { + prover: Prover, +} + +unsafe impl Send for UniversalHandler {} + +impl UniversalHandler { + pub fn new(workspace_path: impl AsRef, proof_type: ProofType) -> Result { + let path_app_exe = workspace_path.as_ref().join("app.vmexe"); + let path_app_config = workspace_path.as_ref().join("openvm.toml"); + let segment_len = Some((1 << 22) - 100); + let config = ProverConfig { + path_app_config, + path_app_exe, + segment_len, + }; + + let use_evm = proof_type == ProofType::Bundle; + + let prover = Prover::setup(config, use_evm, None)?; + Ok(Self { prover }) + } + + /// get_prover get the inner prover, later we would replace chunk/batch/bundle_prover with + /// universal prover, before that, use bundle_prover as the represent one + pub fn get_prover(&self) -> &Prover { + &self.prover + } + + pub fn get_task_from_input(input: &str) -> Result { + Ok(serde_json::from_str(input)?) + } +} + +#[async_trait] +impl CircuitsHandler for Mutex { + async fn get_proof_data(&self, u_task: &ProvingTask, need_snark: bool) -> Result { + let handler_self = self.lock().await; + + if need_snark && handler_self.prover.evm_prover.is_none() { + eyre::bail!( + "do not init prover for evm (vk: {})", + BASE64_STANDARD.encode(handler_self.get_prover().get_app_vk()) + ) + } + + let proof = handler_self + .get_prover() + .gen_proof_universal(u_task, need_snark)?; + + Ok(serde_json::to_string(&proof)?) + } +} diff --git a/zkvm-prover/Makefile b/zkvm-prover/Makefile index 412d6bee97..ba5eacb1f3 100644 --- a/zkvm-prover/Makefile +++ b/zkvm-prover/Makefile @@ -3,8 +3,6 @@ RUST_MIN_STACK ?= 16777216 export RUST_MIN_STACK -CIRCUIT_STUFF = .work/euclid/chunk/app.vmexe .work/feynman/chunk/app.vmexe - ifeq (4.3,$(firstword $(sort $(MAKE_VERSION) 4.3))) PLONKY3_VERSION=$(shell grep -m 1 "Plonky3.git" ../Cargo.lock | cut -d "#" -f2 | cut -c-7) else @@ -53,16 +51,10 @@ lint: cargo clippy --all-features --all-targets -- -D warnings cargo fmt --all -$(CIRCUIT_STUFF): - @echo "Download stuff with download-release.sh, and put them into correct directory"; - @exit 1; - -test_run: $(CIRCUIT_STUFF) +test_run: GO_TAG=${GO_TAG} GIT_REV=${GIT_REV} ZK_VERSION=${ZK_VERSION} cargo run --release -p prover -- --config ./config.json -test_e2e_run: $(CIRCUIT_STUFF) ${E2E_HANDLE_SET} +test_e2e_run: ${E2E_HANDLE_SET} GO_TAG=${GO_TAG} GIT_REV=${GIT_REV} ZK_VERSION=${ZK_VERSION} cargo run --release -p prover -- --config ./config.json handle ${E2E_HANDLE_SET} -gen_verifier_stuff: - mkdir -p ${DUMP_DIR} - GO_TAG=${GO_TAG} GIT_REV=${GIT_REV} ZK_VERSION=${ZK_VERSION} cargo run --release -p prover -- --config ./config.json --forkname feynman dump ${DUMP_DIR} + diff --git a/zkvm-prover/config.json.template b/zkvm-prover/config.json.template index 529e1a9075..9f804c5226 100644 --- a/zkvm-prover/config.json.template +++ b/zkvm-prover/config.json.template @@ -24,13 +24,10 @@ "db_path": ".work/db" }, "circuits": { - "euclidV2": { - "hard_fork_name": "euclidV2", - "workspace_path": ".work/euclid" - }, "feynman": { "hard_fork_name": "feynman", - "workspace_path": ".work/feynman1" - }, + "base_url": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/feynman/", + "workspace_path": ".work/feynman" + } } } \ No newline at end of file