1.2.0 • Published 1 year ago

zknotary-verifier v1.2.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 year 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

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.0.0

2 years ago

0.1.11

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.2

2 years ago

0.1.10

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.4

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago