Local Quickstart
If you want to experiment more with TACEO:OPRF, then you can also spin up your own local network. To do that you first need to clone the repository and its submodules.
git clone --recursive https://github.com/TaceoLabs/oprf-testnet.git && cd oprf-testnet
You also need a couple more dependencies.
docker composeto start localstack, postgres and oprf-key-gen containers (See https://docs.docker.com/compose/install/)- If you are on macOS you have to enable host networking for docker.
anvilandforgefrom Foundry (See https://www.getfoundry.sh/introduction/getting-started)justto run command for the local setup (See https://github.com/casey/just)curlwhich is needed for health-checks
To start a local setup, we need to do the following steps in order:
- Start the
anvil, and thelocalstack, andpostgresdocker containers - Deploy the
OprfKeyRegsitrycontract onanvil - Start the 3
oprf-key-gendocker containers for the 3 nodes - Start the 3
oprf-testnet-nodebinaries - Create the OPRF keys for both OPRF modules
All of which is done for you by running the following command:
just run-setup
Now you can run the the client binary again, but this time point it to you local OPRF nodes with the following command:
./taceo-oprf-testnet-client \
--nodes http://127.0.0.1:10000,http://127.0.0.1:10001,http://127.0.0.1:10002 \
--api-key taceo_3ZfE55WkcNWRweh5rcfpUNpi \
wallet-ownership
Feel free to play around, e.g., modifying the authentication modules to add your own logic there or even changing the zero knowledge proof to verify different properties of the input such as allowing only vanity addresses that end in c0ffee.