Verity Network Nodes are isolated binaries, operable from the Verity CLI.

These Network Nodes include:

  1. Verity Prover
  2. Verity Notary

Their isolation as binaries, operated as a separate process from the host environment orchestrating the data pipeline, was a design decision that allows for various languages to be used by the developer. This decision also allows for intricate optimisations specifically for the TLS proving mechanic. All private data processed over network requests to data sources remains isolated in the Verity Prover. Interfacing with the Verity Prover is the primary action that the developer will perform. Verity Clients exist to support the developer in this process.

Usher Labs offers a fully managed Verity Prover as a service, minimising overhead in operating the Prover. To learn more, please review: 📓 Managed Services.

The Verity CLI comes with tools for verifying TLS proofs from the command line.

In essence, the Verity CLI encompasses technologies that establish our data pipeline through verifiable data sourcing.

CLI Binary Download

curl -fsSL https://get.verity.usher.so -o get-verity.sh
sudo bash ./get-verity.sh

The script automatically installs the appropriate binary based on the host environment and operating system.

Start a Verity Notary Node

verity notary start --config ./config/notary.yaml

In Production: Usher Labs will manage a Notary on your behalf. This is advised, as Notary operators require PoS to secure their participation in the Verity Protocol. A managed Notary URL can be shared on request. Please advise the specific region where you intend to deploy your Prover to ensure we can optimise latency in the MPC setup.

Start a Verity Prover Node

verity prover start

Use

Generate a Request ID

uuidgen
# 678D765E-B6D0-4BFA-AD4C-EBBC92815B25

Subscribe to Async Proofs

To receive proofs delivered via Server-Sent Events (SSE), use the curl tool. Open a terminal and listen for SSE at the /proof/[request_id] endpoint:

curl -N http://localhost:8080/proof/678D765E-B6D0-4BFA-AD4C-EBBC92815B25

Call the Prover

curl http://localhost:8080/proxy -X POST \
-H "T-PROXY-URL: https://jsonplaceholder.typicode.com/posts" \
-H "T-REDACTED: res:body:id,req:body:userId,res:body:userId, req:header:x-api-key" \
-H "T-REQUEST-ID: 678D765E-B6D0-4BFA-AD4C-EBBC92815B25" \
-H "Content-Type: application/json" \
-H "X-API-KEY: secret" \
-d '{"title": "usher", "body": "labs", "userId": 10}'

CoinGecko Example

curl http://localhost:8080/proxy -X GET \
-H "T-PROXY-URL: https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd" \
-H "T-REQUEST-ID: 678D765E-B6D0-4BFA-AD4C-EBBC92815B25" \
-H "Content-Type: application/json"

Verify the proof by the CLI

verity verify --notary-pub-key ./fixture/notary/notary.pub --proof ./fixture/proof.json