@@ -84,72 +84,54 @@ pub type SchedulerProof = franklin_crypto::boojum::cs::implementations::proof::P
8484 GoldilocksExt2 ,
8585> ;
8686
87- pub fn run_proof_chain < BS , PS > (
87+ pub fn run_proof_chain < BS > (
8888 snark_wrapper : SnarkWrapper ,
8989 blob_storage : & BS ,
90- proof_storage : & mut PS ,
91- ) where
90+ scheduler_proof : SchedulerProof ,
91+ ) -> SnarkWrapperProof
92+ where
9293 BS : BlobStorage ,
93- PS : ProofStorage ,
9494{
9595 match snark_wrapper {
96- SnarkWrapper :: Plonk => run_proof_chain_with_plonk ( blob_storage, proof_storage ) ,
97- SnarkWrapper :: FFfonk => run_proof_chain_with_fflonk ( blob_storage, proof_storage ) ,
96+ SnarkWrapper :: Plonk => run_proof_chain_with_plonk ( blob_storage, scheduler_proof ) ,
97+ SnarkWrapper :: FFfonk => run_proof_chain_with_fflonk ( blob_storage, scheduler_proof ) ,
9898 }
9999}
100100
101- pub fn run_proof_chain_with_fflonk < BS , PS > ( blob_storage : & BS , proof_storage : & mut PS )
101+ pub fn run_proof_chain_with_fflonk < BS > ( blob_storage : & BS , scheduler_proof : SchedulerProof ) -> SnarkWrapperProof
102102where
103103 BS : BlobStorage ,
104- PS : ProofStorage ,
105104{
106105 let context_manager = SimpleContextManager :: new ( ) ;
107106 let start = std:: time:: Instant :: now ( ) ;
108107 <FflonkSnarkWrapper as SnarkWrapperStep >:: run_pre_initialization_tasks ( ) ;
109108 let compact_raw_crs =
110109 <FflonkSnarkWrapper as SnarkWrapperStep >:: load_compact_raw_crs ( blob_storage) ;
111110 let fflonk_precomputation = FflonkSnarkWrapper :: get_precomputation ( blob_storage) ;
112-
113- let input_proof = proof_storage. get_scheduler_proof ( ) ;
114-
115111 let next_proof =
116- CompressionMode1 :: prove_compression_step ( input_proof, blob_storage, & context_manager) ;
117- let compression_proof_1 = ZkSyncCompressionLayerProof :: from_inner ( 1 , next_proof. clone ( ) ) ;
118- proof_storage. save_compression_layer_proof ( 1 , compression_proof_1. clone ( ) ) ;
112+ CompressionMode1 :: prove_compression_step ( scheduler_proof, blob_storage, & context_manager) ;
119113
120114 let next_proof = CompressionMode2 :: prove_compression_step :: < _ , SimpleContextManager > (
121115 next_proof,
122116 blob_storage,
123117 & context_manager,
124118 ) ;
125- let compression_proof_2 = ZkSyncCompressionLayerProof :: from_inner ( 2 , next_proof. clone ( ) ) ;
126- proof_storage. save_compression_layer_proof ( 2 , compression_proof_2. clone ( ) ) ;
127-
128119 let next_proof = CompressionMode3 :: prove_compression_step :: < _ , SimpleContextManager > (
129120 next_proof,
130121 blob_storage,
131122 & context_manager,
132123 ) ;
133- let compression_proof_3 = ZkSyncCompressionLayerProof :: from_inner ( 3 , next_proof. clone ( ) ) ;
134- proof_storage. save_compression_layer_proof ( 3 , compression_proof_3. clone ( ) ) ;
135124
136125 let next_proof = CompressionMode4 :: prove_compression_step :: < _ , SimpleContextManager > (
137126 next_proof,
138127 blob_storage,
139128 & context_manager,
140129 ) ;
141- let compression_proof_4 = ZkSyncCompressionLayerProof :: from_inner ( 4 , next_proof. clone ( ) ) ;
142- proof_storage. save_compression_layer_proof ( 4 , compression_proof_4. clone ( ) ) ;
143-
144130 let next_proof = CompressionMode5ForWrapper :: prove_compression_step :: < _ , SimpleContextManager > (
145131 next_proof,
146132 blob_storage,
147133 & context_manager,
148134 ) ;
149- proof_storage. save_compression_wrapper_proof (
150- 5 ,
151- ZkSyncCompressionForWrapperProof :: from_inner ( 5 , next_proof. clone ( ) ) ,
152- ) ;
153135 println ! (
154136 "Proving entire compression chain took {}s" ,
155137 start. elapsed( ) . as_secs( )
@@ -165,7 +147,7 @@ where
165147 "Proving entire chain with snark wrapper took {}s" ,
166148 start. elapsed( ) . as_secs( )
167149 ) ;
168- proof_storage . save_fflonk_proof ( final_proof) ;
150+ SnarkWrapperProof :: FFfonk ( final_proof)
169151}
170152
171153pub fn precompute_proof_chain_with_fflonk < BS > ( blob_storage : & BS )
@@ -201,28 +183,21 @@ where
201183 ) ;
202184}
203185
204- pub fn run_proof_chain_with_plonk < BS , PS > ( blob_storage : & BS , proof_storage : & mut PS )
186+ pub fn run_proof_chain_with_plonk < BS > ( blob_storage : & BS , scheduler_proof : SchedulerProof ) -> SnarkWrapperProof
205187where
206188 BS : BlobStorage ,
207- PS : ProofStorage ,
208189{
209190 let context_manager = SimpleContextManager :: new ( ) ;
210191 let start = std:: time:: Instant :: now ( ) ;
211192 let compact_raw_crs =
212193 <PlonkSnarkWrapper as SnarkWrapperStep >:: load_compact_raw_crs ( blob_storage) ;
213194 let plonk_precomputation = PlonkSnarkWrapper :: get_precomputation ( blob_storage) ;
214195
215- let input_proof = proof_storage. get_scheduler_proof ( ) ;
216-
217196 let next_proof = CompressionMode1ForWrapper :: prove_compression_step (
218- input_proof ,
197+ scheduler_proof ,
219198 blob_storage,
220199 & context_manager,
221200 ) ;
222- proof_storage. save_compression_wrapper_proof (
223- 1 ,
224- ZkSyncCompressionForWrapperProof :: from_inner ( 1 , next_proof. clone ( ) ) ,
225- ) ;
226201
227202 let final_proof = PlonkSnarkWrapper :: prove_snark_wrapper_step (
228203 compact_raw_crs,
@@ -235,7 +210,7 @@ where
235210 "Entire compression chain with plonk took {}s" ,
236211 start. elapsed( ) . as_secs( )
237212 ) ;
238- proof_storage . save_plonk_proof ( final_proof) ;
213+ SnarkWrapperProof :: Plonk ( final_proof)
239214}
240215
241216pub fn precompute_proof_chain_with_plonk < BS > ( blob_storage : & BS )
0 commit comments