Services
In SomaChat, a service would be a standalone application that manages a specific area of concern.
Reasons for having a service-based architecture are separation of concerns, modularity, decentralization.
Mechanism of action
A service authenticates a user by verifying a signature of some data. The signature is created by the public key corresponding to the user (e.g. the one generated by a password). This is how user data is currently updated (i.e. nickname, tripcode, status, color).
It might be useful to leverage some functionality via smart contracts.
Types of services
Key service
Manage keys in a separate container. SKS - Soma Key Service
Not a shared service; see page
Name service
Register a unique nickname for your tripcode. SNS - Soma Name Service
Profile service
Manage non-sensitive user data - profile picture, links, maybe even nickname.
Manage friend lists.
Sensitive data is encrypted by the user prior to sending it to the service.
Discovery service
Discover other networks/servers/users.
Private messaging service
Send private messages via this instead of the primary server.
Might need to sync data with the primary server.
Statistics service
Tracks usage statistics and provides useful analytics
Last updated