Juvix imports
module arch.node.engines.naming_messages;
import prelude open;
import arch.node.types.identities open;
Naming Messages¶
Message interface¶
type NamingMsg :=
| MsgNamingResolveNameRequest RequestResolveName
| MsgNamingResolveNameReply ReplyResolveName
| MsgNamingSubmitNameEvidenceRequest RequestSubmitNameEvidence
| MsgNamingSubmitNameEvidenceReply ReplySubmitNameEvidence
| MsgNamingQueryNameEvidenceRequest RequestQueryNameEvidence
| MsgNamingQueryNameEvidenceReply 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 ExternalIdentity
s 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
ExternalIdentity
s 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
IdentityName
and 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
IdentityName
s 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
ExternalIdentity
associated with the returned evidence. evidence
:- A set of
IdentityNameEvidence
related to the identity. err
:- An error message if the query failed.
NamingMsg
¶
type NamingMsg :=
| MsgNamingResolveNameRequest RequestResolveName
| MsgNamingResolveNameReply ReplyResolveName
| MsgNamingSubmitNameEvidenceRequest RequestSubmitNameEvidence
| MsgNamingSubmitNameEvidenceReply ReplySubmitNameEvidence
| MsgNamingQueryNameEvidenceRequest RequestQueryNameEvidence
| MsgNamingQueryNameEvidenceReply ReplyQueryNameEvidence;