Network Identity Store¶
Purpose¶
The Network Identity Store (NIS) engine stores information associated with known external identities (of peers, topics, domains, and engines), such as advertised addresses and local metadata. The information stored can come from various sources, such as local configuration, P2P protocols (e.g. peer sampling, clustering, pub/sub), other engines, or user input.
In case of peer identities, it stores known addresses along with local routing and transport preferences, latency measurements, trust metric and trust zone (e.g. local, remote).
State¶
IdentityStore¶
Contains all identity records stored by the engine.
Backed by the local key-value store (key: external identity, value: identity record).
list<(ExternalIdentity, IdentityRecord)>
Messages received¶
LookupIdentityRequest¶
Look up information about an external identity in the local database.
Reception:
Record with fields:
-
id
: ExternalIdentityExternal identity to look up.
Triggers:
Record with fields:
-
id
: ExternalIdentityExternal identity the response is about.
-
record
: IdentityRecordIdentity record associated with
id
.
UpdateIdentityRequest¶
Update information associated with a given external identity.
Reception:
Record with fields:
-
id
: ExternalIdentityExternal identity to update.
-
record
: IdentityRecordIdentity record with updated fields.
Triggers:
Record with fields:
-
id
: ExternalIdentityExternal identity the response is about.
-
result
: ResultResult of the update operation.
Notifications sent¶
IdentityUpdated¶
Notification sent after an IdentityRecord has been updated.
Record with fields:
-
id
: ExternalIdentityExternal identity the notification is about.
-
record
: IdentityRecordUpdated identity record.
Message flow¶
sequenceDiagram
Any Local Engine ->>+ Network Identity Store: LookupIdentityRequest
Network Identity Store -->>- Any Local Engine: LookupIdentityResponse
Any Local Engine ->>+ Network Identity Store: UpdateIdentityRequest
Network Identity Store -->>- Any Local Engine: UpdateIdentityResponse