1- use crate :: {
2- get_padded_binary, Machine , ProofMetadata , UNIVERSAL_CIRCUIT_NO_DELEGATION_VERIFIER ,
3- UNIVERSAL_CIRCUIT_VERIFIER ,
4- } ;
1+ use crate :: { get_padded_binary, Machine , ProofMetadata , UNIVERSAL_CIRCUIT_VERIFIER } ;
52use clap:: ValueEnum ;
63use std:: alloc:: Global ;
74
85use crate :: {
9- base_layer_verifier_vk, compute_chain_encoding, final_recursion_layer_verifier_vk,
10- recursion_layer_no_delegation_verifier_vk, recursion_layer_verifier_vk,
11- recursion_log_23_layer_verifier_vk, universal_circuit_log_23_verifier_vk,
12- universal_circuit_no_delegation_verifier_vk, universal_circuit_verifier_vk,
6+ compute_chain_encoding, recursion_layer_verifier_vk, recursion_log_23_layer_verifier_vk,
7+ universal_circuit_log_23_verifier_vk, universal_circuit_verifier_vk,
138} ;
149use verifier_common:: blake2s_u32:: BLAKE2S_DIGEST_SIZE_U32_WORDS ;
1510
1611/// We have two layers of recursion:
1712/// 1. Reduced machine (2^22 cycles) + blake delegation
1813/// 2. Here we have two options:
19- /// - Final reduced machine (2^25 cycles)
14+ /// - Final reduced machine (2^25 cycles) - no longer supported.
2015/// - Reduced log23 machine (2^23 cycles) + blake delegation
2116/// Note: end_params constant differs if we do 1 or multiple repetitions of the 2nd layer.
2217/// So we need to run the 2nd layer exactly one time or at least twice.
2318/// Then we can define four recursion strategies:
2419#[ derive( Clone , Copy , Debug , ValueEnum , PartialEq , Eq ) ]
2520pub enum RecursionStrategy {
26- /// Does 1st layer until 2 reduced + 1 delegation then final reduced machine (always two repetitions)
27- UseFinalMachine ,
21+ /// UseFinalMachine is no longer supported.
22+ // UseFinalMachine,
2823 /// Does 1st layer until 2 reduced + 1 delegation then 1 reduced 2^23 + 1 delegation (one repetition)
2924 UseReducedLog23Machine ,
3025 /// Does 1st layer until N reduced + M delegation then reduced 2^23 + delegation (at least two repetitions)
@@ -46,13 +41,6 @@ impl RecursionStrategy {
4641 const M : usize = 2 ;
4742
4843 let continue_first_layer = match self {
49- RecursionStrategy :: UseFinalMachine => {
50- proof_metadata. reduced_proof_count > 2
51- || proof_metadata
52- . delegation_proof_count
53- . iter ( )
54- . any ( |( _, x) | * x > 1 )
55- }
5644 RecursionStrategy :: UseReducedLog23Machine => {
5745 proof_metadata. reduced_proof_count > 2
5846 || proof_metadata
@@ -79,7 +67,6 @@ impl RecursionStrategy {
7967 proof_level : usize ,
8068 ) -> bool {
8169 let continue_second_layer = match self {
82- RecursionStrategy :: UseFinalMachine => proof_metadata. final_proof_count > 1 ,
8370 RecursionStrategy :: UseReducedLog23Machine => {
8471 // In this strategy we should run only one repetition of 2nd layer
8572 assert ! ( proof_level == 0 ) ;
@@ -103,7 +90,6 @@ impl RecursionStrategy {
10390
10491 pub fn get_second_layer_machine ( & self ) -> Machine {
10592 match self {
106- RecursionStrategy :: UseFinalMachine => Machine :: ReducedFinal ,
10793 RecursionStrategy :: UseReducedLog23Machine
10894 | RecursionStrategy :: UseReducedLog23MachineMultiple
10995 | RecursionStrategy :: UseReducedLog23MachineOnly => Machine :: ReducedLog23 ,
@@ -112,9 +98,6 @@ impl RecursionStrategy {
11298
11399 pub fn get_second_layer_binary ( & self ) -> Vec < u32 > {
114100 match self {
115- RecursionStrategy :: UseFinalMachine => {
116- get_padded_binary ( UNIVERSAL_CIRCUIT_NO_DELEGATION_VERIFIER )
117- }
118101 RecursionStrategy :: UseReducedLog23Machine
119102 | RecursionStrategy :: UseReducedLog23MachineMultiple
120103 | RecursionStrategy :: UseReducedLog23MachineOnly => {
@@ -124,10 +107,7 @@ impl RecursionStrategy {
124107 }
125108
126109 pub fn use_final_machine ( & self ) -> bool {
127- match self {
128- RecursionStrategy :: UseFinalMachine => true ,
129- _ => false ,
130- }
110+ false
131111 }
132112}
133113
@@ -143,20 +123,6 @@ pub fn generate_constants_for_binary(
143123 let ( end_params, aux_values) = if universal_verifier {
144124 if recompute {
145125 match recursion_mode {
146- RecursionStrategy :: UseFinalMachine => generate_params_and_register_values (
147- & [
148- ( & base_layer_bin, Machine :: Standard ) ,
149- ( & crate :: UNIVERSAL_CIRCUIT_VERIFIER , Machine :: Reduced ) ,
150- (
151- & crate :: UNIVERSAL_CIRCUIT_NO_DELEGATION_VERIFIER ,
152- Machine :: ReducedFinal ,
153- ) ,
154- ] ,
155- (
156- & crate :: UNIVERSAL_CIRCUIT_NO_DELEGATION_VERIFIER ,
157- Machine :: ReducedFinal ,
158- ) ,
159- ) ,
160126 RecursionStrategy :: UseReducedLog23Machine => generate_params_and_register_values (
161127 & [
162128 ( & base_layer_bin, Machine :: Standard ) ,
@@ -188,19 +154,6 @@ pub fn generate_constants_for_binary(
188154 let base_params = generate_params_for_binary ( & base_layer_bin, Machine :: Standard ) ;
189155
190156 match recursion_mode {
191- RecursionStrategy :: UseFinalMachine => {
192- let aux_values = compute_chain_encoding ( vec ! [
193- [ 0u32 ; 8 ] ,
194- base_params,
195- universal_circuit_verifier_vk( ) . params,
196- universal_circuit_no_delegation_verifier_vk( ) . params,
197- ] ) ;
198-
199- (
200- universal_circuit_no_delegation_verifier_vk ( ) . params ,
201- aux_values,
202- )
203- }
204157 RecursionStrategy :: UseReducedLog23Machine => {
205158 let aux_values = compute_chain_encoding ( vec ! [
206159 [ 0u32 ; 8 ] ,
@@ -234,21 +187,6 @@ pub fn generate_constants_for_binary(
234187 } else {
235188 if recompute {
236189 match recursion_mode {
237- RecursionStrategy :: UseFinalMachine => generate_params_and_register_values (
238- & [
239- ( & base_layer_bin, Machine :: Standard ) ,
240- ( & crate :: BASE_LAYER_VERIFIER , Machine :: Reduced ) ,
241- ( & crate :: RECURSION_LAYER_VERIFIER , Machine :: Reduced ) ,
242- (
243- & crate :: RECURSION_LAYER_NO_DELEGATION_VERIFIER ,
244- Machine :: ReducedFinal ,
245- ) ,
246- ] ,
247- (
248- & crate :: FINAL_RECURSION_LAYER_VERIFIER ,
249- Machine :: ReducedFinal ,
250- ) ,
251- ) ,
252190 RecursionStrategy :: UseReducedLog23Machine => generate_params_and_register_values (
253191 & [
254192 ( & base_layer_bin, Machine :: Standard ) ,
@@ -263,17 +201,6 @@ pub fn generate_constants_for_binary(
263201 let base_params = generate_params_for_binary ( & base_layer_bin, Machine :: Standard ) ;
264202
265203 match recursion_mode {
266- RecursionStrategy :: UseFinalMachine => {
267- let aux_values = compute_chain_encoding ( vec ! [
268- [ 0u32 ; 8 ] ,
269- base_params,
270- base_layer_verifier_vk( ) . params,
271- recursion_layer_verifier_vk( ) . params,
272- recursion_layer_no_delegation_verifier_vk( ) . params,
273- ] ) ;
274-
275- ( final_recursion_layer_verifier_vk ( ) . params , aux_values)
276- }
277204 RecursionStrategy :: UseReducedLog23Machine => {
278205 let aux_values = compute_chain_encoding ( vec ! [
279206 [ 0u32 ; 8 ] ,
0 commit comments