zkllvm-blueprint
zkllvm-blueprint copied to clipboard
Circuit components definition library for zkLLVM circuit compiler
R1CS blueprint is outdated and requires update according to new repository structure and PLONK-blueprint-alike concepts.
If we would implement all the constraints as constexpr, we could use std::array's and other constexpr-demanding types in the zk for processing circuit without runtime information about the wires (witnesses).
It looks like basic components require usage of `set_input_sizes` functions to be compatible with zk's r1cs_gg_ppzksnark. This hypothesis has to be checked and after that it's important to write corresponding...
Added workaround because of the dependency [issue](https://github.com/NilFoundation/crypto3/issues/175) in crypto3. Usage from other project: ```cmake find_package(blueprint_crypto3 REQUIRED) ... target_link_libraries(${PROJECT_NAME} blueprint) ``` Note: CI has not passed because of https://github.com/NilFoundation/zkllvm-blueprint/issues/377
Currently Nix usage makes no sense — in CI we run `nix develop`, then fetch crypto3 from current master, then run tests. Not reproducable at all. Move testing to `nix...
## How to reproduce - `main.cpp` ```cpp #include "nil/blueprint/blueprint/plonk/assignment.hpp" int main() { return 0; } ``` - `CMakeLists.txt` ```cmake cmake_minimum_required(VERSION 3.25) add_executable(test main.cpp) ``` - `flake.nix` ```nix { description =...