acompany-develop / QuickMPC

A practical engine for Secure Multiparty Computation (SMPC).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QuickMPC

Build and Run Tests on CC, MC, and BTS Containers Syntax Check and Unit Test on libclient-py

Japanese version

A practical engine for Secure Multiparty Computation (SMPC) that is part of privacy-enhancing technologies (PETs). QuickMPC can perform computations on personal data used in fundamental static calculations while keeping confidentiality.

This will enable businesses and engineers worldwide to use Python client libraries to easily develop SaaS products that utilize SMPC functions without the need for expert SMPC knowledge.

oss_eg

You can easily describe a process using SMPC as follows: 1700421061804-xdFLKwdtGe

Dependent Tools/Commands

Getting Started

The demonstration with libClient-py

Development Requirements

Recommended

  • memory: 16 GB
  • storage: 20 GB

Run all test suite

  1. Change your current directory into scripts/
cd QuickMPC/scripts
  1. Launch all containers
make debug t=./manage_container
  1. Execute libClient Demo

How to test each container

Detail

  1. Change your current directory into scripts/
cd QuickMPC/scripts
  1. Run test
# Testing all containers
make test
# Only the Computation Container test
make test t=./computation_container/
# Only the Manage Container test
make test t=./manage_container/

How to start each container

This section is usefule when you want to stand 2 containers and dare to test manually.

make debug t=./computation_container # Launch of the dev_cc{1,2,3}
make debug t=./manage_container # Then, all container is launched

How to develop each container

Computation Container

Detail

  1. Change your current directory
cd packages/server/computation_container
  1. Start the container and enter the container
make upd
make login
cd QuickMPC
  1. Develop and bulid and test
# build
bazel build //:all
# test
bazel test ... --test_env=IS_TEST=true --test_output=errors

Delete temporary files generated by Bazel

The files generated by bazel can be removed by running the following in the /QuickMPC directory in the container

bazel clean

Manage Container

Detail

  1. Change your current directory
cd packages/server/manage_container
  1. Start the container and enter the container
make upd
make login
  1. Develop and bulid and test
# Create a vendor directory directly under QuickMPC and copy all dependent packages
go mod vendor
# build
go build
# test
go test ... -v

About

A practical engine for Secure Multiparty Computation (SMPC).

License:Apache License 2.0


Languages

Language:C++ 40.9%Language:Python 26.2%Language:Go 23.4%Language:Starlark 3.4%Language:Shell 3.1%Language:Dockerfile 1.7%Language:Makefile 1.0%Language:HCL 0.3%