# State
The did
module keeps state of Identities, represented as the evolution of the DID Document and Metadata for a certain DID.
# Store
The module appends in the store the updated Identity.
Key | Value | |
---|---|---|
did:identities:[address]:[updated] | → | Identity |
This operation uses the block time (guaranteed to be deterministic and always increasing) to populate the Updated
field of Metadata
.
This timestamp is also used to populate the Created
field, but only for the first version of the Identity
, that will be maintained in the newer versions.
# The Identity
type
message Identity {
DidDocument didDocument = 1;
Metadata metadata = 2;
}
# DidDocument
definition
message DidDocument {
option (gogoproto.equal) = true;
repeated string context = 1 [ (gogoproto.jsontag) = "@context,omitempty" ];
string ID = 2;
repeated VerificationMethod verificationMethod = 3;
repeated string authentication = 4;
repeated string assertionMethod = 5;
repeated string keyAgreement = 6;
repeated string capabilityInvocation = 7;
repeated string capabilityDelegation = 8;
repeated Service service = 9;
}
# VerificationMethod
definition
message VerificationMethod {
option (gogoproto.equal) = true;
string ID = 1;
string Type = 2;
string Controller = 3;
string publicKeyMultibase = 4;
}
# Service
definition
message Service {
option (gogoproto.equal) = true;
string ID = 1;
string type = 2;
string serviceEndpoint = 3;
}
# Metadata
definition
message Metadata {
string created = 1;
string updated = 2;
}