Development Demo #Q1 2019
- Prometheus Webapp UI Prototype for Titania presented
- Command Line Interface Prometheus presented
Prometheus Webapp UI Prototype for Titania
Prometheus will be the interface for the end user where different decentralised identifiers (short DIDs) can be created and managed. This means that you can register multiple profiles that represent different entities on the network like yourself, a device, a social group or institution or a crypto-wallet. A cryptographic keypair will be automatically generated to secure each identifier.
In the video (see above), one of our core developers, Pooja, presents only a few of the possible use cases of the Prometheus UI.
It starts with the registration of a detective profile named Bhomkesh. After the creation, you are forwarded to a dashboard which gives you an overview of all generated profiles. For example, a student called Samuel with his active profile visually showing in a graph his academic paths with some basic claims about his studies as well as the social media platforms he uses.
Another profile he has created so far is one of a tutor on the side with the devices he is connected to, also displaying the last time he was logged in and his last contact.
Other profiles in this interface are created to reflect his hobbies as a swimmer and gamer Galatica, furthermore his occupation as the detective Bhomkesh.
At all times, Samuel is able to switch between profiles, setting the one he wants to be active in order to continue to interact with his surroundings.
Our vision of claims verification is introduced in this video. In Samuel’s case, his date of graduation, as well as his GPA score, are claimed by the “University of Nayarit” on Samuel’s request and verified by Samuel himself.
The address book of Prometheus will have an overview of the different types of profiles mentioned above: personal profiles, devices, etc.
A claim about a device could e.g. be about the fact that they are connected to each other or belong to the same person. In this example, Samuel could use his phone and laptop for gaming.
Groups can vary in size, from a small hobby gardening club to the university you attended.
Wallets represent a separate account for sending and receiving crypto currency. You can have one or more wallets for each crypto-currency you use, to separate accounting or to obscure the relations between your profiles. Private keys for your cryptocurrency addresses are generated and stored by the same keyvault that also manages your profile IDs, so all your balances can be restored together with your profiles using a single seed phrase.
Another test case in the development demo was about an influencer called “Dealer Lady”. In the graph one can see her follower in real time, the devices that she registered as well as the applications she is using.
At the beginning of May, Internet of People (IOP) has released a development demo about the Prometheus UI (frontend) and Morpheus (backend), forming the digital identity management. The video can be watched here.
Command Line Interface Prometheus
In the second part of the video, Istvan, who is also a core developer at IOP, is presenting the command line interface for Prometheus, which provides a view into the code used for our identity management project called Morpheus.
When typing in help, the system lists the subcommands currently available.
The Vault of Prometheus is similar to crypto-wallet software but instead of receiving addresses, you have profiles with an arbitrary set of attributes associated with your keypairs.
At a later stage, the personal data entered here will form the open social graph.
To kick off, the system needs to be initialised. A list of 24 random words is generated for you which you will need to type 1 by 1 to create your wallet. Today, Istvan takes a shortcut by creating a pre-configured demo vault with zero initial profiles. He then creates 4 profiles, the last of which is automatically set as the active profile.
Istvan demonstrates switching to another profile and that this profile is currently empty. Each profile starts at version 1, the first version with zero attributes and no link to other profiles.
As a start, Istvan fills in the attributes “name” and “age” the command line, which become part of the local version of the profile. To make this data publicly available, the profile needs to be published to the remote database. Istvan also adds a twitter account to the profile but does not publish this change.
To represent another device, Istvan moves to a new window. He first initialises his profiles again. He lists his profiles and when showing the same profile as on the first device, the last added attribute of a twitter account is not displayed since it was not published in the first place.
Istvan switches back to the first device and publishes the profile including the twitter attribute to the remote database.
Going back to the second devices, Istvan pretends that he has forgotten about changing his profile on the first device. Istvan clears age so that only one attribute is left on his local device.
When Istvan now tries to publish the newly modified profile with only a single attribute, it’s not possible because there is a conflict between the two versions of his profile. Even when restoring his local version to the base version (the last known state of the remote), there is still a newer version available remotely, so the CLI refuses the update unless you force the publication.
The last part of the video Istvan wants to demonstrate the link between 2 profiles. On his first device, he chooses another unpublished profile and publishes it. This allows him to create a link between the two public profiles.
Using the app as an influencer, you will have the option to display a list of your followers. In our video however, there are currently no followers. So, Istvan has to publish the fact of linking the profiles. Only after publishing again, the link between the profiles is publicly visible
All features demonstrated in this video are currently being merged into the Mercury code base, where Morpheus will function as the central crypto vault for authentication in Mercury. The code will be made public on our Github in the next week.