PrimiHub is a platform that supports Multi-Party Computing(MPC), Federated Learning, Private set intersection (PSI), and Private Information Retrieval (PIR) features, and supports extensions of data source access, data consumption, access application, syntax, semantic and security protocols. For details, see PrimiHub Core Feature
Run an Multi-Party Computing application in 5 minutes
Install docker and docker-compose
Download the code and switch to the code root path
$ git clone https://github.com/primihub/primihub.git
$ cd primihub
Start three docker containers using docker-compose. The container includes: one simple bootstrap node, three nodes
$ docker-compose up -d
Check out the running docker container
$ docker-compose ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf875c1280be primihub/primihub-node:latest "/bin/bash -c './pri…" 11 minutes ago Up 11 minutes 0.0.0.0:12120-12121->12120-12121/tcp, 0.0.0.0:8052->50050/tcp node2_primihub
6a822ff5c6f7 primihub/primihub-node:latest "/bin/bash -c './pri…" 11 minutes ago Up 11 minutes 0.0.0.0:10120->12120/tcp, 0.0.0.0:10121->12121/tcp, 0.0.0.0:8050->50050/tcp node0_primihub
11d55ce06ff0 primihub/primihub-node:latest "/bin/bash -c './pri…" 11 minutes ago Up 11 minutes 0.0.0.0:11120->12120/tcp, 0.0.0.0:11121->12121/tcp, 0.0.0.0:8051->50050/tcp node1_primihub
68befa6ab2a5 primihub/simple-bootstrap-node:1.0 "/app/simple-bootstr…" 11 minutes ago Up 11 minutes 0.0.0.0:4001->4001/tcp simple_bootstrap_node
*** Let three nodes jointly perform a logistic regression task of multi-party secure computation (MPC) ***
$ docker run --network=host -it primihub/primihub-node:latest ./primihub-cli --server=127.0.0.1:8050
💡 The node response the task
You can request computing tasks from any node in the computing cluster
💡 Available task parameters
The following parameters can be specified through primihub-cli:
- Which node is requested to start the task.
- Which shared datasets are used.
- What kind of private computing tasks to do.
In this example, primihub-cli will use the default parameters to request an ABY3 tripartite logistic regression test task from *** node 0 ***. For the parameters that can be specified by cli, please refer to *** Create task ***
To learn how to start from native applications and how to use PrimiHub features to implement more applications, see Advanced Usage
- For how to build, see Build
- For how to contribute code, see PrimiHub Open Source Community Governance