platform/proto/replica_info.proto (66 lines of code) (raw):
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
syntax = "proto3";
package resdb;
import "common/proto/signature_info.proto";
import "chain/storage/proto/leveldb_config.proto";
message ReplicaInfo {
int64 id = 1;
optional string ip = 2;
optional int32 port = 3;
optional CertificateInfo certificate_info = 4; // include the private/public key, public key of admin and the certificate published by admin.
}
message RegionInfo {
repeated ReplicaInfo replica_info = 1;
int32 region_id = 2;
}
message ResConfigData{
repeated RegionInfo region = 1;
int32 self_region_id = 2;
optional storage.LevelDBInfo leveldb_info = 4;
optional bool enable_viewchange = 5;
optional int32 view_change_timeout_ms = 10;
optional bool not_need_signature = 6; // when delivering messages, it should be signed or not.
optional bool is_performance_running = 7; // if it is running a performance benchmark.
optional int32 max_process_txn = 8; // max client transactions in flight.
optional int32 client_batch_num=11; // batch size of transaction for each client request
optional int32 worker_num =12; // batch size of transaction for each client request
optional int32 input_worker_num =13;
optional int32 output_worker_num =14;
optional int32 tcp_batch_num = 15;
optional bool require_txn_validation = 16; // for python sdk
optional bool recovery_enabled = 17; // whether to enable recovery locally
optional string recovery_path = 18;
optional int32 recovery_buffer_size = 19;
optional int32 recovery_ckpt_time_s = 20;
optional bool enable_resview = 23;
optional bool enable_faulty_switch = 24;
// for hotstuff.
optional bool use_chain_hotstuff = 9;
optional int32 max_client_complaint_num = 21;
optional int32 duplicate_check_frequency_useconds = 22;
}
message ReplicaStates {
repeated ReplicaState state = 1;
}
message ReplicaState {
int64 view = 1;
ReplicaInfo replica_info = 2;
ResConfigData replica_config = 3;
}