This repository includes the client and the server implementation for the ZKP protocol. Both are implemented in separate Rust projects, though it would have ideally been a monorepo with shared libraries and shared protos, but done this way due to limited knowledge of Rust.
Run the server in a new terminal, and the client in another terminal. Follow the instructions of the console for running the client and interacting with the server.
cd server && cargo run
cd client && cargo run
The client and server images need to be built separately and can be ran separately.
docker build -f Dockerfile-client -t zkp/client .
docker build -f Dockerfile-server -t zkp/server .
// Create a network
docker network create zkp
// Run server in detached mode in a new terminal
docker run -e SERVER_ADDRESS="0.0.0.0:8080" --network=zkp --name server -p 8080:8080 -d zkp/server
// Run client in interactive mode in a new terminal
docker run -e SERVER_ADDRESS="http://server:8080" --network=zkp --name client -it zkp/client
To run these in separate machines in the cloud, the individual docker images can be ran separately on different machines, while setting the env variable for SERVER_ADDRESS in the client accordingly to match the address and the port of the machine where the server is running.