Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bbapi_ultra_honk.hpp
Go to the documentation of this file.
1#pragma once
14#include <cstdint>
15#include <map>
16#include <vector>
17
18namespace bb::bbapi {
19
21 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitComputeVk";
22
23 struct Response {
24 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitComputeVkResponse";
25
26 std::vector<uint8_t> bytes; // Serialized verification key
27 std::vector<uint256_t> fields; // VK as field elements (unless keccak, then just uint256_t's)
28 std::vector<uint8_t> hash; // The VK hash
30 bool operator==(const Response&) const = default;
31 };
32
36 Response execute(const BBApiRequest& request = {}) &&;
37 bool operator==(const CircuitComputeVk&) const = default;
38};
39
47 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitProve";
48
63
65 std::vector<uint8_t> witness;
68 Response execute(const BBApiRequest& request = {}) &&;
69 bool operator==(const CircuitProve&) const = default;
70};
71
78 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitStats";
79
80 struct Response {
81 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitInfoResponse";
82
83 uint32_t num_gates{};
84 uint32_t num_gates_dyadic{};
85 uint32_t num_acir_opcodes{};
86 std::vector<size_t> gates_per_opcode;
88 bool operator==(const Response&) const = default;
89 };
90
95 Response execute(const BBApiRequest& request = {}) &&;
96 bool operator==(const CircuitStats&) const = default;
97};
98
104 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitVerify";
105
106 struct Response {
107 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitVerifyResponse";
108
111 bool operator==(const Response&) const = default;
112 };
113
114 std::vector<uint8_t> verification_key;
119 Response execute(const BBApiRequest& request = {}) &&;
120 bool operator==(const CircuitVerify&) const = default;
121};
122
131 static constexpr const char* MSGPACK_SCHEMA_NAME = "VkAsFields";
132
133 struct Response {
134 static constexpr const char* MSGPACK_SCHEMA_NAME = "VkAsFieldsResponse";
135
138 bool operator==(const Response&) const = default;
139 };
140
141 std::vector<uint8_t> verification_key;
143 Response execute(const BBApiRequest& request = {}) &&;
144 bool operator==(const VkAsFields&) const = default;
145};
146
151 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitWriteSolidityVerifier";
152
153 struct Response {
154 static constexpr const char* MSGPACK_SCHEMA_NAME = "CircuitWriteSolidityVerifierResponse";
155
156 std::string solidity_code;
158 bool operator==(const Response&) const = default;
159 };
160
161 std::vector<uint8_t> verification_key;
164 Response execute(const BBApiRequest& request = {}) &&;
165 bool operator==(const CircuitWriteSolidityVerifier&) const = default;
166};
167
168} // namespace bb::bbapi
Shared type definitions for the Barretenberg RPC API.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
static constexpr const char * MSGPACK_SCHEMA_NAME
bool operator==(const Response &) const =default
Response execute(const BBApiRequest &request={}) &&
static constexpr const char * MSGPACK_SCHEMA_NAME
MSGPACK_FIELDS(circuit, settings)
bool operator==(const CircuitComputeVk &) const =default
A circuit to be used in either ultrahonk or ClientIVC-honk proving.
A circuit to be used in either ultrahonk or chonk (ClientIVC+honk) verification key derivation.
Contains proof and public inputs. Both are given as vectors of fields. To be used for verification....
static constexpr const char * MSGPACK_SCHEMA_NAME
CircuitComputeVk::Response vk
MSGPACK_FIELDS(public_inputs, proof, vk)
std::vector< uint256_t > public_inputs
bool operator==(const Response &) const =default
Represents a request to generate a proof. Currently, UltraHonk is the only proving system supported b...
std::vector< uint8_t > witness
MSGPACK_FIELDS(circuit, witness, settings)
Response execute(const BBApiRequest &request={}) &&
static constexpr const char * MSGPACK_SCHEMA_NAME
ProofSystemSettings settings
bool operator==(const CircuitProve &) const =default
MSGPACK_FIELDS(num_gates, num_gates_dyadic, num_acir_opcodes, gates_per_opcode)
static constexpr const char * MSGPACK_SCHEMA_NAME
bool operator==(const Response &) const =default
Consolidated command for retrieving circuit information. Combines gate count, circuit size,...
ProofSystemSettings settings
static constexpr const char * MSGPACK_SCHEMA_NAME
Response execute(const BBApiRequest &request={}) &&
MSGPACK_FIELDS(circuit, include_gates_per_opcode, settings)
bool operator==(const CircuitStats &) const =default
bool operator==(const Response &) const =default
static constexpr const char * MSGPACK_SCHEMA_NAME
Verify a proof against a verification key and public inputs.
bool operator==(const CircuitVerify &) const =default
std::vector< uint256_t > proof
static constexpr const char * MSGPACK_SCHEMA_NAME
ProofSystemSettings settings
std::vector< uint256_t > public_inputs
MSGPACK_FIELDS(verification_key, public_inputs, proof, settings)
std::vector< uint8_t > verification_key
Response execute(const BBApiRequest &request={}) &&
bool operator==(const Response &) const =default
Command to generate Solidity verifier contract.
MSGPACK_FIELDS(verification_key, settings)
bool operator==(const CircuitWriteSolidityVerifier &) const =default
Response execute(const BBApiRequest &request={}) &&
static constexpr const char * MSGPACK_SCHEMA_NAME
static constexpr const char * MSGPACK_SCHEMA_NAME
bool operator==(const Response &) const =default
Convert a verification key to field elements representation. WORKTODO(bbapi): this should become most...
bool operator==(const VkAsFields &) const =default
std::vector< uint8_t > verification_key
static constexpr const char * MSGPACK_SCHEMA_NAME
MSGPACK_FIELDS(verification_key)
Response execute(const BBApiRequest &request={}) &&