keri-java is a Java-based implementation of the Key Event Receipt Infrastructure specification .
keri-java is not ready for production usage. This project is under heavy development and provides no guarantees of a stable API for application developers. Further, the specification is also under heavy development.
Below describes the current capabilities of keri-java:
Identifiers:
- Create Basic Identifiers
- Create Self-Addressing Identifiers
- Create Self-Signing Identifiers
- Rotate non-Basic Identifiers
- Record interactions in the event log
- Simple signing thresholds
- Multi-signature identifiers
- Weighted signing threshold
- Delegation
Logs
- Serialization
- Verification
- Recovery
- Delegation Seals
- Out of Order Events
- (In Progress) Storage
Private/Direct Mode
- Keri Protocol Server and Client
- keripy/eve interoperability
- keripy/bob interoperability
- keripy/sam interoperability
Public/Indirect Mode
Most of the items here have not yet been defined in the specification.
- Witness Gossip Capabilities
- Query API
- Verifier Logic (Watcher, Juror, Judge, etc.)
Linux | macOS | Widows | |
---|---|---|---|
Controller CLI | intel | arm | intel | arm | intel | arm |
Publisher Node | intel | arm | intel | arm | intel | arm |
Resolver Node | intel | arm | intel | arm | intel | arm |
All builds are 64-bit.
Lookup Module
The lookup module provides applications the ability to obtain current verification keys and state information about an identifier.
<dependency>
<groupId>foundation.identitity.jkeri</groupId>
<artifactId>lookup</artifactId>
<version>[VERSION]</version>
</dependency>
Controller Module
The controller modules provides applications the ability to create and manage KERI identifiers.
<dependency>
<groupId>foundation.identitity.jkeri</groupId>
<artifactId>controller</artifactId>
<version>[VERSION]</version>
</dependency>
See each individual component's README for more information about getting started.
Lookup Client Library
Obtains public key information for an identifier.
Controller Client Library
Provides for the management of an identifier.
CLI Controller
Provides for the management of an identifier.
Witness/Publisher Node
A witness node.
Verifier/Resolver Node
A combination verifier/resolver.
Core
Code that is common to each of the components above.