zknotary-verifier
v1.2.0
Published
package for tlsn notary proof verification in wasm
Downloads
14
Readme
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 takesproof_json
andnotary_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
- Install wasm-pack
npm install -g wasm-pack
- 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
- 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.
- 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