| Crates.io | vade-evan |
| lib.rs | vade-evan |
| version | 0.3.0 |
| created_at | 2020-03-26 15:30:38.821792+00 |
| updated_at | 2022-05-06 19:06:49.512554+00 |
| description | zero-knowledge-proof VC and TnT DID handling for vade |
| homepage | https://github.com/evannetwork/vade-evan |
| repository | https://github.com/evannetwork/vade-evan |
| max_upload_size | |
| id | 223143 |
| size | 561,241 |
This crate allows you to use to work with DIDs and zero knowledge proof VCs on Trust and Trace.
It offers a command line interface and a wasm package to work with a pre-configured Vade instance for Trust and Trace.
No surprise here:
cargo build --release
By default features cli, did, didcomm, portable, and vc-zkp are used. So everything included and available for usage in command line interface.
Features can be omitted. So for example vc-zkp or did could be skipped.
Instead of using vade-evan-bbs and vade-evan-cl, features can be adjusted to use simple JWT signing for the creation and verification of VC.
cargo build --release --no-default-features --features cli,did-sidetree,did-read,portable,vc-jwt
By default the feature did enables did related operations => did-resolve, did-create, did-update using vade-evan-substrate and did-resolve using vade-universal-resolver plugins.
We also support did operations for sidetree based implementation which can be enabled if you are using non-default features, to enable it add the feature did-sidetree to the features set.
cargo build --release --no-default-features --features cli,did-sidetree,did-read,did-write,didcomm,portable,vc-zkp
In a similar manner if you want to use either vade-evan-substrate or vade-universal-resolver, you have to add them to features set.
cargo build --release --no-default-features --features cli,did-substrate,did-read,did-write,didcomm,portable,vc-zkp
cargo build --release --no-default-features --features cli,did-universal-resolver,did-read,didcomm,portable,vc-zkp
Features can be adjusted for specific needs, if you want to restrict read (did-resolve) or write (did-create and did-update) operations for DIDs.
cargo build --release --no-default-features --features cli,did-sidetree,did-write,didcomm,portable,vc-zkp
cargo build --release --no-default-features --features cli,did-sidetree,did-read,didcomm,portable,vc-zkp
Features can be adjusted to support integration with IN3 SDK by enabling sdk feature (sdk feature can only be used with c-lib feature), by enabling this feature HTTP request/response are managed via IN3 SDK.
cargo build --release --no-default-features --features did-sidetree,did-write,didcomm,portable,vc-zkp,c-lib,sdk
If you are using non-default features, enable the cli just add the feature cli to the feature set:
cargo build --release --features cli
You can now use the vade-evan cli. Get started by having a look at the help shown after calling it with:
./target/release/vade_evan_cli
To compile vade-evan for wasm, use wasm pack.
You can specify to use only did feature or to use did and vc-zkp. The following examples will use both features.
Also you have to specify whether to build a browser or a nodejs environment.
nodejs:
wasm-pack build --release --target nodejs -- --no-default-features --features did,didcomm,vc-zkp,wasm
browser:
wasm-pack build --release --target web -- --no-default-features --features did,didcomm,vc-zkp,wasm
A project that wraps calls against the WASM file has been added and placed at builds/wasm.
To build it, you need to have checked out next to your vade-evan project:
vade-evan-clvade-evan-bbsvade-didcommvade-evan-substrateThen it can be build by navigating to builds/wasm and calling
yarn && yarn build
If you want to try it out, navigate to builds/wasm/example and run
yarn && node index.js
This example will generate a new DID, assign a document to it and update it afterwards.
| feature | default | contents |
|---|---|---|
| cli | x | enables command line interface |
| c-lib | exposes C interface for C applications to use vade | |
| did | x | enables DID functionalities |
| did-read | x | enables did_resolve method for DID related operations |
| did-write | x | enables did_create and did_update methods for DID related operations |
| did-substrate | x | enables DID functionalities (did_resolve, did_create, did_update ) using vade-evan-substrate plugin |
| did-universal-resolver | x | enables did_resolve method using vade-universal-resolver plugin |
| did-sidetree | enables DID functionalities for Sidetree based implementation using vade-sidetree plugin | |
| didcomm | x | enables DIDComm message handling |
| sdk | enables sdk integration via managing http requests/response via IN3 SDK | |
| java-lib | exposes Java interface for Java applications to use vade | |
| vc-zkp | x | enables VC functionalities using vc-zkp-bbs, vc-zkp-cl, vc-jwt features by default |
| vc-zkp-bbs | x | enables VC functionalities using vade-evan-bbs plugin |
| vc-zkp-cl | x | enables VC functionalities using vade-evan-cl plugin |
| vc-jwt | x | currently supports vc_zkp_issue_credential and vc_zkp_verify_proof with JWT signatures |
| portable | x | build with optimizations to run natively, not compatible with wasm feature |
| wasm | build with optimizations to run as web assembly, not compatible with portable |
At the moment all vade related dependencies (vade itself and its plugins) are supposed to be pulled from the latest commit of the develop branch. As the dependency handling stores the hash of this commit in the lock file, updates on develop branch are not used by default.
If those updates should be pulled, the entry in the Cargo.lock file has to be deleted and cargo build has to be run again to update these hashes. If wanting to update specific dependencies, those can be deleted from the Cargo.lock by hand. If wanting to update all of the vade related dependencies, a script (scripts/remove-vade-dependencies-from-lockfile.sh) can be used. Note that this script relies on dasel so this must be installed locally, e.g. with homebrew.