syntax = "proto3";
import "zksync/config/object_store.proto";
package zksync.config.prover;
message ProofCompressor {
optional uint32 compression_mode = 1; // required; u8
optional uint32 prometheus_listener_port = 2; // required; u16
optional string prometheus_pushgateway_url = 3; // required
optional uint64 prometheus_push_interval_ms = 4; // optional; ms
optional uint32 generation_timeout_in_secs = 5; // required; s
optional uint32 max_attempts = 6; // required
optional string universal_setup_path = 7; // required; fs path
optional string universal_setup_download_url = 8; // required
optional bool verify_wrapper_proof = 9; // required
}
enum SetupLoadMode {
FROM_DISK = 0;
FROM_MEMORY = 1;
}
message Prover {
optional string setup_data_path = 1; // required; fs path?
optional uint32 prometheus_port = 2; // required; u16
optional uint32 max_attempts = 3; // required
optional uint32 generation_timeout_in_secs = 4; // required; s
optional SetupLoadMode setup_load_mode = 7; // required
optional uint32 specialized_group_id = 8; // required; u8
optional uint64 queue_capacity = 10; // required
optional uint32 witness_vector_receiver_port = 11; // required; u16
optional string zone_read_url = 12; // required
optional uint32 availability_check_interval_in_secs = 21; // optional; s
optional bool shall_save_to_public_bucket = 13; // required
optional config.object_store.ObjectStore public_object_store = 22;
optional config.object_store.ObjectStore prover_object_store = 23;
reserved 5, 6, 9; reserved "base_layer_circuit_ids_to_be_verified", "recursive_layer_circuit_ids_to_be_verified", "witness_vector_generator_thread_count";
}
message CircuitIdRoundTuple {
optional uint32 circuit_id = 1; // required; u8
optional uint32 aggregation_round = 2; // required; u8
}
message ProverGroup {
repeated CircuitIdRoundTuple group_0 = 1;
repeated CircuitIdRoundTuple group_1 = 2;
repeated CircuitIdRoundTuple group_2 = 3;
repeated CircuitIdRoundTuple group_3 = 4;
repeated CircuitIdRoundTuple group_4 = 5;
repeated CircuitIdRoundTuple group_5 = 6;
repeated CircuitIdRoundTuple group_6 = 7;
repeated CircuitIdRoundTuple group_7 = 8;
repeated CircuitIdRoundTuple group_8 = 9;
repeated CircuitIdRoundTuple group_9 = 10;
repeated CircuitIdRoundTuple group_10 = 11;
repeated CircuitIdRoundTuple group_11 = 12;
repeated CircuitIdRoundTuple group_12 = 13;
repeated CircuitIdRoundTuple group_13 = 14;
repeated CircuitIdRoundTuple group_14 = 15;
}
message ProverGateway {
optional string api_url = 1; // required
optional uint32 api_poll_duration_secs = 2; // required; s
optional uint32 prometheus_listener_port = 3; // required; u16
optional string prometheus_pushgateway_url = 4; // required
optional uint64 prometheus_push_interval_ms = 5; // optional; ms
}
message WitnessGenerator {
optional uint32 generation_timeout_in_secs = 1; // required;
optional uint32 max_attempts = 2; // required;
optional uint32 last_l1_batch_to_process = 5; // optional
optional bool shall_save_to_public_bucket = 7; // required
optional uint32 basic_generation_timeout_in_secs = 8; // optional;
optional uint32 leaf_generation_timeout_in_secs = 9; // optional;
optional uint32 node_generation_timeout_in_secs = 10; // optional;
optional uint32 scheduler_generation_timeout_in_secs = 11; // optional;
optional uint32 recursion_tip_timeout_in_secs = 12; // optional;
optional uint32 prometheus_listener_port = 13; // optional;
reserved 3, 4, 6;
reserved "dump_arguments_for_blocks", "force_process_block", "blocks_proving_percentage";
}
message WitnessVectorGenerator {
optional uint32 max_prover_reservation_duration_in_secs = 1; // required; s
optional uint32 prover_instance_wait_timeout_in_secs = 2; // required; s
optional uint32 prover_instance_poll_time_in_milli_secs = 3; // required; ms
optional uint32 prometheus_listener_port = 4; // required; u16
optional string prometheus_pushgateway_url = 5; // required
optional uint64 prometheus_push_interval_ms = 6; // optional; ms
optional uint32 specialized_group_id = 7; // required; u8
}
message ProofDataHandler {
optional uint32 http_port = 1; // required; u16
optional uint32 proof_generation_timeout_in_secs = 2; // required; s
optional bool tee_support = 3; // required
}