cleaning (doc)

This commit is contained in:
NicolasCantu 2024-04-09 22:35:53 +02:00
parent 49c557ef40
commit 9da174013b
9 changed files with 310 additions and 348 deletions

View File

@ -13,7 +13,7 @@ Cf. [Git SDK COMMON](https://git.4nk.com/4nk/sdk_common/doc)
* 4. [Portée](#Porte) * 4. [Portée](#Porte)
* 5. [Documents de référence](#Documentsderfrence) * 5. [Documents de référence](#Documentsderfrence)
* 6. [Définitions](#Dfinitions) * 6. [Définitions](#Dfinitions)
* 7. [Principes d'une `Envelope` rie](#PrincipesduneEnveloperie) * 7. [Principes de messagerie](#Principesdemessagerie)
* 8. [Encryption](#Encryption) * 8. [Encryption](#Encryption)
* 9. [Fonction des Pcd](#FonctiondesPcd) * 9. [Fonction des Pcd](#FonctiondesPcd)
* 9.1. [Schéma des flux](#Schmadesflux) * 9.1. [Schéma des flux](#Schmadesflux)
@ -25,7 +25,7 @@ Cf. [Git SDK COMMON](https://git.4nk.com/4nk/sdk_common/doc)
* 10.3. [Réception](#Rception-1) * 10.3. [Réception](#Rception-1)
* 11. [PrdList - Demande de Listes](#PrdList-DemandedeListes) * 11. [PrdList - Demande de Listes](#PrdList-DemandedeListes)
* 11.1. [Schéma des flux](#Schmadesflux-1) * 11.1. [Schéma des flux](#Schmadesflux-1)
* 12. [PrdMessage - Envoi d'une `Envelope`](#PrdMessage-EnvoiduneEnvelope) * 12. [PrdMessage - Envoi d'un message](#PrdMessage-Envoidunmessage)
* 12.1. [Schéma des flux](#Schmadesflux-1) * 12.1. [Schéma des flux](#Schmadesflux-1)
* 13. [PrdUpdate - Mises à Jour de Pcd](#PrdUpdate-MisesJourdePcd) * 13. [PrdUpdate - Mises à Jour de Pcd](#PrdUpdate-MisesJourdePcd)
* 13.1. [Schéma des flux](#Schmadesflux-1) * 13.1. [Schéma des flux](#Schmadesflux-1)
@ -75,11 +75,11 @@ Voir [_Doc_references.md](_Doc_references.md).
* **pre-id**: Pré-identifiant des `User`, constitué du hash de la partie 1 de la `KeyRecover`. * **pre-id**: Pré-identifiant des `User`, constitué du hash de la partie 1 de la `KeyRecover`.
## 7. <a name='PrincipesduneEnveloperie'></a>Principes de messagerie ## 7. <a name='Principesdemessagerie'></a>Principes de messagerie
Les `Pcd` sont envoyés à tous les participants connectés sans attente de retour spécifique et ne sont pas associés à une `transaction SP`. Les `Pcd` sont envoyés à tous les participants connectés sans attente de retour spécifique et ne sont pas associés à une `transaction SP`.
Les `Prd` sont toujours accompagnés d'une `transaction SP`, transmise dans l'attribut `raw_transaction_list` d'un `PrdMessage` associé (à l'exception des `PrdMessage` eux-mêmes). Les `Prd` sont toujours accompagnés d'une `transaction SP`, transmise dans l'attribut `raw_transaction_list` d'une `Envelope`.
Les `Prd` sont des demandes d'actions ou des réponses à ces demandes, interagissant de la manière suivante : Les `Prd` sont des demandes d'actions ou des réponses à ces demandes, interagissant de la manière suivante :
@ -371,7 +371,7 @@ Pour simplifier, les `PrdConfirm` n'ont pas été inclus dans le schéma.
![PrdList](diagrams/PRDList.png "PrdList") ![PrdList](diagrams/PRDList.png "PrdList")
## 12. <a name='PrdMessage-EnvoiduneEnvelope'></a>PrdMessage - Envoi d'un message ## 12. <a name='PrdMessage-Envoidunmessage'></a>PrdMessage - Envoi d'un message
Le `PrdMessage` facilite l'envoi d'un message sécurisé entre `User`. Le `PrdMessage` facilite l'envoi d'un message sécurisé entre `User`.

View File

@ -15,8 +15,6 @@ Cf. [Git SDK COMMON](https://git.4nk.com/4nk/sdk_common/doc)
* 6. [ Fonction](#Fonction) * 6. [ Fonction](#Fonction)
* 7. [ Structure des outputs](#Structuredesoutputs) * 7. [ Structure des outputs](#Structuredesoutputs)
* 8. [Envoi de la transaction SP](#EnvoidelatransactionSP) * 8. [Envoi de la transaction SP](#EnvoidelatransactionSP)
* 8.1. [Dans un `PrdMessage`](#DansunPrdMessage)
* 8.2. [Dans un `Envelope` du `PrdMessage`](#DansunEnvelopeduPrdMessage)
* 9. [ En réception les transactions silent Payments SP sont relayées par les relais en temps réel](#EnrceptionlestransactionssilentPaymentsSPsontrelayesparlesrelaisentempsrel) * 9. [ En réception les transactions silent Payments SP sont relayées par les relais en temps réel](#EnrceptionlestransactionssilentPaymentsSPsontrelayesparlesrelaisentempsrel)
<!-- vscode-markdown-toc-config <!-- vscode-markdown-toc-config
@ -37,7 +35,7 @@ Voir [_Doc_references.md](_Doc_references.md).
La transaction SP à plusieurs objectifs : La transaction SP à plusieurs objectifs :
1. Permettre l'horodatage de l'empreinte des `Prd` sur la side chain (`PrdMessage` sans `Envelope` confidentiel). 1. Permettre l'horodatage de l'empreinte des `Prd` sur la side chain.
2. Permettre le partage de la `keyConfidential` pour les `Prd` afin de déchiffrer les données confidentielles, sur d'autres relais que ceux qui ont reçu le `Prd`. 2. Permettre le partage de la `keyConfidential` pour les `Prd` afin de déchiffrer les données confidentielles, sur d'autres relais que ceux qui ont reçu le `Prd`.
La clé `KeyConfidential` d'une`transaction SP` est utilisée pour chiffrer les `Prd`.Cette clé est échangée avec le destinataire via un Diffie-Hellman (cf. [Specs-Security.md](Specs-Security.md)) dans la transaction. La clé `KeyConfidential` d'une`transaction SP` est utilisée pour chiffrer les `Prd`.Cette clé est échangée avec le destinataire via un Diffie-Hellman (cf. [Specs-Security.md](Specs-Security.md)) dans la transaction.
@ -56,7 +54,7 @@ Une fois le `Prd` finalisé, une transaction SP est réalisée, dans cette trans
0. L'output 0 est toujours un paiment au destinataire 0. L'output 0 est toujours un paiment au destinataire
1. L'output 1 c'est toujours l'op_return avec un tableau de hashs en clair selon un tableau de hashs en JSON avec les index suivants : 1. L'output 1 c'est toujours l'op_return avec un tableau de hashs en clair selon un tableau de hashs en JSON avec les index suivants :
1.1. Le hash de l'`Envelope` de type `Envelope` correspondant 1.1. Le hash de l'`Envelope`
1.2. Le hash du `Prd` 1.2. Le hash du `Prd`
1.3. Le hash du process 1.3. Le hash du process
1.4. Le hash de la valeur de la signature (attribut `sig_value` du Prd) 1.4. Le hash de la valeur de la signature (attribut `sig_value` du Prd)
@ -72,20 +70,7 @@ Pour des raison de confidentialité, le `Role` associé à `item_name` du `Prd`
## 8. <a name='EnvoidelatransactionSP'></a>Envoi de la transaction SP ## 8. <a name='EnvoidelatransactionSP'></a>Envoi de la transaction SP
Afin d'améliorer la rélisience du broadcast des transactions, la transaction est envoyée à la fois : La transaction est envoyée dans le `Envelope` sur les relais, et aux utilisateurs pouvant relayer les transactions.
1. Dans un `PrdMessage` à un Member du rôle `Member` du `Process` concerné et
2. Dans le `Envelope` du `PrdMessage` sur les relais
### 8.1. <a name='DansunPrdMessage'></a>Dans un `PrdMessage`
Dans l'attribut `raw_transaction_list` du `PrdMessage` associé à la transaction SP.
La transaction sera broadcastée par les noeuds de signet du Member du `Role` `Member` du `Process` concerné qui a reçu cette `Envelope` , il devra alors avoir un noeud de signet pour le broadcast.
### 8.2. <a name='DansunEnvelopeduPrdMessage'></a>Dans un `Envelope` du `PrdMessage`
Dans l'attribut `raw_transaction_list` de l'`Envelope` associé à la transaction SP.
La transaction sera broadcastée par les noeuds de signet des relais.
## 9. <a name='EnrceptionlestransactionssilentPaymentsSPsontrelayesparlesrelaisentempsrel'></a> En réception les transactions silent Payments SP sont relayées par les relais en temps réel ## 9. <a name='EnrceptionlestransactionssilentPaymentsSPsontrelayesparlesrelaisentempsrel'></a> En réception les transactions silent Payments SP sont relayées par les relais en temps réel

View File

@ -11,18 +11,18 @@ Cf. [Git SDK COMMON](https://git.4nk.com/4nk/sdk_common/doc)
* 2. [Table des matières](#Tabledesmatires) * 2. [Table des matières](#Tabledesmatires)
* 3. [Documents de référence](#Documentsderfrence) * 3. [Documents de référence](#Documentsderfrence)
* 4. [Choix des formats de données](#Choixdesformatsdedonnes) * 4. [Choix des formats de données](#Choixdesformatsdedonnes)
* 4.1. [Strings](#Strings) * 4.1. [ Strings](#Strings)
* 4.2. [Hexadécimales](#Hexadcimales) * 4.2. [ Hexadécimales](#Hexadcimales)
* 4.3. [Tableaux de bytes](#Tableauxdebytes) * 4.3. [ Tableaux de bytes](#Tableauxdebytes)
* 4.3.1. [8 Bytes (64 bits)](#Bytes64bits) * 4.3.1. [8 Bytes (64 bits)](#Bytes64bits)
* 4.3.2. [16 Bytes (128 bits)](#Bytes128bits) * 4.3.2. [16 Bytes (128 bits)](#Bytes128bits)
* 4.3.3. [32 Bytes (256 bits)](#32Bytes256bits) * 4.3.3. [ 32 Bytes (256 bits)](#32Bytes256bits)
* 4.3.4. [64 Bytes (512 bits)](#64Bytes512bits) * 4.3.4. [ 64 Bytes (512 bits)](#64Bytes512bits)
* 4.3.5. [Précautions générales pour la manipulation des tableaux de bytes](#Prcautionsgnralespourlamanipulationdestableauxdebytes) * 4.3.5. [  Précautions générales pour la manipulation des tableaux de bytes](#Prcautionsgnralespourlamanipulationdestableauxdebytes)
* 4.4. [Format Base64](#FormatBase64) * 4.4. [ Format Base64](#FormatBase64)
* 4.5. [Différence entre Bytes et Bits](#DiffrenceentreBytesetBits) * 4.5. [ Différence entre Bytes et Bits](#DiffrenceentreBytesetBits)
* 4.6. [Little Endian et Big Endian](#LittleEndianetBigEndian) * 4.6. [Little Endian et Big Endian](#LittleEndianetBigEndian)
* 4.7. [Conversions de données](#Conversionsdedonnes) * 4.7. [ Conversions de données](#Conversionsdedonnes)
* 4.7.1. [Conversion entre Strings et Hexadécimales](#ConversionentreStringsetHexadcimales) * 4.7.1. [Conversion entre Strings et Hexadécimales](#ConversionentreStringsetHexadcimales)
* 4.7.2. [Conversion entre Tableaux de Bytes et Format Base64](#ConversionentreTableauxdeBytesetFormatBase64) * 4.7.2. [Conversion entre Tableaux de Bytes et Format Base64](#ConversionentreTableauxdeBytesetFormatBase64)
* 4.7.3. [Conversion entre Bytes et Bits](#ConversionentreBytesetBits) * 4.7.3. [Conversion entre Bytes et Bits](#ConversionentreBytesetBits)
@ -31,7 +31,7 @@ Cf. [Git SDK COMMON](https://git.4nk.com/4nk/sdk_common/doc)
* 5. [Recommandations entre l'usage de HashMap ou d'un Vec (en Rust)](#RecommandationsentrelusagedeHashMapoudunVecenRust) * 5. [Recommandations entre l'usage de HashMap ou d'un Vec (en Rust)](#RecommandationsentrelusagedeHashMapoudunVecenRust)
* 5.1. [Utilisez un Vec si](#UtilisezunVecsi) * 5.1. [Utilisez un Vec si](#UtilisezunVecsi)
* 5.2. [Utilisez un HashMap si](#UtilisezunHashMapsi) * 5.2. [Utilisez un HashMap si](#UtilisezunHashMapsi)
* 5.3. [Recommandations Générales](#RecommandationsGnrales) * 5.3. [ Recommandations Générales](#RecommandationsGnrales)
* 6. [Gestion des erreurs](#Gestiondeserreurs) * 6. [Gestion des erreurs](#Gestiondeserreurs)
* 7. [Journalisation et monitoring](#Journalisationetmonitoring) * 7. [Journalisation et monitoring](#Journalisationetmonitoring)
* 8. [Tests](#Tests) * 8. [Tests](#Tests)

View File

@ -41,9 +41,9 @@ Cf. [Git SDK COMMON](https://git.4nk.com/4nk/sdk_common/doc)
* 6. [Encryption](#Encryption) * 6. [Encryption](#Encryption)
* 6.1. [KeyEncryption](#KeyEncryption) * 6.1. [KeyEncryption](#KeyEncryption)
* 6.2. [Aes256GcmIv96Bit](#Aes256GcmIv96Bit) * 6.2. [Aes256GcmIv96Bit](#Aes256GcmIv96Bit)
* 7. [Envelope](#Envelope) * 7. [7. Enveloppes](#Enveloppes)
* 7.1. [Message](#Message) * 7.1. [7.1. Enveloppe](#Enveloppe)
* 7.2. [EnvelopeConnect](#EnvelopeConnect) * 7.2. [7.2. EnveloppesConnect](#EnveloppesConnect)
* 7.3. [EnvelopeGeneric](#EnvelopeGeneric) * 7.3. [EnvelopeGeneric](#EnvelopeGeneric)
* 7.4. [Pow](#Pow) * 7.4. [Pow](#Pow)
* 7.5. [Process](#Process-1) * 7.5. [Process](#Process-1)
@ -691,9 +691,9 @@ Pseudo-code:
} }
``` ```
## 7. Enveloppes ## 7. <a name='Enveloppes'></a>7. Enveloppes
### 7.1. Enveloppe ### 7.1. <a name='Enveloppe'></a>7.1. Enveloppe
| Attribute Name | Type | Option | | Attribute Name | Type | Option |
| -------------- | -------------------- | ------ | | -------------- | -------------------- | ------ |
@ -709,7 +709,7 @@ Pseudo-code:
} }
``` ```
### 7.2. EnveloppesConnect ### 7.2. <a name='EnveloppesConnect'></a>7.2. EnveloppesConnect
| Attribute Name | Type | Option | | Attribute Name | Type | Option |
| -------------- | -------------------- | ------ | | -------------- | -------------------- | ------ |
@ -1371,14 +1371,12 @@ Pseudo-code:
| Attribute Name | Type | Option | | Attribute Name | Type | Option |
| ---------------------- | ----------------- | ------ | | ---------------------- | ----------------- | ------ |
| `request_prd` | ```Prd``` | | | `request_prd` | ```Prd``` | |
| `raw_transaction_list` | ```Vec<String>``` | Yes |
Pseudo-code: Pseudo-code:
```json ```json
{ {
"request_prd": Prd, "request_prd": Prd,
"raw_transaction_list": []
} }
``` ```

View File

@ -1,21 +0,0 @@
Questions PCD-PRD Specs:
1 - PrdResponse:
Réponse aux autres types de Prd (à l'exception de PrdConfirm, et PrdMessage).
ou
Répond à tous les autres types de Prd (à l'exception des PrdConfirm, PrdResponse eux-mêmes)
=> Réponse aux autres types de Prd (à l'exception de PrdConfirm, et PrdMessage).
2 - Expliquer les champs sur  Notification User (tableau)?
=> Cest lorsque lIHM doit recevoir un ev ent pour lui signaler soit lenvoi dun Prd soit la réception
3 -Info sur les Tx Sp : Toujours dans le PrdMessage?
=> 2 utilisation :
- Un message => pas de Tx SP
- Lenvoi une Tx Sp à relayer => toujours dans un PrdMessage (en plus de lenveloppe Message du Prd). Je comprend lambiguité :) je réfléchi à renomer « Message » en « Envelope» quen pensez vous ?
4- Receive prdUpdate: column "PrdResponse reply waiting" (yes, other members)
=> Lorsque lon reçoit un PRDUpdate on va y répondre si on un gestionnaire concerné, mais on va aussi attendre toutes les réponses de tous les gestionnaires (quon soit gestionnaire ou pas) afin de valider ou non la nouvelle version du PCD associé.