10 #include <boost/program_options.hpp> 
   18 namespace po = boost::program_options;
 
   23     std::string &architecture_params_fn,
 
   24     std::string &computation_bounds_fn,
 
   25     std::string &proving_key_fn,
 
   26     std::string &verification_key_fn)
 
   29         po::options_description desc(
"Usage");
 
   30         desc.add_options()(
"help", 
"print this help message")(
 
   31             "architecture_params",
 
   32             po::value<std::string>(&architecture_params_fn)->required())(
 
   34             po::value<std::string>(&computation_bounds_fn)->required())(
 
   35             "proving_key", po::value<std::string>(&proving_key_fn)->required())(
 
   37             po::value<std::string>(&verification_key_fn)->required());
 
   40         po::store(po::parse_command_line(argc, argv, desc), vm);
 
   42         if (vm.count(
"help")) {
 
   43             std::cout << desc << 
"\n";
 
   48     } 
catch (std::exception &e) {
 
   49         std::cerr << 
"Error: " << e.what() << 
"\n";
 
   59 int main(
int argc, 
const char *argv[])
 
   63     std::string architecture_params_fn = 
"architecture_params.txt";
 
   64     std::string computation_bounds_fn = 
"computation_bounds.txt";
 
   65     std::string proving_key_fn = 
"proving_key.txt";
 
   66     std::string verification_key_fn = 
"verification_key.txt";
 
   68     std::string architecture_params_fn;
 
   69     std::string computation_bounds_fn;
 
   70     std::string proving_key_fn;
 
   71     std::string verification_key_fn;
 
   76             architecture_params_fn,
 
   77             computation_bounds_fn,
 
   79             verification_key_fn)) {
 
   83     libff::start_profiling();
 
   87     std::ifstream f_ap(architecture_params_fn);
 
   90     std::ifstream f_rp(computation_bounds_fn);
 
   91     size_t tinyram_input_size_bound, tinyram_program_size_bound, time_bound;
 
   92     f_rp >> tinyram_input_size_bound >> tinyram_program_size_bound >>
 
   95     const size_t boot_trace_size_bound =
 
   96         tinyram_program_size_bound + tinyram_input_size_bound;
 
   99         ram_ppzksnark_generator<default_ram_ppzksnark_pp>(
 
  100             ap, boot_trace_size_bound, time_bound);
 
  102     std::ofstream pk(proving_key_fn);
 
  106     std::ofstream vk(verification_key_fn);