zksync_protobuf_config 0.1.0

Protobuf deserialization for ZKsync configs
Documentation
syntax = "proto3";

package zksync.config.database;

import "zksync/config/experimental.proto";

enum MerkleTreeMode {
  FULL = 0;
  LIGHTWEIGHT = 1;
}

message MerkleTree {
  optional string path = 1; // optional; fs path
  optional MerkleTreeMode mode = 2; // optional
  optional uint64 multi_get_chunk_size = 3; // optional; ?
  optional uint64 block_cache_size_mb = 4; // optional; MB
  optional uint64 memtable_capacity_mb = 5; // optional; MB
  optional uint64 stalled_writes_timeout_sec = 6; // optional; s
  optional uint64 max_l1_batches_per_iter = 7; // optional
}

message DB {
  optional string state_keeper_db_path = 1; // optional; fs path
  optional MerkleTree merkle_tree = 2; // optional
  optional experimental.DB experimental = 3; // optional
}

message Postgres {
  optional uint32 max_connections = 4; // optional
  optional uint64 statement_timeout_sec = 5; // optional; s
  optional uint64 acquire_timeout_sec = 6; // optional; s
  optional uint64 long_connection_threshold_ms = 7; // optional; ms
  optional uint64 slow_query_threshold_ms = 8; // optional; ms
  optional uint32 max_connections_master = 9; // optional
  optional TestDatabase test = 10;
  reserved 1, 2, 3; reserved "server_url", "server_replica_url", "prover_url";

}

message TestDatabase {
  optional string server_url = 1; // optional
  optional string prover_url = 2; // optional
}