Getting Started
Prepare your development environment, quick start and basic tutorials of PETAce.
PETAce
Requirements
| System | Toolchain |
|---|---|
| Linux | Clang++ (>= 5.0) or GNU G++ (>= 5.5), CMake (>= 3.15) |
| Required dependency | Tested version | Use |
|---|---|---|
| OpenSSL | 1.1.1 | Cryptographic primitives |
| GMP | 6.3.0 | Bignumer operations for GMP-based Paillier |
| Eigen | 3.4.0 | Matrix and vector templates |
| Microsoft SEAL | 4.1.0 | Fully homomorphic encryption |
| Google Logging | 0.4.0 | Logging |
| JSON for Modern C++(JSON) | 3.10.1 | PSI parameter configuration |
| PETAce-Solo | 0.4.0 | Cryptography primitives |
| PETAce-Network | 0.4.0 | Network communication protocols |
| PETAce-Verse | 0.4.0 | Primitive cryptographic protocols |
| PETAce-SetOps | 0.4.0 | Set operations MPC protocol |
| PETAce-Verse | 0.4.0 | MPC protocol |
| Optional dependency | Tested version | Use |
|---|---|---|
| Intel Paillier Cryptosystem Library (IPCL) | 495beaad1f6e70741f2b5cf1279cb919fd66d894 | Paillier Encryption |
| gRPC | 1.62.1 | Network communication |
| CryptoDataEngine | 0.1.0 | Big data parallel support |
Building PETAce
The commands presented below should be executed in the root directory of PETAce.
First, build JSON for Modern C++ (JSON) using the following scripts.
Assume that JSON is cloned into the directory ${JSON}.
cmake -B ${JSON}/build -S ${JSON}
cmake --build ${JSON}/build -j
Then, build PETAce library:
cmake -S . -B build -Dnlohmann_json_DIR=${JSON}/build -DPETACE_BUILD_PYTHON=ON
cmake --build build
cd build
make wheel
Output binaries can be found in build/python/wheel/ directory.
| Compile Options | Values | Default | Description |
|---|---|---|---|
CMAKE_BUILD_TYPE | Release/Debug | Release | Debug mode decreases run-time performance. |
For more compilation options, such as enabling IPCL and network agents, please refer to PETAce-Solo and PETAce-Network.
For instructions on how to run examples of PETAce, please refer to the instructions in the example directory.
Last modified
July 29, 2025
: Automated sync of README sections from multiple repositories (cea4bd2)