The purpose of this repo is to build a Holochain DNA that provides a decentralized public key infrastructure (DPKI) that will be the default for Holochain installations.
The Deepkey DNA is designed so that it can work on its own, but architectural decisions are driven by the necessary integrations required to support Holochain's DPKI service and Lair.
In the design space of all possible Deepkey implementations, any type of public key could be
registered and managed (eg. for blockchains, TLS certificates, etc). This implementation only
supports the registration of Holochain AgentPubKey
.
- Enter
nix develop
for development environment dependencies.
make docs
# or, build individual packages
make target/doc/deepkey_types/index.html
make target/doc/deepkey_sdk/index.html
make target/doc/deepkey/index.html
make target/doc/deepkey_csr/index.html
See deepkey_csr/index.html for detailed API References.
make dna/deepkey.dna
Build package without publishing
make preview-deepkey-types-crate
Publish package
make publish-deepkey-types-crate
Build package without publishing
make preview-deepkey-sdk-crate
Publish package
make publish-deepkey-sdk-crate
To run all tests with logging
make test
make test-unit
- Rust tests onlymake test-integration
- Integration tests only
make test-basic
- Test MVP featuresmake test-change-rules
- Test management of change rulesmake test-key-management
- Test management of key evolutionmake test-claim-unmanaged-key
- Test ability to handle multiple claims of the same key
NOTE: set DEBUG_LEVEL environment variable to run tests with logging (options: fatal, error, warn, normal, info, debug, trace)
Example
DEBUG_LEVEL=trace make test
Features that were planned but may no longer be implemented.
Features that are planned but may or may not be completed.
KeyRegistration::CreateOnly
serves the temporary purpose of allowing Holo Hosts to register keys
of web users without being able to manage those keys. This feature could be replaced with adding a
claim key for web users to claim their unmanaged keys if/when they become a self-hosted Holochain
user.