43 std::stringstream json_data;
44 std::ifstream infile(file_name.c_str());
45 json_data << infile.rdbuf();
47 resdb::utxo::Config config_data;
48 JsonParseOptions options;
49 auto status = JsonStringToMessage(json_data.str(), &config_data, options);
51 LOG(ERROR) <<
"parse json :" << file_name <<
" fail:" << status.message();
62int main(
int argc,
char** argv) {
68 char* config_file = argv[1];
69 char* private_key_file = argv[2];
70 char* cert_file = argv[3];
72 char* utxo_config_file = argv[4];
76 monitor_port->SetPrometheus(argv[5]);
81 std::unique_ptr<ResDBConfig> config =
82 GenerateResDBConfig(config_file, private_key_file, cert_file);
83 ResConfigData config_data = config->GetConfigData();
85 std::unique_ptr<Wallet> wallet = std::make_unique<Wallet>();
86 std::unique_ptr<Transaction> transaction =
87 std::make_unique<Transaction>(utxo_config, wallet.get());
89 auto server = CustomGenerateResDBServer<ConsensusManagerPBFT>(
90 config_file, private_key_file, cert_file,
91 std::make_unique<UTXOExecutor>(utxo_config, transaction.get(),
93 std::make_unique<QueryExecutor>(transaction.get(), wallet.get()));
std::unique_ptr< ServiceNetwork > CustomGenerateResDBServer(char *config_file, char *private_key_file, char *cert_file, std::unique_ptr< TransactionManager > executor, char *logging_dir=nullptr, std::function< void(ResDBConfig *config)> config_handler=nullptr)
std::unique_ptr< ResDBConfig > GenerateResDBConfig(const std::string &config_file, const std::string &private_key_file, const std::string &cert_file, std::optional< ReplicaInfo > self_info, std::optional< ConfigGenFunc > gen_func)