did:webvh implementation
A complete implementation of the did:webvh method in Rust. Supports version 1.0 spec.
This library implements the Rust SSI Library resolver traits for use in universal resolvers such as the Affinidi DID resolver or your own.
A helpful implementation site is the webvh DID Method Information site
Change log
Features
- Create a did:webvh LogEntry and DID Document
- Resolve a did:webvh method
- Validate webvh LogEntries to v1.0 specification
- Update webvh DID
- Revoke webvh DID
- Witness webvh DID
- Migration of DID (portability)
- Validate witness information
- DID Query Parameters versionId and versionTime implemented
- WebVH DID specification version support (v1.0 and pre-v1.0)
Usage
Add this to your Cargo.toml:
[]
= "0.1.4"
Then:
use DIDWebVHState;
let mut webvh = default;
// Load LogEntries from a file
webvh.load_log_entries_from_file?;
Everyone likes a wizard
Getting started with webvh at first can be daunting given the complexity of the specification and supporting infrastructure such as witness and watcher nodes.
To help with getting started, a wizard for webvh has been created to help you.
To run this wizard, you need to have Rust installed on your machine.
WARNING: This wizard will generate secrets locally on your machine, and display the secret on the screen.
The wizard is meant for demonstration purposes only. Use in a production environment is not recommended.
Default Wizard Files
did.jsonl is the default WebVH LogEntry file that the wizard will create.
did-witness.json where Witness Proofs are saved.
did.jsonl-secrets is the default file containing key secrets
Is WebVH performant?
There is a lot going on with the WebVH DID method. A lot of keys, signing and validations
Depending on how often you are creating LogEntries, number of witnesses etc can have a big impact on performance.
To help with testing different usage scenario's, there is an example tool that can help you with testing real-world performance of the WebVH method.
To get options for the generate_history performance tool, run:
For example, to generate 200 LogEntries with 10 witnesses each, you can run:
This tool will generate the output to
- did.jsonl (LogEntries)
- did-witness.json (Witness Proofs)
License
Licensed under:
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)