1.2.0 • Published 14 days ago

zknotary-verifier v1.2.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
14 days ago

Verifier

Introduction

The Verifier component of zkNotary is a crucial tool for validating the authenticity of data notarized by the Prover. It's a WebAssembly module compiled from Rust, using wasm-pack, and is designed for use within JavaScript applications.

Features

  • WebAssembly Compilation: The Rust code is compiled into WebAssembly, making it suitable for integration in web environments.
  • Single Public Function - verify: Exposes a function that takes proof_json and notary_pubkey as inputs and returns a plain-text notarization of the original interaction with a web server.
  • Digital Signature Validation: Validates that the proof was digitally signed by the notary server, ensuring authenticity.

Prerequisites

  • Rust
  • Cargo
  • wasm-pack

Note: This project requires a clang version newer than 16.0.0 to compile ring to wasm. If not, you will run into warning: error: unable to create target: 'No available targets are compatible with triple "wasm32-unknown-unknown"'

File Structure

  • src/lib.rs: This is the main library file for the Verifier.
  • src/utils.rs: This file contains utility functions used by the Verifier.
  • pkg: Autogenerated directory where the npm package code lives.
  • examples/node: A sample node application that showcases how to use the verifier package. For more information see the sample application's README file.

Usage

  1. Install wasm-pack
npm install -g wasm-pack
  1. Optional: For Mac users with a version of clang older than 16.0.0, you can use Homebrew to install llvm and then use it to compile the project.
brew install llvm
echo 'export PATH="/path/to/your/newly/installed/llvm/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
  1. Build the wasm project
wasm-pack build --target nodejs

This creates a new pkg directory with the wasm package ready to publish to npmjs.com.

  1. Publish your npm package
cd pkg
npm publish

Contributing

Contributions are welcome. Please submit a pull request or create an issue to discuss the changes you want to make.

Acknowledgements

This project is inspired by and borrows code from the following projects:

We are grateful to the authors of these projects for their work.

License

Apache

1.2.0

14 days ago

1.1.1

14 days ago

1.1.0

14 days ago

1.0.1

14 days ago

1.1.4

14 days ago

1.1.3

14 days ago

1.1.2

14 days ago

1.0.0

5 months ago

0.1.11

5 months ago

0.2.1

5 months ago

0.2.0

5 months ago

0.2.2

5 months ago

0.1.10

5 months ago

0.1.8

5 months ago

0.1.7

5 months ago

0.1.4

5 months ago

0.1.6

5 months ago

0.1.5

5 months ago

0.1.3

5 months ago

0.1.2

5 months ago

0.1.1

5 months ago

0.1.0

5 months ago