Overview Arquitectura aidi
Se describen a continuación los componentes de Proyecto DIDI. Para mayor detalle de cada uno de estos ver la sección Descripción técnica.
DIDI Issuer module
El issuer es la aplicación para emisores DIDI que permite la creación de templates, pre credenciales y emisión de credenciales. Una vez emitidas las credenciales se almacenan en Mouro y son accedidas por los usuarios desde ai·di.
DIDI Credential Viewer/Validator
La app Credential Viewer permite la visualización de credenciales y presentciones compartidas mediante ai·di.
DIDI App SDK
El SDK provee clientes para DIDI Server y Mouro. Está basado en fp-ts (programación funcional con typescript)
DIDI Mobile App
La app mobile ai·di es el medio principal de interacción con los usuarios finales. Desde allí los usuarios pueden recibir, ver y compartir sus credenciales.
DIDI Mouro (Trust Graph Service)
Es un fork de uPort Trust Graph Server (aka EdgeServer). Se resposabiliza de almacenar y controlar el acceso a las credenciales.
DIDI Server
DIDI Server es el componente CENTRAL de Proyecto DIDI. Su responsabilidades son:
- Registro de usuarios y gestión de sus claves pivadas.
- Comunición con users mediante push, sms y email.
- Gestión de ShareRequest
- Gestión de Presentation
- Comunicación con el emisor Semillas (middleware desarrollado para la automatización de la emisión de credenciales para este caso de implementación).
- Verificación de identidad con RENAPER
- Gestión de emisores
- Gestión de aplicaciones
DIDI Identity
Es usado para validar la identidad de un usuario.
Entorno de ejecución
El entorno de ejecución de los componentes se encuentra descirpto mediante el siguiene diagrama:
El visor de credenciales y el Issuer front son 2 aplicaciones para navegador, desarrolladas en React. Por otro lado, la wallet ai·di y ronda se encuentran desarrolladas en React Native, con soporte sólo para Android.
El Visor Backend de credenciales, el Issuer Server, DIDI Server, Ronda Server, DIDI Mouro, Identity, Redis, MongoDB y Swarm se encuentran dockerizados, corriendo en una máquina virtual Azure.
En cuanto a Blockchain, se encuentran en uso los uPort ethr registry en RSK, BFA y LACChain. Además ronda utiliza RIF Name Service y Ronda Registry en RSK.