QuickMPCはPEC(Privacy-Enhancing Computation)のひとつであるSMPC(Secure Multiparty Computation)の実用的なエンジンです。
基本的な統計量計算に用いるプライバシーデータを、秘匿化しつつ計算することができます。これにより世界中の企業やエンジニアはSMPCの専門的な知識不要で、Pythonのクライアントライブラリを用いて、SMPC機能を利用したSaaSプロダクトを簡単に開発できるようになります。
make
docker
docker-compose
vscode-yaml-sort
- メモリ
16GB
以上 - ストレージ
20GB
以上
- ディレクトリを移動する
cd QuickMPC/scripts
- 全コンテナを起動する
make debug t=./manage_container # 全てのコンテナが起動
- libclientのdemoを実行する
- ディレクトリを移動する
cd QuickMPC/scripts
- テストを開始する
# 全てのコンテナをテストする場合
make test
# Computation Containerの場合
make test t=./computation_container/
# Manage Containerの場合
make test t=./manage_container/
2コンテナ立ててあえて手動でtestしたい時に使用する
make debug t=./computation_container # dev_cc{1,2,3}, dev_btsの立ち上げ
make debug t=./manage_container # 全てのコンテナが起動
- ディレクトリを移動する
cd packages/server/computation_container
- コンテナを起動してコンテナに入る
make upd
make login
cd QuickMPC
なお、make loginの代わりにVsCodeのRemote - Containers
というプラグインを使うことで、Attatch Visual Studio Code
ボタンからContainerの中に入ってlocal環境と同様にVsCode上で開発を行うことができるのでそちらを推奨
- 開発してbulidやテストを行う
# build
bazel build //:all
# test
bazel test ... --test_env=IS_TEST=true --test_output=errors
bazelが生成するファイルはコンテナ内の/QuickMPC
ディレクトリで以下を実行すると削除できる
bazel clean
- ディレクトリを移動する
cd packages/server/manage_container
- コンテナを起動してコンテナに入る
make upd
make login
- 開発してbuildやテストを行う
# /QuickMPC直下にvendorディレクトリを生成し,依存パッケージを全てコピーする
go mod vendor
# build
go build
# test
go test ... -v