Juvix imports
module arch.node.engines.naming_messages;
import prelude open;
import arch.node.types.identities open;
Naming Messages¶
Message interface¶
type NamingMsg :=
| ResolveNameRequest RequestResolveName
| ResolveNameReply ReplyResolveName
| SubmitNameEvidenceRequest RequestSubmitNameEvidence
| SubmitNameEvidenceReply ReplySubmitNameEvidence
| QueryNameEvidenceRequest RequestQueryNameEvidence
| QueryNameEvidenceReply ReplyQueryNameEvidence;
Message sequence diagrams¶
Resolving a name¶
sequenceDiagram
participant Client
participant NamingEngine
Client->>NamingEngine: RequestResolveName (name)
Note over NamingEngine: Check stored evidence
NamingEngine->>Client: ReplyResolveName
Submitting name evidence¶
sequenceDiagram
participant Client
participant NamingEngine
Client->>NamingEngine: RequestSubmitNameEvidence
Note over NamingEngine: Verify and store evidence
NamingEngine->>Client: ReplySubmitNameEvidence
Querying name evidence¶
sequenceDiagram
participant Client
participant NamingEngine
Client->>NamingEngine: RequestQueryNameEvidence (for ExternalIdentity)
Note over NamingEngine: Retrieve relevant evidence
NamingEngine->>Client: ReplyQueryNameEvidence
Message types¶
RequestResolveName¶
type RequestResolveName :=
mkRequestResolveName@{
identityName : IdentityName;
};
A RequestResolveName asks the Naming Engine which ExternalIdentitys are
associated with a given IdentityName.
Arguments
identityName:- The name to resolve.
ReplyResolveName¶
type ReplyResolveName :=
mkReplyResolveName@{
externalIdentities : Set ExternalIdentity;
err : Option String;
};
A ReplyResolveName is returned in response to a RequestResolveName.
Arguments
externalIdentities:- A set of
ExternalIdentitys associated with theIdentityName. err:- An error message if the resolution failed.
RequestSubmitNameEvidence¶
type RequestSubmitNameEvidence :=
mkRequestSubmitNameEvidence@{
evidence : IdentityNameEvidence;
};
A RequestSubmitNameEvidence instructs the Naming Engine to store a new piece
of IdentityNameEvidence.
Arguments
evidence:- The evidence supporting the association between an
IdentityNameand anExternalIdentity.
ReplySubmitNameEvidence¶
type ReplySubmitNameEvidence :=
mkReplySubmitNameEvidence@{
err : Option String;
};
A ReplySubmitNameEvidence is sent in response to a RequestSubmitNameEvidence.
Arguments
err:- An error message if the submission failed.
RequestQueryNameEvidence¶
type RequestQueryNameEvidence :=
mkRequestQueryNameEvidence@{
externalIdentity : ExternalIdentity;
};
A RequestQueryNameEvidence instructs the Naming Engine to return any known
IdentityNames and IdentityNameEvidence associated with a specific
ExternalIdentity.
Arguments
externalIdentity:- The identity for which to retrieve evidence.
ReplyQueryNameEvidence¶
type ReplyQueryNameEvidence :=
mkReplyQueryNameEvidence@{
externalIdentity : ExternalIdentity;
evidence : Set IdentityNameEvidence;
err : Option String;
};
A ReplyQueryNameEvidence provides the requested evidence.
Arguments
externalIdentity:- The
ExternalIdentityassociated with the returned evidence. evidence:- A set of
IdentityNameEvidencerelated to the identity. err:- An error message if the query failed.
NamingMsg¶
type NamingMsg :=
| ResolveNameRequest RequestResolveName
| ResolveNameReply ReplyResolveName
| SubmitNameEvidenceRequest RequestSubmitNameEvidence
| SubmitNameEvidenceReply ReplySubmitNameEvidence
| QueryNameEvidenceRequest RequestQueryNameEvidence
| QueryNameEvidenceReply ReplyQueryNameEvidence;