did:webvh implementation
A complete implementation of the did:webvh method in Rust. Supports version 1.0 spec.
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)
- Export WebVH to a did:web document
- WASM friendly for inclusion in other projects
Usage
Add this to your Cargo.toml:
[]
= "0.1.7"
Then:
use DIDWebVHState;
let mut webvh = default;
// Load LogEntries from a file
webvh.load_log_entries_from_file?;
Feature Flags
- ssi
- Enables integration with the ssi crate
- This is useful when integrating into universal resolvers
- Enables integration with the ssi crate
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)