details (doc)

This commit is contained in:
NicolasCantu 2024-02-18 15:39:25 +01:00
parent 97a5b11ce6
commit b666b2a0ee

View File

@ -64,16 +64,6 @@ Les messages contiennent des `RequestPrd` ou des `RequestPcd` encapsulés dans l
**Création du message et envoi**: voir [Message-SP-Specs.md](Message-SP-Specs.md).
| `request_type` | transaction SP | RequestPcd to send | send to | RequestPcd waiting | RequestPrdResponse waiting |
|-----------------------|------------------------------|--------------------|---------------------------------------------------------------|--------------------|----------------------------|
| `RequestPrdList` | Yes | No | all the members of the `item_name` role into to `ItemProcess` | Yes | Yes |
| `RequestPrdUpdate` | Yes | Yes | all the members of all role into to `ItemProcess` | No | Yes |
| `RequestPrdMessage` | if no `raw_transaction_list` | No | a member of the `ItemProcess` | No | No |
| `RequestPrdResponse` | Yes | No | See Received | No | No |
| `RequestPrdConfirm` | Yes | No | See Received | No | No |
| `RequestPrdKeyBackup` | No | No | all the members of the `SharedProcess` | No | Yes |
| `RequestPrdKeyHello` | Yes | No | all the members of all role into to `ItemProcess` | Yes | Yes |
### 4.2. <a name='Rception'></a>Réception
Les `RequestPcd` et les `RequestPrd` sont reçus sous forme de `message` (JSON) depuis les websockets des relais.
@ -88,16 +78,6 @@ Les types `RequestPrd` et `RequestPcd` sont distingués par l'attribut `request_
En cas de `RequestPcd` ou `RequestPrd` en relation via `RequestPcd_reference_hash` ou `request_prd_reference_hash` ou `RequestPcd_origin_hash` ou `request_prd_origin_hash` ou `item_reference_hash` (dans des RequestPcd), il avoir reçu ou attendre ces documents pour traiter le message.
| `request_type` | RequestPrdConfirm | RequestPcd to send | RequestPrdResponse to send |
|-----------------------|------------------------------|--------------------|---------------------------------------------------------------|
| `RequestPrdList` | Yes | Yes | all the members of the `item_name` role into to `ItemProcess` |
| `RequestPrdUpdate` | Yes | Yes | all the members of all role into to `ItemProcess` |
| `RequestPrdMessage` | if no `raw_transaction_list` | No | a member or reply |
| `RequestPrdResponse` | Yes | No | No |
| `RequestPrdConfirm` | No | No | No |
| `RequestPrdKeyBackup` | No | No | reply |
| `RequestPrdKeyHello` | Yes | Yes | reply |
**Réception du message**: voir [Message-SP-Specs.md](Message-SP-Specs.md).
Pour les `RequestPcd` et les `RequestPrd` il faut vérifier que le hash du document n'est pas déjà en cas, si c'est le cas, le message est ignoré.
@ -118,6 +98,16 @@ La création d'un `RequestPcd` suit plusieurs étapes :
4. Chiffrement du `RequestPcd` avec la clé `ProcessKey` du `ItemProcess` concerné.
5. Traitements communs aux `RequestPcd` et RequestPrd
| `request_type` | `transaction SP` + `RequestPrdMessage` | `RequestPcd` to send | send to | `RequestPcd` reply waiting | `RequestPrdResponse` reply waiting | `RequestPrdConfirm` reply waiting |
|-----------------------|----------------------------------------|----------------------|---------------------------------------------------------------|----------------------------|------------------------------------|-----------------------------------|
| `RequestPrdList` | Yes | No | all the members of the `item_name` role into to `ItemProcess` | Yes | Yes | Yes |
| `RequestPrdUpdate` | Yes | Yes | all the members of all role into to `ItemProcess` | No | Yes | Yes |
| `RequestPrdMessage` | if no `raw_transaction_list` | No | a member of the `ItemProcess` | No | No | if no `raw_transaction_list` |
| `RequestPrdResponse` | Yes | No | See Received | No | No | Yes |
| `RequestPrdConfirm` | Yes | No | See Received | No | No | No |
| `RequestPrdKeyBackup` | No | No | all the members of the `SharedProcess` | No | Yes | No |
| `RequestPrdKeyHello` | Yes | No | all the members of all role into to `ItemProcess` | Yes | Yes | Yes |
### 5.2. <a name='Rception-1'></a>Réception
La réception d'un `RequestPcd` suit plusieurs étapes :
@ -129,6 +119,16 @@ La réception d'un `RequestPcd` suit plusieurs étapes :
5. Déchiffrage des attributs privés des `Item` des `RequestPcd` avec la clé privée `KeyRecover`
6. Mise à jour du cache pour les traitement des RequestPrd.
| `request_type` | `RequestPrdConfirm` to send | `RequestPcd` to send | `RequestPrdResponse` to send | `RequestPrdResponse` reply waiting |
|-----------------------|------------------------------|----------------------|---------------------------------------------------------------|------------------------------------|
| `RequestPrdList` | Yes | Yes | all the members of the `item_name` role into to `ItemProcess` | No |
| `RequestPrdUpdate` | Yes | No | all the members of all role into to `ItemProcess` | Yes (other members) |
| `RequestPrdMessage` | if no `raw_transaction_list` | No | No | No |
| `RequestPrdResponse` | Yes | No | No | No |
| `RequestPrdConfirm` | No | No | No | No |
| `RequestPrdKeyBackup` | No | No | reply | No |
| `RequestPrdKeyHello` | Yes | Yes | reply | No |
## 6. <a name='FonctiondesRequestPrd'></a>Fonction des RequestPrd
Les Portable Request Documents ( RequestPrd) sont des documents JSON qui encapsulent les valeurs de signatures et les clés de déchiffrement nécessaires à l'interprétation des `RequestPcd` via l'attribut `RequestPcd_keys_role_confidential_list_enc_by_shared_secret`. Ils sont utilisés pour demander des actions spécifiques, telles que l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
@ -199,14 +199,14 @@ La réception d'un `RequestPcd` suit plusieurs étapes :
Utile pour les utilisateurs cherchant à consulter ou à explorer des listes de contrats, de membres, ou d'autres items dans le réseau. Chaque `RequestPcd` liste des `Item` d'un même type, par exemple les `ItemProcess`, les `ItemMember`, les `ItemPeer`, les `ItemPayment`, etc.
### 7.1. <a name='Crationetenvoi-1'></a>Création et envoi
### 7.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques
1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdList` et envoi vers tous les `members` concernés par le `ItemProcess` pour le `Role` correspondant dans le `item_name`
2. Attente du `RequestPrdResponse` avec le `RequestPcd` demandés.
3. voir `RequestPrdResponse` réception.
4. Voir `RequestPcd` réception.
### 7.2. <a name='Rception-1'></a>Réception
### 7.2. <a name='Rception-1'></a>Réception : Datas spécifiques
La réception d'un `RequestPrdList` suit plusieurs étapes :
@ -214,10 +214,6 @@ La réception d'un `RequestPrdList` suit plusieurs étapes :
2. Recherche en cache de la dernière version de la liste du type d'`Item` concerné.
3. Voir `RequestPcd` Création et envoi vers l'émetteur du `RequestPrdList`.
| transaction SP | RequestPrdConfirm to send | RequestPcd to send | RequestPrdResponse to send |
|----------------|---------------------------|--------------------|----------------------------|
| Yes | Yes | Yes | to the sender |
## 8. <a name='RequestPrdMessage-EnvoideMessages'></a>RequestPrdMessage - Envoi de Messages
Le `RequestPrdMessage` facilite l'envoi de messages sécurisés entre utilisateurs ou entre utilisateurs et processus/contrats.
@ -228,13 +224,13 @@ Permet la communication des`transaction SP` au format `raw` dans l'attribut `raw
Les `RequestPrdMessage` répondent aux `RequestPrdMessage` sauf en cas d'envoi de `raw_transaction_list`.
### 8.1. <a name='Crationetenvoi-1'></a>Création et envoi
### 8.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques
1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdMessage` vers l'emméteur du `RequestPrdMessage`.
2. Attente du `RequestPrdMessage` éventuel (sauf en cas d'envoi d'une `transaction SP`).
3. Le cas échéant : voir `RequestPrdMessage` Réception
### 8.2. <a name='Rception-1'></a>Réception
### 8.2. <a name='Rception-1'></a>Réception : Datas spécifiques
La réception d'un `RequestPrdMessage` suit plusieurs étapes :
@ -254,7 +250,7 @@ Par exemple, mettre à jour la liste des membres permet d'ajouter de nouveaux ut
Les `RequestPrdUpdate` signalent au réseau via l'attribut `RequestPcd_new_version_hash` les nouvelles version des RequestPcd.
### 9.1. <a name='Crationetenvoi-1'></a>Création et envoi
### 9.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques
1. Création d'un nouveau `RequestPcd` avec les modifications demandées.
2. Envoi du `RequestPcd` vers les `members` concernés par le `ItemProcess` pour le `Role` correspondant dans le `item_name`.
@ -263,7 +259,7 @@ Les `RequestPrdUpdate` signalent au réseau via l'attribut `RequestPcd_new_versi
5. Voir `RequestPrdResponse` Réception
6. Voir `RequestPcd` Réception.
### 9.2. <a name='Rception-1'></a>Réception
### 9.2. <a name='Rception-1'></a>Réception : Datas spécifiques
La réception d'un `RequestPrdUpdate` suit plusieurs étapes :
@ -279,11 +275,11 @@ Les `RequestPrdList`, `RequestPrdUpdate`, `RequestPrdMessage`, `RequestPrdRespon
`code_confirm_enc_by_shared_secret`: Un code de confirmation chiffré qui valide l'authenticité et l'intégrité de la réponse, assurant que la confirmation est sécurisée et provient de la source attendue. Dans ce cas un output spécifique chiffré par la clé `KeyConfidential` précise ce code, à confirmer dans le RequestPrdConfirm.
### 10.1. <a name='Crationetenvoi-1'></a>Création et envoi
### 10.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques
1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdConfirm` envoi vers l'emméteur du `RequestPrd`.
### 10.2. <a name='Rception-1'></a>Réception
### 10.2. <a name='Rception-1'></a>Réception : Datas spécifiques
Traitements des `RequestPrd`, pas de traitement suppplémentaire.
@ -297,12 +293,12 @@ Utilisé pour fournir des feedbacks, des confirmations, ou des instructions supp
Aussi le moyen de demander des moyens de paiement ou de dépot ou de preuve, puis de partager le payload de ces actions.
### 11.1. <a name='Crationetenvoi-1'></a>Création et envoi
### 11.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques
1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdResponse` et envoi en fonction du type de `RequestPrd` d'origine.
2. Pas de traitement supplémentaire.
### 11.2. <a name='Rception-1'></a>Réception
### 11.2. <a name='Rception-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd`
2. Notification de l'utilisateur.
@ -311,7 +307,7 @@ Aussi le moyen de demander des moyens de paiement ou de dépot ou de preuve, pui
Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` .
### 12.1. <a name='Crationetenvoi-1'></a>Création et envoi
### 12.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques
1. Voir [Auth-Specs.md](Auth-Specs.md) pour la création des shards et de la pré-image
2. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyBakcup`
@ -322,7 +318,7 @@ Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards as
7. Voir `RequestPrdKeyHello` création et envoi
8. Mise à jour du cache
### 12.2. <a name='Rception-1'></a>Réception
### 12.2. <a name='Rception-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd`
2. Récupération en cache des shards et de la pré-image
@ -335,13 +331,13 @@ RequestPrdKeyHello est conçu pour initier ou répondre à des demandes d'échan
Important pour les processus d'onboarding de nouveaux membres, de réinitialisation des accès, ou de renouvellement des clés, facilitant une intégration sécurisée et la mise à jour des identités dans le réseau.
### 13.1. <a name='Crationetenvoi-1'></a>Création et envoi
### 13.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques
1. Voir [Auth-Specs.md](Auth-Specs.md) pour la création des shards et de la pré-image
2. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello`
3. Envoi vers tous les membres de décrits dans `SharedProcess` ou vers tous les membres de tous les roles du `ItemProcess` si celui ci est présent en cache.
### 13.2. <a name='Rception-1'></a>Réception
### 13.2. <a name='Rception-1'></a>Réception : Datas spécifiques
1. Voir [Auth-Specs.md](Auth-Specs.md) pour la récupération des shards et de la pré-image
2. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello`
@ -352,5 +348,4 @@ Important pour les processus d'onboarding de nouveaux membres, de réinitialisat
## 15. <a name='Todo'></a>Todo
* [ ] Ajouter un tableau : transaction SP, confirmation attendue, réponse attendue, création vers, réponse vers.
* [ ] Diagrammes de séquences