diff --git a/crypto3/docs/manual/index.md b/crypto3/docs/manual/index.md index de2643096c..a1e5294e03 100644 --- a/crypto3/docs/manual/index.md +++ b/crypto3/docs/manual/index.md @@ -30,7 +30,7 @@ root │ ├── block: block ciphers │ ├── blueprint: components and circuits for zk schemes │ ├── codec: encoding/decoding algorithms -│ ├── containers: containers and generic commitment schemes for accumulating data, includes Merkle Tree +│ ├── containers: containers for accumulating data, includes Merkle Tree │ ├── hash: hashing algorithms │ ├── kdf: key derivation functions │ ├── mac: message authentication codes diff --git a/crypto3/libs/algebra/README.md b/crypto3/libs/algebra/README.md deleted file mode 100644 index b2f16218cb..0000000000 --- a/crypto3/libs/algebra/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# =nil; Foundation's Algebraic Constructions Module - -=nil; Foundation's Algebraic Constructions module. - -Contains: -* Finite fields -* Curves -* Pairing -* Constexpr BLAS. - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). -To actually include this library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Dependencies - -### Internal - -* [Multiprecision](https://github.com/nilfoundation/crypto3-multiprecision.git). - -### External -* [Boost](https://boost.org) (>= 1.73) diff --git a/crypto3/libs/algebra/readme.md b/crypto3/libs/algebra/readme.md new file mode 100644 index 0000000000..646ddd77f9 --- /dev/null +++ b/crypto3/libs/algebra/readme.md @@ -0,0 +1,27 @@ +# =nil; Foundation's Algebraic Constructions Module + +=nil; Foundation's Algebraic Constructions module. + +Contains: +* Finite fields +* Curves +* Pairing +* Constexpr BLAS. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies + +### Internal + +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision). + +### External +* [Boost](https://boost.org) (>= 1.73) diff --git a/crypto3/libs/blueprint/README.md b/crypto3/libs/blueprint/README.md deleted file mode 100644 index c3b0a25460..0000000000 --- a/crypto3/libs/blueprint/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Circuit Definition Library for =nil; Foundation's Cryptography Suite - -[![Run tests](https://github.com/NilFoundation/zkllvm-blueprint/actions/workflows/run_tests.yml/badge.svg)](https://github.com/NilFoundation/zkllvm-blueprint/actions/workflows/run_tests.yml) - -## Dependencies - -- [Boost](https://boost.org) (>= 1.76) -- [cmake](https://cmake.org/) (>=3.21.4) -- Following dependencies must be built and installed from sources: - - [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) - - [crypto3](https://github.com/nilfoundation/crypto3.git) - -## Building and installation - -```bash -cmake -B build -DCMAKE_INSTALL_PREFIX=/path/to/install -make -C build install -``` - -> Note: if you got an error on `find_package` during cmake configuration, make sure that you provided paths to the installed dependencies (for example, via `CMAKE_PREFIX_PATH` environment variable) - -## Nix support -This repository provides Nix flake, so once you have installed Nix with flake support, you can use single command to fetch all the dependencies and build: - -```bash -nix build ?submodules=1# -``` - -To activate Nix development environment: - -```bash -nix develop -``` - -To run all tests: - -```bash -nix flake check -L ?submodules=1# -``` - -To build/develop/test with local crypto3 version, add an argument `--override-input nil-crypto3 /path/to/local/crypto3` to any of the above commands. diff --git a/crypto3/libs/blueprint/readme.md b/crypto3/libs/blueprint/readme.md new file mode 100644 index 0000000000..b997a5373e --- /dev/null +++ b/crypto3/libs/blueprint/readme.md @@ -0,0 +1,24 @@ +# Circuit Definition Library for =nil; Foundation's Cryptography Suite + +=nil; Foundation's Circuit Definition library which provides interfaces for generating ZK circuits used in proof generation. It holds information about the circuit itself, its gates, constraints, and other fixed expressions, public and private assignments needed by the ZK-SNARK system. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies + +### Internal + +* [Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra). +* [Zk](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/zk). +* [Random](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/random). +* [Hash](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/hash). + +### External +* [Boost](https://boost.org) (>= 1.73) diff --git a/crypto3/libs/containers/README.md b/crypto3/libs/containers/README.md deleted file mode 100644 index ddccd889e1..0000000000 --- a/crypto3/libs/containers/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Containers for =nil; Foundation's Cryptography Suite - -Containers using =nil; Foundation's cryptography suite. - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). -To actually include this library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Dependencies - -### Internal - -* [Hash](https://github.com/nilfoundation/crypto3-hash.git). - -### External -* [Boost](https://boost.org) (>= 1.76) diff --git a/crypto3/libs/containers/readme.md b/crypto3/libs/containers/readme.md new file mode 100644 index 0000000000..47274586dd --- /dev/null +++ b/crypto3/libs/containers/readme.md @@ -0,0 +1,17 @@ +# Containers for =nil; Foundation's Cryptography Suite + +Containers using =nil; Foundation's cryptography suite. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies + +### External +* [Boost](https://boost.org) (>= 1.73) \ No newline at end of file diff --git a/crypto3/libs/hash/README.md b/crypto3/libs/hash/README.md deleted file mode 100644 index 0e72062126..0000000000 --- a/crypto3/libs/hash/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Hashes for =nil; Foundation's Cryptography Suite - -Hashes for =nil; Foundation's cryptography suite. - diff --git a/crypto3/libs/hash/readme.md b/crypto3/libs/hash/readme.md new file mode 100644 index 0000000000..49c396e05d --- /dev/null +++ b/crypto3/libs/hash/readme.md @@ -0,0 +1,18 @@ +# Hashes for =nil; Foundation's Cryptography Suite + +Hashes for =nil; Foundation's cryptography suite. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies + +### External +* [Boost](https://boost.org) (>= 1.73) + diff --git a/crypto3/libs/marshalling/algebra/README.md b/crypto3/libs/marshalling/algebra/README.md deleted file mode 100644 index 52a167b886..0000000000 --- a/crypto3/libs/marshalling/algebra/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Marshalling utilities for =nil;Crypto3 Algebra - -This module provides extension of [=nil;Marshalling](https://github.com/NilFoundation/marshalling) utilities for [=nil;Crypto3 Algebra](https://github.com/NilFoundation/crypto3-algebra) - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). To actually include this -library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as - submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look - at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Dependencies - -### Internal - -* [Multiprecision](https://github.com/nilfoundation/crypto3-multiprecision.git) -* [Algebra](https://github.com/nilfoundation/crypto3-algebra.git) -* [=nil;Marshalling](https://github.com/NilFoundation/marshalling) -* [=nil;Crypto3 Multiprecision Marshalling](https://github.com/NilFoundation/crypto3-multiprecision-marshalling) - -### External - -* [Boost](https://boost.org) (>= 1.74) diff --git a/crypto3/libs/marshalling/algebra/readme.md b/crypto3/libs/marshalling/algebra/readme.md new file mode 100644 index 0000000000..fe982b667b --- /dev/null +++ b/crypto3/libs/marshalling/algebra/readme.md @@ -0,0 +1,25 @@ +# Marshalling utilities for =nil;Crypto3 Algebra + +This module provides extension of [=nil;Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling) utilities for [=nil;Crypto3 Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra) + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies + +### Internal + +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision) +* [Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra) +* [=nil;Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling) +* [=nil;Crypto3 Multiprecision Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling/multiprecision) + +### External + +* [Boost](https://boost.org) (>= 1.74) diff --git a/crypto3/libs/marshalling/containers/README.md b/crypto3/libs/marshalling/containers/README.md deleted file mode 100644 index 6b21b14575..0000000000 --- a/crypto3/libs/marshalling/containers/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Marshalling utilities for =nil;Crypto3 containers - Merkle trees - - diff --git a/crypto3/libs/marshalling/containers/readme.md b/crypto3/libs/marshalling/containers/readme.md new file mode 100644 index 0000000000..8693abaf11 --- /dev/null +++ b/crypto3/libs/marshalling/containers/readme.md @@ -0,0 +1,17 @@ +# Marshalling utilities for =nil;Crypto3 containers - Merkle trees +This module provides extension of [=nil;Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling) utilities for [=nil;Crypto3 Containers](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/containers) + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies +### External + +* [Boost](https://boost.org) (>= 1.74) + diff --git a/crypto3/libs/marshalling/core/README.md b/crypto3/libs/marshalling/core/readme.md similarity index 55% rename from crypto3/libs/marshalling/core/README.md rename to crypto3/libs/marshalling/core/readme.md index 870925de76..9aaee31816 100644 --- a/crypto3/libs/marshalling/core/README.md +++ b/crypto3/libs/marshalling/core/readme.md @@ -3,14 +3,14 @@ This library is used throughout the project to transform data from one type to another. To define representation rules for custom type we use template-defined pseudo-DSL. -## Building +## Usage -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). To actually include this library in a project it is required to: -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) ## Dependencies diff --git a/crypto3/libs/marshalling/math/README.md b/crypto3/libs/marshalling/math/README.md deleted file mode 100644 index 2a2beaa3f8..0000000000 --- a/crypto3/libs/marshalling/math/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Marshalling utilities for =nil;Crypto3 math primitives - polynomials and terms - - diff --git a/crypto3/libs/marshalling/math/readme.md b/crypto3/libs/marshalling/math/readme.md new file mode 100644 index 0000000000..979ba787a7 --- /dev/null +++ b/crypto3/libs/marshalling/math/readme.md @@ -0,0 +1,17 @@ +# Marshalling utilities for =nil;Crypto3 math primitives - polynomials and terms +This module provides extension of [=nil;Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling) utilities for [=nil;Crypto3 Math](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/math) + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies +### External + +* [Boost](https://boost.org) (>= 1.74) + diff --git a/crypto3/libs/marshalling/multiprecision/README.md b/crypto3/libs/marshalling/multiprecision/README.md deleted file mode 100644 index 2b6fda4d3f..0000000000 --- a/crypto3/libs/marshalling/multiprecision/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Marshalling utilities for =nil;Crypto3 Multiprecision - -This module provides extension of [=nil;Marshalling](https://github.com/NilFoundation/marshalling) utilities for [=nil;Crypto3 Multiprecision](https://github.com/NilFoundation/crypto3-multiprecision) - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). To actually include this -library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as - submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look - at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Dependencies - -### Internal - -* [Multiprecision](https://github.com/nilfoundation/crypto3-multiprecision.git) -* [=nil;Marshalling](https://github.com/NilFoundation/marshalling) - -### External - -* [Boost](https://boost.org) (>= 1.81) diff --git a/crypto3/libs/marshalling/multiprecision/readme.md b/crypto3/libs/marshalling/multiprecision/readme.md new file mode 100644 index 0000000000..710eb5678f --- /dev/null +++ b/crypto3/libs/marshalling/multiprecision/readme.md @@ -0,0 +1,23 @@ +# Marshalling utilities for =nil;Crypto3 Multiprecision + +This module provides extension of [=nil;Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling) utilities for [=nil;Crypto3 Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision) + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies + +### Internal + +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision) +* [=nil;Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling) + +### External + +* [Boost](https://boost.org) (>= 1.81) diff --git a/crypto3/libs/marshalling/zk/README.md b/crypto3/libs/marshalling/zk/README.md deleted file mode 100644 index 28538c0d49..0000000000 --- a/crypto3/libs/marshalling/zk/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Marshalling utilities for =nil;Crypto3 Zero-Knowledge Schemes Cryptography - -This module provides extension of [=nil;Marshalling](https://github.com/NilFoundation/marshalling) utilities for [=nil;Crypto3 Zero-Knowledge Schemes Cryptography](https://github.com/NilFoundation/crypto3-zk) - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). To actually include this -library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as - submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look - at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Dependencies - -### Internal - -* [Multiprecision](https://github.com/nilfoundation/crypto3-multiprecision.git) -* [Algebra](https://github.com/nilfoundation/crypto3-algebra.git) -* [ZK](https://github.com/nilfoundation/crypto3-zk.git) -* [=nil;Marshalling](https://github.com/NilFoundation/marshalling) -* [=nil;Crypto3 Multiprecision Marshalling](https://github.com/NilFoundation/crypto3-multiprecision-marshalling) -* [=nil;Crypto3 ALgebra Marshalling](https://github.com/NilFoundation/crypto3-algebra-marshalling) - -### External - -* [Boost](https://boost.org) (>= 1.74) diff --git a/crypto3/libs/marshalling/zk/readme.md b/crypto3/libs/marshalling/zk/readme.md new file mode 100644 index 0000000000..bd6c6cc6ab --- /dev/null +++ b/crypto3/libs/marshalling/zk/readme.md @@ -0,0 +1,27 @@ +# Marshalling utilities for =nil;Crypto3 Zero-Knowledge Schemes Cryptography + +This module provides extension of [=nil;Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling) utilities for [=nil;Crypto3 Zero-Knowledge Schemes Cryptography](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/zk) + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies + +### Internal + +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision) +* [Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra) +* [ZK](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/zk) +* [=nil;Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshalling) +* [=nil;Crypto3 Multiprecision Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshaling/multiprecision) +* [=nil;Crypto3 ALgebra Marshalling](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/marshaling/algebra) + +### External + +* [Boost](https://boost.org) (>= 1.74) diff --git a/crypto3/libs/math/README.md b/crypto3/libs/math/README.md deleted file mode 100644 index a4fb0079d9..0000000000 --- a/crypto3/libs/math/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Polynomial Arithmetics, Fast Fourier Transforms for =nil; Crypto3 C++ Cryptography Suite - -Crypto3.Math extends the =nil; Foundation's Crypto3.Algebra and provides a set of Fast Fourier Transforms evaluation algorithms and Polynomial Arithmetics implemented in way C++ standard library implies: concepts, algorithms, predictable behavior, latest standard features support and clean architecture without compromising security and performance. - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). To actually include this -library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as - submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look - at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Dependencies - -### Internal - -* [Algebra](https://github.com/NilFoundation/crypto3-algebra) -* [Multiprecision](https://github.com/NilFoundation/crypto3-multiprecision) - -### External - -* [Boost](https://boost.org) (>= 1.58) diff --git a/parallel-crypto3/libs/parallel-math/README.md b/crypto3/libs/math/readme.md similarity index 50% rename from parallel-crypto3/libs/parallel-math/README.md rename to crypto3/libs/math/readme.md index a4fb0079d9..aac8c1a00c 100644 --- a/parallel-crypto3/libs/parallel-math/README.md +++ b/crypto3/libs/math/readme.md @@ -2,23 +2,21 @@ Crypto3.Math extends the =nil; Foundation's Crypto3.Algebra and provides a set of Fast Fourier Transforms evaluation algorithms and Polynomial Arithmetics implemented in way C++ standard library implies: concepts, algorithms, predictable behavior, latest standard features support and clean architecture without compromising security and performance. -## Building +## Usage -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). To actually include this -library in a project it is required to: +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as - submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look - at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example). ## Dependencies ### Internal -* [Algebra](https://github.com/NilFoundation/crypto3-algebra) -* [Multiprecision](https://github.com/NilFoundation/crypto3-multiprecision) +* [Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra) +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision) ### External diff --git a/crypto3/libs/multiprecision/readme.md b/crypto3/libs/multiprecision/readme.md new file mode 100644 index 0000000000..ee422a8029 --- /dev/null +++ b/crypto3/libs/multiprecision/readme.md @@ -0,0 +1,16 @@ +# =nil; Foundation's Multiprecision Module + +=nil; Foundation's Multiprecision module. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies +### External +* [Boost](https://boost.org) (>= 1.73) diff --git a/crypto3/libs/random/readme.md b/crypto3/libs/random/readme.md new file mode 100644 index 0000000000..47b9090564 --- /dev/null +++ b/crypto3/libs/random/readme.md @@ -0,0 +1,27 @@ +# =nil; Foundation's Random Module + +=nil; Foundation's Random module. + +Contains: +* Finite fields +* Curves +* Pairing +* Constexpr BLAS. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example) + +## Dependencies + +### Internal + +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision). + +### External +* [Boost](https://boost.org) (>= 1.73) diff --git a/crypto3/libs/transpiler/README.md b/crypto3/libs/transpiler/README.md deleted file mode 100644 index 58b4fc2f62..0000000000 --- a/crypto3/libs/transpiler/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Circuits Traspiler Library for =nil; Foundation's zkLLVM circuit compiler - -[![Run tests](https://github.com/NilFoundation/zkllvm-transpiler/actions/workflows/run_tests.yml/badge.svg)](https://github.com/NilFoundation/zkllvm-transpiler/actions/workflows/run_tests.yml) - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). -To actually include this library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Run examples -This library is used in the [zkLLVM](https://github.com/NilFoundation/zkllvm) transpiler binary. -It produces gate argument for EVM from zkllvm-assigner which consists of `circuit.crct` and `assignment.tbl` file. -It can also create test proof to check gate argument by [evm-placeholder-verification](https://github.com/NilFoundation/zkllvm) -To build transpiler app follow zkLLVM instructions to prepare evironment and input data. Use this branch [zkLLVM](https://github.com/NilFoundation/zkllvm/tree/64-add-optimize-option-to-transpiler-app). - -1. Build transpiler binary file -```bash -make -C ${ZKLLVM_BUILD:-build} transpiler -j$(nproc) -``` -2. Let `input_folder` is a folder contains transpiler input (`circuit.crct` and `assignment.tbl` file). Let `output_folder` is a folder for transpiler output. Run to generate gate argument files: -```bash -${ZKLLVM_BUILD:-build}/bin/transpiler/transpiler -m gen-gate-argument -i input_folder -o output_folder -``` -Use `--optimize-gates` option to place small sequental gates to one `.sol` file -Let `public_input_file` is a file with public input. Run to generate test proof: -```bash -${ZKLLVM_BUILD:-build}/bin/transpiler/transpiler -m gen-test-proof -i input_folder -o output_folder -p public_input_file -``` -3. Copy `output_folder` to `evm-placeholder-verification/contracts/zkllvm`. - -4. Run hardhat to verify proof: -```bash -npx hardhat deploy -npx hardhat verify-circuit-proof --test output_folder -``` -## Dependencies - -### Internal - -Crypto3 suite: - -* [Crypto3.Algebra](https://github.com/nilfoundation/crypto3-algebra.git). -* [Crypto3.Math](https://github.com/nilfoundation/crypto3-math.git). -* [Crypto3.Multiprecision](https://github.com/nilfoundation/crypto3-multiprecision.git). -* [Crypto3.ZK](https://github.com/nilfoundation/crypto3-zk.git). - -zkLLVM compiler ecosystem: - -* [zkLLVM Blueprint](https://github.com/NilFoundation/zkllvm-blueprint.git). - -### External -* [Boost](https://boost.org) (>= 1.76) diff --git a/crypto3/libs/transpiler/readme.md b/crypto3/libs/transpiler/readme.md new file mode 100644 index 0000000000..315ea29d42 --- /dev/null +++ b/crypto3/libs/transpiler/readme.md @@ -0,0 +1,70 @@ +# Circuits Traspiler Library for =nil; Foundation's zkLLVM circuit compiler + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example). + +## Run examples +This library is used in the [proof-producer](https://github.com/NilFoundation/placeholder/tree/master/proof-producer) binary. +It produces gate argument for EVM from `fill-assignment` stage, which generates `circuit.crct` and `assignment.tbl` file. +It can also create test proof to check gate argument by [evm-placeholder-verification](https://github.com/NilFoundation/evm-placeholder-verification). + +In all the calls you can change the executable name from +proof-producer-single-threaded to proof-producer-multi-threaded to run on all +the CPUs of your machine. + +1. Build proof-producer binary file +Follow build instruction for [proof-producer](https://github.com/NilFoundation/placeholder/tree/master/proof-producer) +```bash +nix build .#proof-producer -L +``` +2. Generate circuit and assignemnt table +```bash +./result/bin/proof-producer-single-threaded \ + --stage "preset" \ + --circuit-name "zkevm" \ + --circuit="circuit.crct" +``` + +```bash +./result/bin/proof-producer-single-threaded \ + --stage "fill-assignment" \ + --circuit-name "zkevm" \ + --trace "trace.pb" \ + --assignment-table="assignment.tbl" +``` + +3. Let `output_folder` is a folder for transpiler output. Run to generate gate argument files: +```bash +./result/bin/proof-producer-single-threaded \ + --circuit="circuit.crct" \ + --assignment-table="assignment.tbl" \ + --evm-verifier "output_folder" \ + --proof="proof.bin" -q 10 +``` +4. Copy `output_folder` to `evm-placeholder-verification/contracts/zkllvm`. + +5. Run hardhat to verify proof: +```bash +npx hardhat deploy +npx hardhat verify-circuit-proof --test output_folder +``` +## Dependencies + +### Internal + +Crypto3 suite: + +* [Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra). +* [Math](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/math). +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision). +* [Zk](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/zk). +* [Blueprint](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/blueprint). + +### External +* [Boost](https://boost.org) (>= 1.76) diff --git a/crypto3/libs/zk/README.md b/crypto3/libs/zk/README.md deleted file mode 100644 index 96ff298216..0000000000 --- a/crypto3/libs/zk/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Zero-Knowledge Cryptography Schemes for =nil; Foundation's Cryptography Suite - -Zero-Knowledge cryptography schemes for =nil; Foundation's cryptography suite. -SNARK-alike schemes for now. More trivial Pedersen commitment schemes, STARKs, -IOP-based SNARKs, Bulletproofs etc in future. - -[![Run tests](https://github.com/NilFoundation/crypto3-zk/actions/workflows/run_tests.yml/badge.svg)](https://github.com/NilFoundation/crypto3-zk/actions/workflows/run_tests.yml) - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). To actually include this -library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as - submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look - at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Dependencies - -### Internal - -* [Multiprecision](https://github.com/nilfoundation/crypto3-multiprecision.git) -* [Algebra](https://github.com/nilfoundation/crypto3-algebra.git) -* [FFT](https://github.com/nilfoundation/crypto3-fft.git) - -### External - -* [Boost](https://boost.org) (>= 1.74) diff --git a/crypto3/libs/zk/readme.md b/crypto3/libs/zk/readme.md new file mode 100644 index 0000000000..dec5ac8007 --- /dev/null +++ b/crypto3/libs/zk/readme.md @@ -0,0 +1,25 @@ +# Zero-Knowledge Cryptography Schemes for =nil; Foundation's Cryptography Suite + +Zero-Knowledge cryptography schemes for =nil; Foundation's cryptography suite. +SNARK-alike schemes for now. More trivial Pedersen commitment schemes, STARKs, +IOP-based SNARKs, Bulletproofs etc in future. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/crypto3) for the example). + +## Dependencies + +### Internal + +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision) +* [Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra) + +### External + +* [Boost](https://boost.org) (>= 1.74) diff --git a/crypto3/readme.md b/crypto3/readme.md index 8c1acdc839..7dbe0a0bfc 100644 --- a/crypto3/readme.md +++ b/crypto3/readme.md @@ -58,4 +58,4 @@ ninja algebra_curves_test ## Usage -The suite is used as a header-only libraries. \ No newline at end of file +The suite is used as header-only libraries. \ No newline at end of file diff --git a/parallel-crypto3/libs/parallel-containers/README.md b/parallel-crypto3/libs/parallel-containers/README.md deleted file mode 100644 index ddccd889e1..0000000000 --- a/parallel-crypto3/libs/parallel-containers/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Containers for =nil; Foundation's Cryptography Suite - -Containers using =nil; Foundation's cryptography suite. - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). -To actually include this library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Dependencies - -### Internal - -* [Hash](https://github.com/nilfoundation/crypto3-hash.git). - -### External -* [Boost](https://boost.org) (>= 1.76) diff --git a/parallel-crypto3/libs/parallel-containers/readme.md b/parallel-crypto3/libs/parallel-containers/readme.md new file mode 100644 index 0000000000..7310cc4984 --- /dev/null +++ b/parallel-crypto3/libs/parallel-containers/readme.md @@ -0,0 +1,21 @@ +# Containers for =nil; Foundation's Cryptography Suite + +Containers using =nil; Foundation's cryptography suite. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3) for the example) + +## Dependencies + +### Internal + +* [Hash](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/hash). + +### External +* [Boost](https://boost.org) (>= 1.76) diff --git a/parallel-crypto3/libs/parallel-math/readme.md b/parallel-crypto3/libs/parallel-math/readme.md new file mode 100644 index 0000000000..082291a169 --- /dev/null +++ b/parallel-crypto3/libs/parallel-math/readme.md @@ -0,0 +1,23 @@ +# Polynomial Arithmetics, Fast Fourier Transforms for =nil; Crypto3 C++ Cryptography Suite + +Crypto3.Math extends the =nil; Foundation's Crypto3.Algebra and provides a set of Fast Fourier Transforms evaluation algorithms and Polynomial Arithmetics implemented in way C++ standard library implies: concepts, algorithms, predictable behavior, latest standard features support and clean architecture without compromising security and performance. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3) for the example) + +## Dependencies + +### Internal + +* [Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra) +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision) + +### External + +* [Boost](https://boost.org) (>= 1.58) diff --git a/parallel-crypto3/libs/parallel-zk/README.md b/parallel-crypto3/libs/parallel-zk/README.md deleted file mode 100644 index e58309cbc2..0000000000 --- a/parallel-crypto3/libs/parallel-zk/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# Zero-Knowledge Cryptography Schemes for =nil; Foundation's Cryptography Suite - -Zero-Knowledge cryptography schemes for =nil; Foundation's cryptography suite. -SNARK-alike schemes for now. More trivial Pedersen commitment schemes, STARKs, -IOP-based SNARKs, Bulletproofs etc in future. - -[![Run tests](https://github.com/NilFoundation/crypto3-zk/actions/workflows/run_tests.yml/badge.svg)](https://github.com/NilFoundation/crypto3-zk/actions/workflows/run_tests.yml) - -## Building - -This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). To actually include this -library in a project it is required to: - -1. Add [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as submodule to target project repository. -2. Add all the internal dependencies using [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) as - submodules to target project repository. -3. Initialize parent project with [CMake Modules](https://github.com/BoostCMake/cmake_modules.git) (Look - at [crypto3](https://github.com/nilfoundation/crypto3.git) for the example) - -## Updating from crypto3-zk repository -Update could be done either with `git format-patch` and `git am --3way --whitespace=fix --reject`, but this will lead to *.rej* files in case of conflicts. - -To make it more merge-like, add `crypto3-zk` as upstream, and cherry-pick commits from it: -```bash -git remote add crypto3-zk git@github.com:NilFoundation/crypto3-zk.git -git fetch crypto3-zk -git cherry-pick ^.. -``` -After transforming Crypto3 into monorepo subtree path should be specified: -```bash -git cherry-pick -Xsubtree=libs/zk ^.. -``` - -## Dependencies - -### Internal - -* [Multiprecision](https://github.com/nilfoundation/crypto3-multiprecision.git) -* [Algebra](https://github.com/nilfoundation/crypto3-algebra.git) -* [FFT](https://github.com/nilfoundation/crypto3-fft.git) - -### External - -* [Boost](https://boost.org) (>= 1.74) diff --git a/parallel-crypto3/libs/parallel-zk/readme.md b/parallel-crypto3/libs/parallel-zk/readme.md new file mode 100644 index 0000000000..cb6d2aeb69 --- /dev/null +++ b/parallel-crypto3/libs/parallel-zk/readme.md @@ -0,0 +1,25 @@ +# Zero-Knowledge Cryptography Schemes for =nil; Foundation's Cryptography Suite + +Zero-Knowledge cryptography schemes for =nil; Foundation's cryptography suite. +SNARK-alike schemes for now. More trivial Pedersen commitment schemes, STARKs, +IOP-based SNARKs, Bulletproofs etc in future. + +## Usage + +This library uses Boost CMake build modules (https://github.com/NilFoundation/placeholder/tree/master/crypto3/cmake). +To actually include this library in a project it is required to: + +1. Add [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) to target project repository. +2. Add all the internal dependencies using [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) to target project repository. +3. Initialize parent project with [CMake Modules](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3/cmake) (Look at [crypto3](https://github.com/NilFoundation/placeholder/tree/master/parallel-crypto3) for the example) + +## Dependencies + +### Internal + +* [Multiprecision](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/multiprecision) +* [Algebra](https://github.com/NilFoundation/placeholder/tree/master/crypto3/libs/algebra) + +### External + +* [Boost](https://boost.org) (>= 1.74)