Awesome
<p align="center"> <img src="./tlsn-banner.png" width=1280 /> </p>Website | Documentation | API Docs | Discord
TLSNotary
Data provenance and privacy with secure multi-party computation
⚠️ Notice
This project is currently under active development and should not be used in production. Expect bugs and regular major breaking changes.
License
All crates in this repository are licensed under either of
at your option.
Branches
main
- Default branch — points to the latest release.
- This is stable and suitable for most users.
dev
- Development branch — contains the latest PRs.
- Developers should submit their PRs against this branch.
Directory
- examples: Examples on how to use the TLSNotary protocol.
- tlsn-prover: The library for the prover component.
- tlsn-verifier: The library for the verifier component.
- notary: Implements the notary server and its client.
- components: Houses low-level libraries.
This repository contains the source code for the Rust implementation of the TLSNotary protocol. For additional tools and implementations related to TLSNotary, visit https://github.com/tlsnotary. This includes repositories such as tlsn-js
, tlsn-extension
, explorer
, among others.
Development
[!IMPORTANT] Note on Rust-to-WASM Compilation: This project requires compiling Rust into WASM, which needs
clang
version 16.0.0 or newer. MacOS users, be aware that Xcode's defaultclang
might be older. If you encounter the errorNo available targets are compatible with triple "wasm32-unknown-unknown"
, it's likely due to an outdatedclang
. Updatingclang
to a newer version should resolve this issue.For MacOS aarch64 users, if Apple's default
clang
isn't working, try installingllvm
via Homebrew (brew install llvm
). You can then prioritize the Homebrewclang
over the default macOS version by modifying yourPATH
. Add the following line to your shell configuration file (e.g.,.bashrc
,.zshrc
):export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
If you run into this error:
Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it, you can set the `OPENSSL_DIR` environment variable for the
compilation process.
Make sure you have the development packages of OpenSSL installed (libssl-dev
on Ubuntu or openssl-devel
on Fedora).
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
See CONTRIBUTING.md.