Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Functions
demo_ram_ppzksnark_generator.cpp File Reference
#include <fstream>
#include <iostream>
#include <boost/program_options.hpp>
#include <libsnark/common/default_types/ram_ppzksnark_pp.hpp>
#include <libsnark/relations/ram_computations/rams/tinyram/tinyram_params.hpp>
#include <libsnark/zk_proof_systems/ppzksnark/ram_ppzksnark/ram_ppzksnark.hpp>
Include dependency graph for demo_ram_ppzksnark_generator.cpp:

Go to the source code of this file.

Functions

bool process_generator_command_line (const int argc, const char **argv, std::string &architecture_params_fn, std::string &computation_bounds_fn, std::string &proving_key_fn, std::string &verification_key_fn)
 
int main (int argc, const char *argv[])
 

Function Documentation

◆ main()

int main ( int  argc,
const char *  argv[] 
)

Definition at line 59 of file demo_ram_ppzksnark_generator.cpp.

60 {
62 #ifdef MINDEPS
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";
67 #else
68  std::string architecture_params_fn;
69  std::string computation_bounds_fn;
70  std::string proving_key_fn;
71  std::string verification_key_fn;
72 
74  argc,
75  argv,
76  architecture_params_fn,
77  computation_bounds_fn,
78  proving_key_fn,
79  verification_key_fn)) {
80  return 1;
81  }
82 #endif
83  libff::start_profiling();
84 
85  /* load everything */
87  std::ifstream f_ap(architecture_params_fn);
88  f_ap >> ap;
89 
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 >>
93  time_bound;
94 
95  const size_t boot_trace_size_bound =
96  tinyram_program_size_bound + tinyram_input_size_bound;
97 
99  ram_ppzksnark_generator<default_ram_ppzksnark_pp>(
100  ap, boot_trace_size_bound, time_bound);
101 
102  std::ofstream pk(proving_key_fn);
103  pk << keypair.pk;
104  pk.close();
105 
106  std::ofstream vk(verification_key_fn);
107  vk << keypair.vk;
108  vk.close();
109 }
Here is the call graph for this function:

◆ process_generator_command_line()

bool process_generator_command_line ( const int  argc,
const char **  argv,
std::string &  architecture_params_fn,
std::string &  computation_bounds_fn,
std::string &  proving_key_fn,
std::string &  verification_key_fn 
)
Author
This file is part of libsnark, developed by SCIPR Lab and contributors (see AUTHORS).

Definition at line 20 of file demo_ram_ppzksnark_generator.cpp.

27 {
28  try {
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())(
33  "computation_bounds",
34  po::value<std::string>(&computation_bounds_fn)->required())(
35  "proving_key", po::value<std::string>(&proving_key_fn)->required())(
36  "verification_key",
37  po::value<std::string>(&verification_key_fn)->required());
38 
39  po::variables_map vm;
40  po::store(po::parse_command_line(argc, argv, desc), vm);
41 
42  if (vm.count("help")) {
43  std::cout << desc << "\n";
44  return false;
45  }
46 
47  po::notify(vm);
48  } catch (std::exception &e) {
49  std::cerr << "Error: " << e.what() << "\n";
50  return false;
51  }
52 
53  return true;
54 }
Here is the caller graph for this function:
libsnark::ram_ppzksnark_keypair::pk
ram_ppzksnark_proving_key< ram_ppzksnark_ppT > pk
Definition: ram_ppzksnark.hpp:184
libsnark::ram_ppzksnark_keypair
Definition: ram_ppzksnark.hpp:182
process_generator_command_line
bool process_generator_command_line(const int argc, const char **argv, std::string &architecture_params_fn, std::string &computation_bounds_fn, std::string &proving_key_fn, std::string &verification_key_fn)
Definition: demo_ram_ppzksnark_generator.cpp:20
libsnark::ram_ppzksnark_architecture_params
ram_architecture_params< ram_ppzksnark_machine_pp< ram_ppzksnark_ppT > > ram_ppzksnark_architecture_params
Definition: ram_ppzksnark_params.hpp:68
libsnark::ram_ppzksnark_snark_pp
typename ram_ppzksnark_ppT::snark_pp ram_ppzksnark_snark_pp
Definition: ram_ppzksnark_params.hpp:61
libsnark::ram_ppzksnark_keypair::vk
ram_ppzksnark_verification_key< ram_ppzksnark_ppT > vk
Definition: ram_ppzksnark.hpp:185