tables des matières update (doc)
This commit is contained in:
parent
634105d245
commit
fcc8d0db15
@ -1,7 +1,7 @@
|
|||||||
<!-- vscode-markdown-toc -->
|
<!-- vscode-markdown-toc -->
|
||||||
* 1. [Worfklows](#Worfklows)
|
* 1. [Worfklows](#Worfklows)
|
||||||
* 2. [Transverse](#Transverse)
|
* 2. [Transverse](#Transverse)
|
||||||
* 3. [3.3. Diagrammes d'architecture](#Diagrammesdarchitecture)
|
* 3. [Diagrammes d'architecture](#Diagrammesdarchitecture)
|
||||||
* 4. [Todo](#Todo)
|
* 4. [Todo](#Todo)
|
||||||
|
|
||||||
<!-- vscode-markdown-toc-config
|
<!-- vscode-markdown-toc-config
|
||||||
@ -29,7 +29,7 @@
|
|||||||
* **Maintenance, environnement de déploiement**: [Specs-Deployment.md]
|
* **Maintenance, environnement de déploiement**: [Specs-Deployment.md]
|
||||||
* **References**: [Specs-References.md](Specs-References.md)
|
* **References**: [Specs-References.md](Specs-References.md)
|
||||||
|
|
||||||
## 3. <a name='Diagrammesdarchitecture'></a>3.3. Diagrammes d'architecture
|
## 3. <a name='Diagrammesdarchitecture'></a>Diagrammes d'architecture
|
||||||
|
|
||||||
* **Diagramme d'architecture montrant les composants principaux du système de login.**
|
* **Diagramme d'architecture montrant les composants principaux du système de login.**
|
||||||
[SheatSheet 4NK](https://cryptpad.fr/diagram/#/2/diagram/view/3UG+7ccutUvJlwJ1-bR40RhgOA+rb5eEmw42wtkN19A)
|
[SheatSheet 4NK](https://cryptpad.fr/diagram/#/2/diagram/view/3UG+7ccutUvJlwJ1-bR40RhgOA+rb5eEmw42wtkN19A)
|
||||||
|
@ -4,43 +4,43 @@
|
|||||||
* 3. [3. Documents de référence](#Documentsderfrence)
|
* 3. [3. Documents de référence](#Documentsderfrence)
|
||||||
* 4. [## 4. Variable `SharedPeerList` du SDK (Wasm)](#4.VariableSharedPeerListduSDKWasm)
|
* 4. [## 4. Variable `SharedPeerList` du SDK (Wasm)](#4.VariableSharedPeerListduSDKWasm)
|
||||||
* 5. [5. Structure du stockage en cache](#Structuredustockageencache)
|
* 5. [5. Structure du stockage en cache](#Structuredustockageencache)
|
||||||
* 5.1. [5.1. Relais](#Relais)
|
* 5.1. [5.1. Relais](#Relais)
|
||||||
* 5.2. [5.2. Process](#Process)
|
* 5.2. [5.2. Process](#Process)
|
||||||
* 5.3. [5.3. Liste des hashs des messages reçus](#Listedeshashsdesmessagesreus)
|
* 5.3. [5.3. Liste des hashs des messages reçus](#Listedeshashsdesmessagesreus)
|
||||||
* 5.4. [5.4. Liste des sockets ouverts](#Listedessocketsouverts)
|
* 5.4. [5.4. Liste des sockets ouverts](#Listedessocketsouverts)
|
||||||
* 6. [6. Caractéristiques générales des messages de type `Message` et de type `MessageConnect`](#CaractristiquesgnralesdesmessagesdetypeMessageetdetypeMessageConnect)
|
* 6. [6. Caractéristiques générales des messages de type `Message` et de type `MessageConnect`](#CaractristiquesgnralesdesmessagesdetypeMessageetdetypeMessageConnect)
|
||||||
* 6.1. [6.1. SharedPeerList](#SharedPeerList)
|
* 6.1. [6.1. SharedPeerList](#SharedPeerList)
|
||||||
* 6.2. [6.2. SharedProcessList](#SharedProcessList)
|
* 6.2. [6.2. SharedProcessList](#SharedProcessList)
|
||||||
* 6.3. [6.3. Taille des données](#Tailledesdonnes)
|
* 6.3. [6.3. Taille des données](#Tailledesdonnes)
|
||||||
* 6.4. [6.4. Preuve de travail](#Preuvedetravail)
|
* 6.4. [6.4. Preuve de travail](#Preuvedetravail)
|
||||||
* 6.5. [6.5. Adresse SP de faucet](#AdresseSPdefaucet)
|
* 6.5. [6.5. Adresse SP de faucet](#AdresseSPdefaucet)
|
||||||
* 7. [7. Traitements par les clients](#Traitementsparlesclients)
|
* 7. [7. Traitements par les clients](#Traitementsparlesclients)
|
||||||
* 7.1. [7.1. Connexion d'un client à sa liste relais via les messages de type `MessageConnect`](#ConnexiondunclientsalisterelaisvialesmessagesdetypeMessageConnect)
|
* 7.1. [7.1. Connexion d'un client à sa liste relais via les messages de type `MessageConnect`](#ConnexiondunclientsalisterelaisvialesmessagesdetypeMessageConnect)
|
||||||
* 7.1.1. [7.1.1. Récupération et choix des relais](#Rcuprationetchoixdesrelais)
|
* 7.1.1. [7.1.1. Récupération et choix des relais](#Rcuprationetchoixdesrelais)
|
||||||
* 7.1.2. [7.1.2. Envoi du message de type `MessageConnect` à chaque relais](#EnvoidumessagedetypeMessageConnectchaquerelais)
|
* 7.1.2. [7.1.2. Envoi du message de type `MessageConnect` à chaque relais](#EnvoidumessagedetypeMessageConnectchaquerelais)
|
||||||
* 7.2. [7.2. Envoi de `RequestPcd` sur les relais via les messages de type `Message`](#EnvoideRequestPcdsurlesrelaisvialesmessagesdetypeMessage)
|
* 7.2. [7.2. Envoi de `RequestPcd` sur les relais via les messages de type `Message`](#EnvoideRequestPcdsurlesrelaisvialesmessagesdetypeMessage)
|
||||||
* 7.3. [7.3. Envoi de `RequestPrd` sur les relais via les messages de type `Message`](#EnvoideRequestPrdsurlesrelaisvialesmessagesdetypeMessage)
|
* 7.3. [7.3. Envoi de `RequestPrd` sur les relais via les messages de type `Message`](#EnvoideRequestPrdsurlesrelaisvialesmessagesdetypeMessage)
|
||||||
* 7.4. [7.4. Traitement des messages de type `Message` par les clients](#TraitementdesmessagesdetypeMessageparlesclients)
|
* 7.4. [7.4. Traitement des messages de type `Message` par les clients](#TraitementdesmessagesdetypeMessageparlesclients)
|
||||||
* 8. [8. Traitements par les relais](#Traitementsparlesrelais)
|
* 8. [8. Traitements par les relais](#Traitementsparlesrelais)
|
||||||
* 8.1. [8.1. Traitement des messages de type `MessageConnect` par les relais](#TraitementdesmessagesdetypeMessageConnectparlesrelais)
|
* 8.1. [8.1. Traitement des messages de type `MessageConnect` par les relais](#TraitementdesmessagesdetypeMessageConnectparlesrelais)
|
||||||
* 8.2. [8.2. Connexion au réseau de relais via les messages de type `MessageConnect` par les relais](#ConnexionaurseauderelaisvialesmessagesdetypeMessageConnectparlesrelais)
|
* 8.2. [8.2. Connexion au réseau de relais via les messages de type `MessageConnect` par les relais](#ConnexionaurseauderelaisvialesmessagesdetypeMessageConnectparlesrelais)
|
||||||
* 9. [9. 9. Traitement des messages de type `Message` par les relais](#TraitementdesmessagesdetypeMessageparlesrelais)
|
* 9. [9. 9. Traitement des messages de type `Message` par les relais](#TraitementdesmessagesdetypeMessageparlesrelais)
|
||||||
* 9.1. [9.1. Broadcast des messages de type `Message` vers les relais](#BroadcastdesmessagesdetypeMessageverslesrelais)
|
* 9.1. [9.1. Broadcast des messages de type `Message` vers les relais](#BroadcastdesmessagesdetypeMessageverslesrelais)
|
||||||
* 9.2. [9.2. Broadcast des messages de type `Message` vers les clients connectés](#BroadcastdesmessagesdetypeMessageverslesclientsconnects)
|
* 9.2. [9.2. Broadcast des messages de type `Message` vers les clients connectés](#BroadcastdesmessagesdetypeMessageverslesclientsconnects)
|
||||||
* 10. [10. Connexions aux réseaux de noeuds de bitcoin de réseaux side chain ou mainnet](#Connexionsauxrseauxdenoeudsdebitcoinderseauxsidechainoumainnet)
|
* 10. [10. Connexions aux réseaux de noeuds de bitcoin de réseaux side chain ou mainnet](#Connexionsauxrseauxdenoeudsdebitcoinderseauxsidechainoumainnet)
|
||||||
* 10.1. [10.1. Protocole de Découverte des Pairs](#ProtocoledeDcouvertedesPairs)
|
* 10.1. [10.1. Protocole de Découverte des Pairs](#ProtocoledeDcouvertedesPairs)
|
||||||
* 10.2. [10.2. Protocole de Transmission des Transactions](#ProtocoledeTransmissiondesTransactions)
|
* 10.2. [10.2. Protocole de Transmission des Transactions](#ProtocoledeTransmissiondesTransactions)
|
||||||
* 10.3. [10.3. Protocole de Partage des Blocs](#ProtocoledePartagedesBlocs)
|
* 10.3. [10.3. Protocole de Partage des Blocs](#ProtocoledePartagedesBlocs)
|
||||||
* 10.4. [10.4. Validation et relais](#Validationetrelais)
|
* 10.4. [10.4. Validation et relais](#Validationetrelais)
|
||||||
* 10.5. [10.5. Gestion des Forks](#GestiondesForks)
|
* 10.5. [10.5. Gestion des Forks](#GestiondesForks)
|
||||||
* 10.6. [10.6. Connexion au réseau de nœuds de side chain](#Connexionaurseaudenudsdesidechain)
|
* 10.6. [10.6. Connexion au réseau de nœuds de side chain](#Connexionaurseaudenudsdesidechain)
|
||||||
* 10.6.1. [10.6.1. Clients](#Clients)
|
* 10.6.1. [10.6.1. Clients](#Clients)
|
||||||
* 10.6.2. [10.6.2. Relais](#Relais-1)
|
* 10.6.2. [10.6.2. Relais](#Relais-1)
|
||||||
* 10.7. [10.7. Connexion au réseau de nœuds de layer 1](#Connexionaurseaudenudsdelayer1)
|
* 10.7. [10.7. Connexion au réseau de nœuds de layer 1](#Connexionaurseaudenudsdelayer1)
|
||||||
* 10.8. [10.8. Horodatage et ancrage des `RequestPrd` via les transactions Silent Payment (SP)](#HorodatageetancragedesRequestPrdvialestransactionsSilentPaymentSP)
|
* 10.8. [10.8. Horodatage et ancrage des `RequestPrd` via les transactions Silent Payment (SP)](#HorodatageetancragedesRequestPrdvialestransactionsSilentPaymentSP)
|
||||||
* 11. [## 11. Transactions mainnet Bitcoin](#11.TransactionsmainnetBitcoin)
|
* 11. [## 11. Transactions mainnet Bitcoin](#11.TransactionsmainnetBitcoin)
|
||||||
* 11.1. [11.1. Horodatage et ancrage des blocs de la side chain sur Bitcoin](#HorodatageetancragedesblocsdelasidechainsurBitcoin)
|
* 11.1. [11.1. Horodatage et ancrage des blocs de la side chain sur Bitcoin](#HorodatageetancragedesblocsdelasidechainsurBitcoin)
|
||||||
* 11.2. [11.2. Remboursement des frais d'horodatage et ancrage des blocs de la side chain sur Bitcoin](#RemboursementdesfraisdhorodatageetancragedesblocsdelasidechainsurBitcoin)
|
* 11.2. [11.2. Remboursement des frais d'horodatage et ancrage des blocs de la side chain sur Bitcoin](#RemboursementdesfraisdhorodatageetancragedesblocsdelasidechainsurBitcoin)
|
||||||
* 12. [Exemples de Code](#ExemplesdeCode)
|
* 12. [Exemples de Code](#ExemplesdeCode)
|
||||||
* 13. [Todo](#Todo)
|
* 13. [Todo](#Todo)
|
||||||
|
|
||||||
|
@ -3,37 +3,36 @@
|
|||||||
* 2. [Portée](#Porte)
|
* 2. [Portée](#Porte)
|
||||||
* 3. [3. Documents de référence](#Documentsderfrence)
|
* 3. [3. Documents de référence](#Documentsderfrence)
|
||||||
* 4. [Commun aux `RequestPcd` et RequestPrd](#CommunauxRequestPcdetRequestPrd)
|
* 4. [Commun aux `RequestPcd` et RequestPrd](#CommunauxRequestPcdetRequestPrd)
|
||||||
* 4.1. [Création et envoi](#Crationetenvoi)
|
* 4.1. [Création et envoi](#Crationetenvoi)
|
||||||
* 4.2. [Réception](#Rception)
|
* 4.2. [Réception](#Rception)
|
||||||
* 5. [Fonction des RequestPcd](#FonctiondesRequestPcd)
|
* 5. [Fonction des RequestPcd](#FonctiondesRequestPcd)
|
||||||
* 5.1. [Création et envoi](#Crationetenvoi-1)
|
* 5.1. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 5.2. [Réception](#Rception-1)
|
* 5.2. [Réception](#Rception-1)
|
||||||
* 6. [Fonction des RequestPrd](#FonctiondesRequestPrd)
|
* 6. [Fonction des RequestPrd](#FonctiondesRequestPrd)
|
||||||
* 6.1. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles)
|
* 6.1. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles)
|
||||||
* 6.2. [Fonction des`transaction SP` associées aux RequestPrd](#FonctiondestransactionssilentpaymentSPassociesauxRequestPrd)
|
* 6.2. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 6.3. [Création et envoi](#Crationetenvoi-1)
|
* 6.3. [Réception](#Rception-1)
|
||||||
* 6.4. [Réception](#Rception-1)
|
|
||||||
* 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd)
|
* 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd)
|
||||||
* 7.1. [Création et envoi](#Crationetenvoi-1)
|
* 7.1. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 7.2. [Réception](#Rception-1)
|
* 7.2. [Réception](#Rception-1)
|
||||||
* 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages)
|
* 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages)
|
||||||
* 8.1. [Création et envoi](#Crationetenvoi-1)
|
* 8.1. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 8.2. [Réception](#Rception-1)
|
* 8.2. [Réception](#Rception-1)
|
||||||
* 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd)
|
* 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd)
|
||||||
* 9.1. [Création et envoi](#Crationetenvoi-1)
|
* 9.1. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 9.2. [Réception](#Rception-1)
|
* 9.2. [Réception](#Rception-1)
|
||||||
* 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception)
|
* 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception)
|
||||||
* 10.1. [Création et envoi](#Crationetenvoi-1)
|
* 10.1. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 10.2. [Réception](#Rception-1)
|
* 10.2. [Réception](#Rception-1)
|
||||||
* 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande)
|
* 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande)
|
||||||
* 11.1. [Création et envoi](#Crationetenvoi-1)
|
* 11.1. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 11.2. [Réception](#Rception-1)
|
* 11.2. [Réception](#Rception-1)
|
||||||
* 12. [RequestPrdKeyHelloBakcup](#RequestPrdKeyHelloBakcup)
|
* 12. [RequestPrdKeyHelloBakcup](#RequestPrdKeyHelloBakcup)
|
||||||
* 12.1. [Création et envoi](#Crationetenvoi-1)
|
* 12.1. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 12.2. [Réception](#Rception-1)
|
* 12.2. [Réception](#Rception-1)
|
||||||
* 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits)
|
* 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits)
|
||||||
* 13.1. [Création et envoi](#Crationetenvoi-1)
|
* 13.1. [Création et envoi](#Crationetenvoi-1)
|
||||||
* 13.2. [Réception](#Rception-1)
|
* 13.2. [Réception](#Rception-1)
|
||||||
* 14. [Exemples de Code](#ExemplesdeCode)
|
* 14. [Exemples de Code](#ExemplesdeCode)
|
||||||
* 15. [Todo](#Todo)
|
* 15. [Todo](#Todo)
|
||||||
|
|
||||||
@ -43,21 +42,21 @@
|
|||||||
/vscode-markdown-toc-config -->
|
/vscode-markdown-toc-config -->
|
||||||
<!-- /vscode-markdown-toc --># `RequestPrd` et `RequestPcd` - Specs
|
<!-- /vscode-markdown-toc --># `RequestPrd` et `RequestPcd` - Specs
|
||||||
|
|
||||||
## 1. <a name='Objectif'></a>Objectif
|
## 1. <a name='Objectif'></a>Objectif
|
||||||
|
|
||||||
Le but de cette section est d'introduire les Portable Contract Document (`RequestPcd`) et Portable Request Document (`RequestPrd`) comme éléments fondamentaux du système 4NK. Ces documents jouent un rôle crucial dans la sécurisation des échanges de données et la gestion des identités numériques au sein d'un réseau décentralisé. Ils permettent de définir des contrats numériques, de gérer les permissions d'accès, et de faciliter les communications et les opéraations sécurisées entre les différents acteurs du réseau.
|
Le but de cette section est d'introduire les Portable Contract Document (`RequestPcd`) et Portable Request Document (`RequestPrd`) comme éléments fondamentaux du système 4NK. Ces documents jouent un rôle crucial dans la sécurisation des échanges de données et la gestion des identités numériques au sein d'un réseau décentralisé. Ils permettent de définir des contrats numériques, de gérer les permissions d'accès, et de faciliter les communications et les opéraations sécurisées entre les différents acteurs du réseau.
|
||||||
|
|
||||||
## 2. <a name='Porte'></a>Portée
|
## 2. <a name='Porte'></a>Portée
|
||||||
|
|
||||||
La spécification couvre la conception, le développement, et l'application pratique des `RequestPcd` et `RequestPrd`.Elle vise à expliquer leur fonctionnement, leur structure, et la manière dont ils contribuent à l'écosystème 4NK en offrant une méthode sécurisée et efficace pour le partage d'informations et la validation des transactions. Les `RequestPcd` et `RequestPrd` encapsulent les données contractuelles et les requêtes dans un format standardisé, assurant l'intégrité, la confidentialité, l'authenticité et la validation des informations échangées.
|
La spécification couvre la conception, le développement, et l'application pratique des `RequestPcd` et `RequestPrd`.Elle vise à expliquer leur fonctionnement, leur structure, et la manière dont ils contribuent à l'écosystème 4NK en offrant une méthode sécurisée et efficace pour le partage d'informations et la validation des transactions. Les `RequestPcd` et `RequestPrd` encapsulent les données contractuelles et les requêtes dans un format standardisé, assurant l'intégrité, la confidentialité, l'authenticité et la validation des informations échangées.
|
||||||
|
|
||||||
## 3. <a name='Documentsderfrence'></a>3. Documents de référence
|
## 3. <a name='Documentsderfrence'></a>3. Documents de référence
|
||||||
|
|
||||||
Voir [Doc_references.md](Doc_references.md).
|
Voir [Doc_references.md](Doc_references.md).
|
||||||
|
|
||||||
## 4. <a name='CommunauxRequestPcdetRequestPrd'></a>Commun aux `RequestPcd` et RequestPrd
|
## 4. <a name='CommunauxRequestPcdetRequestPrd'></a>Commun aux `RequestPcd` et RequestPrd
|
||||||
|
|
||||||
### 4.1. <a name='Crationetenvoi'></a>Création et envoi
|
### 4.1. <a name='Crationetenvoi'></a>Création et envoi
|
||||||
|
|
||||||
Les `RequestPcd` et les `RequestPrd` sont envoyés sous forme de `message` (JSON) depuis les websockets des relais.
|
Les `RequestPcd` et les `RequestPrd` sont envoyés sous forme de `message` (JSON) depuis les websockets des relais.
|
||||||
|
|
||||||
@ -65,7 +64,7 @@ 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).
|
**Création du message et envoi**: voir [Message-SP-Specs.md](Message-SP-Specs.md).
|
||||||
|
|
||||||
### 4.2. <a name='Rception'></a>Réception
|
### 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.
|
Les `RequestPcd` et les `RequestPrd` sont reçus sous forme de `message` (JSON) depuis les websockets des relais.
|
||||||
|
|
||||||
@ -83,13 +82,13 @@ En cas de `RequestPcd` ou `RequestPrd` en relation via `RequestPcd_reference_has
|
|||||||
|
|
||||||
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é.
|
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é.
|
||||||
|
|
||||||
## 5. <a name='FonctiondesRequestPcd'></a>Fonction des RequestPcd
|
## 5. <a name='FonctiondesRequestPcd'></a>Fonction des RequestPcd
|
||||||
|
|
||||||
Les Portable Contract Documents ( RequestPcd) sont des documents JSON qui encapsulent les listes versionnées d'`Item` dont les attributs sont chiffrés soit en public, soit en confidentiel par rôles soit en privé (cf. [Specs-Security.md](Specs-Security.md)).
|
Les Portable Contract Documents ( RequestPcd) sont des documents JSON qui encapsulent les listes versionnées d'`Item` dont les attributs sont chiffrés soit en public, soit en confidentiel par rôles soit en privé (cf. [Specs-Security.md](Specs-Security.md)).
|
||||||
|
|
||||||
Les `Item` ainsi échangés via les `RequestPcd` sont vérifiés par les `RequestPrdResponse` afin de vérifier les validations de ces données et leurs conformités avec les `ItemProcess` et les `members` concernés.
|
Les `Item` ainsi échangés via les `RequestPcd` sont vérifiés par les `RequestPrdResponse` afin de vérifier les validations de ces données et leurs conformités avec les `ItemProcess` et les `members` concernés.
|
||||||
|
|
||||||
### 5.1. <a name='Crationetenvoi-1'></a>Création et envoi
|
### 5.1. <a name='Crationetenvoi-1'></a>Création et envoi
|
||||||
|
|
||||||
La création d'un `RequestPcd` suit plusieurs étapes :
|
La création d'un `RequestPcd` suit plusieurs étapes :
|
||||||
|
|
||||||
@ -99,7 +98,7 @@ La création d'un `RequestPcd` suit plusieurs étapes :
|
|||||||
4. **Chiffrement du RequestPcd**: Chiffrement du `RequestPcd` avec la clé `ProcessKey` du `ItemProcess` concerné.
|
4. **Chiffrement du RequestPcd**: Chiffrement du `RequestPcd` avec la clé `ProcessKey` du `ItemProcess` concerné.
|
||||||
5. Traitements communs aux `RequestPcd` et RequestPrd
|
5. Traitements communs aux `RequestPcd` et RequestPrd
|
||||||
|
|
||||||
### 5.2. <a name='Rception-1'></a>Réception
|
### 5.2. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
La réception d'un `RequestPcd` suit plusieurs étapes :
|
La réception d'un `RequestPcd` suit plusieurs étapes :
|
||||||
|
|
||||||
@ -110,7 +109,7 @@ 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`
|
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.
|
6. Mise à jour du cache pour les traitement des RequestPrd.
|
||||||
|
|
||||||
## 6. <a name='FonctiondesRequestPrd'></a>Fonction des RequestPrd
|
## 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.
|
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.
|
||||||
|
|
||||||
@ -118,7 +117,7 @@ Les clés de chiffrement des attributs confidentiels par rôles des `Item` des `
|
|||||||
|
|
||||||
Les `RequestPrd` sont de plusieurs types tels que `RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, etc.: Variations de `RequestPrd` pour différentes actions, telles que l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
|
Les `RequestPrd` sont de plusieurs types tels que `RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, etc.: Variations de `RequestPrd` pour différentes actions, telles que l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
|
||||||
|
|
||||||
### 6.1. <a name='Fonctionnalitsoptionnelles'></a>Fonctionnalités optionnelles
|
### 6.1. <a name='Fonctionnalitsoptionnelles'></a>Fonctionnalités optionnelles
|
||||||
|
|
||||||
L'attribut `sig_value` permet de donner une valeur aux signatures. Les valeurs des signatures sont définies par rôles dans les `ItemProcess` avec des valeurs valant pour `OK` ou `KO` pour `none` pour les validations des `RequestPrd`.
|
L'attribut `sig_value` permet de donner une valeur aux signatures. Les valeurs des signatures sont définies par rôles dans les `ItemProcess` avec des valeurs valant pour `OK` ou `KO` pour `none` pour les validations des `RequestPrd`.
|
||||||
|
|
||||||
@ -143,7 +142,7 @@ Les adresses et les roles sont précisés en cas d'utilisateurs ayant plusieurs
|
|||||||
|
|
||||||
Tous les échanges sont complétés de l'empreinte du device de l'emetteur envoyée de façon confidentielle via `device_footprint_enc_by_shared_secret`.
|
Tous les échanges sont complétés de l'empreinte du device de l'emetteur envoyée de façon confidentielle via `device_footprint_enc_by_shared_secret`.
|
||||||
|
|
||||||
### 6.3. <a name='Crationetenvoi-1'></a>Création et envoi
|
### 6.2. <a name='Crationetenvoi-1'></a>Création et envoi
|
||||||
|
|
||||||
La création d'un `RequestPrd` suit plusieurs étapes :
|
La création d'un `RequestPrd` suit plusieurs étapes :
|
||||||
|
|
||||||
@ -159,7 +158,7 @@ La création d'un `RequestPrd` suit plusieurs étapes :
|
|||||||
|
|
||||||
Voir [Silent-Payment-Specs.md](Silent-Payment-Specs.md).
|
Voir [Silent-Payment-Specs.md](Silent-Payment-Specs.md).
|
||||||
|
|
||||||
### 6.4. <a name='Rception-1'></a>Réception
|
### 6.3. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
La réception d'un `RequestPcd` suit plusieurs étapes :
|
La réception d'un `RequestPcd` suit plusieurs étapes :
|
||||||
|
|
||||||
@ -174,15 +173,15 @@ La réception d'un `RequestPcd` suit plusieurs étapes :
|
|||||||
9. Validation des conditions définies dans le `ItemProcess` pour ce d'`Item` avec le `Role` correspondant dans le `ItemProcess` et dans ce rôles les conditions pour ce type de `RequestPrd` (dans l'attribut `request_prd_type`) telles que définies dans [Specs-Process-Roles-Specs.md](Specs-Process-Roles-Specs.md).
|
9. Validation des conditions définies dans le `ItemProcess` pour ce d'`Item` avec le `Role` correspondant dans le `ItemProcess` et dans ce rôles les conditions pour ce type de `RequestPrd` (dans l'attribut `request_prd_type`) telles que définies dans [Specs-Process-Roles-Specs.md](Specs-Process-Roles-Specs.md).
|
||||||
10. Traitements spécifiques au type de RequestPrd.
|
10. Traitements spécifiques au type de RequestPrd.
|
||||||
|
|
||||||
## 7. <a name='RequestPrdList-DemandedeListesRequestPcd'></a>RequestPrdList - Demande de Listes ( RequestPcd)
|
## 7. <a name='RequestPrdList-DemandedeListesRequestPcd'></a>RequestPrdList - Demande de Listes ( RequestPcd)
|
||||||
|
|
||||||
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.
|
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 et envoi
|
||||||
|
|
||||||
Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdList` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdList` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
||||||
|
|
||||||
### 7.2. <a name='Rception-1'></a>Réception
|
### 7.2. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
La réception d'un `RequestPrdList` suit plusieurs étapes :
|
La réception d'un `RequestPrdList` suit plusieurs étapes :
|
||||||
|
|
||||||
@ -195,7 +194,7 @@ La réception d'un `RequestPrdList` suit plusieurs étapes :
|
|||||||
5.2. le hash du `RequestPrdList` reçu dans l'attribut `request_prd_origin_hash`
|
5.2. le hash du `RequestPrdList` reçu dans l'attribut `request_prd_origin_hash`
|
||||||
6. Mise à jour du cache avec les nouveaux `RequestPcd` et `RequestPrdResponse` et `RequestPrdConfirm` envoyés.
|
6. Mise à jour du cache avec les nouveaux `RequestPcd` et `RequestPrdResponse` et `RequestPrdConfirm` envoyés.
|
||||||
|
|
||||||
## 8. <a name='RequestPrdMessage-EnvoideMessages'></a>RequestPrdMessage - Envoi de Messages
|
## 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.
|
Le `RequestPrdMessage` facilite l'envoi de messages sécurisés entre utilisateurs ou entre utilisateurs et processus/contrats.
|
||||||
|
|
||||||
@ -205,11 +204,11 @@ 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`.
|
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 et envoi
|
||||||
|
|
||||||
Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdMessage` incluant l'envoi de la`transaction SP` via un autre `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdMessage` incluant l'envoi de la`transaction SP` via un autre `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
||||||
|
|
||||||
### 8.2. <a name='Rception-1'></a>Réception
|
### 8.2. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
La réception d'un `RequestPrdMessage` suit plusieurs étapes :
|
La réception d'un `RequestPrdMessage` suit plusieurs étapes :
|
||||||
|
|
||||||
@ -219,7 +218,7 @@ La réception d'un `RequestPrdMessage` suit plusieurs étapes :
|
|||||||
4. Le cas échéant : création et envoi à l'émetteur du `RequestPrdMessage` d'un `RequestPrdMessage` avec :
|
4. Le cas échéant : création et envoi à l'émetteur du `RequestPrdMessage` d'un `RequestPrdMessage` avec :
|
||||||
5.1. le hash du `RequestPrdMessage` reçu dans l'attribut `request_prd_origin_hash`
|
5.1. le hash du `RequestPrdMessage` reçu dans l'attribut `request_prd_origin_hash`
|
||||||
|
|
||||||
## 9. <a name='RequestPrdUpdate-MisesJourdeRequestPcd'></a>RequestPrdUpdate - Mises à Jour de RequestPcd
|
## 9. <a name='RequestPrdUpdate-MisesJourdeRequestPcd'></a>RequestPrdUpdate - Mises à Jour de RequestPcd
|
||||||
|
|
||||||
`RequestPrdUpdate` est conçu pour demander des mises à jour des listes via des nouvelles versions de `RequestPcd`.
|
`RequestPrdUpdate` est conçu pour demander des mises à jour des listes via des nouvelles versions de `RequestPcd`.
|
||||||
|
|
||||||
@ -231,13 +230,13 @@ 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.
|
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 et envoi
|
||||||
|
|
||||||
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdUpdate` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdUpdate` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
||||||
|
|
||||||
### 9.2. <a name='Rception-1'></a>Réception
|
### 9.2. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
## 10. <a name='RequestPrdConfirm-ConfirmationdeRception'></a>RequestPrdConfirm - Confirmation de Réception
|
## 10. <a name='RequestPrdConfirm-ConfirmationdeRception'></a>RequestPrdConfirm - Confirmation de Réception
|
||||||
|
|
||||||
Le `RequestPrdConfirm` est utilisé pour confirmer la réception et le traitement de demandes ou de transactions, jouant un rôle crucial dans la validation des actions au sein du réseau.
|
Le `RequestPrdConfirm` est utilisé pour confirmer la réception et le traitement de demandes ou de transactions, jouant un rôle crucial dans la validation des actions au sein du réseau.
|
||||||
|
|
||||||
@ -247,13 +246,13 @@ Les `RequestPrdList`, `RequestPrdUpdate`, `RequestPrdMessage`, `RequestPrdRespon
|
|||||||
|
|
||||||
Crucial pour les processus qui nécessitent une confirmation explicite de réception ou d'acceptation, comme la finalisation d'une transaction ou la validation d'un changement d'état dans un contrat.
|
Crucial pour les processus qui nécessitent une confirmation explicite de réception ou d'acceptation, comme la finalisation d'une transaction ou la validation d'un changement d'état dans un contrat.
|
||||||
|
|
||||||
### 10.1. <a name='Crationetenvoi-1'></a>Création et envoi
|
### 10.1. <a name='Crationetenvoi-1'></a>Création et envoi
|
||||||
|
|
||||||
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdConfirm` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdConfirm` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
||||||
|
|
||||||
### 10.2. <a name='Rception-1'></a>Réception
|
### 10.2. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
## 11. <a name='RequestPrdResponse-RpondreuneDemande'></a>RequestPrdResponse - Répondre à une Demande
|
## 11. <a name='RequestPrdResponse-RpondreuneDemande'></a>RequestPrdResponse - Répondre à une Demande
|
||||||
|
|
||||||
Le `RequestPrdResponse` permet de répondre spécifiquement à des `RequestPrd` reçus, facilitant un échange interactif d'informations ou de décisions entre les parties.
|
Le `RequestPrdResponse` permet de répondre spécifiquement à des `RequestPrd` reçus, facilitant un échange interactif d'informations ou de décisions entre les parties.
|
||||||
|
|
||||||
@ -263,37 +262,37 @@ 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.
|
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 et envoi
|
||||||
|
|
||||||
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdResponse` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdResponse` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
||||||
|
|
||||||
### 11.2. <a name='Rception-1'></a>Réception
|
### 11.2. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
## 12. <a name='RequestPrdKeyHelloBakcup'></a>RequestPrdKeyHelloBakcup
|
## 12. <a name='RequestPrdKeyHelloBakcup'></a>RequestPrdKeyHelloBakcup
|
||||||
|
|
||||||
Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` .
|
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 et envoi
|
||||||
|
|
||||||
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdRRequestPrdKeyHelloBakcupesponse` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdRRequestPrdKeyHelloBakcupesponse` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
||||||
|
|
||||||
### 12.2. <a name='Rception-1'></a>Réception
|
### 12.2. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
## 13. <a name='RequestPrdKeyHello-changedeClsetdIdentits'></a>RequestPrdKeyHello - Échange de Clés et d'Identités
|
## 13. <a name='RequestPrdKeyHello-changedeClsetdIdentits'></a>RequestPrdKeyHello - Échange de Clés et d'Identités
|
||||||
|
|
||||||
RequestPrdKeyHello est conçu pour initier ou répondre à des demandes d'échange de clés ou d'informations d'identité, essentiel pour la gestion sécurisée des accès et des identités au sein du réseau.
|
RequestPrdKeyHello est conçu pour initier ou répondre à des demandes d'échange de clés ou d'informations d'identité, essentiel pour la gestion sécurisée des accès et des identités au sein du réseau.
|
||||||
|
|
||||||
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.
|
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 et envoi
|
||||||
|
|
||||||
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello` incluant l'envoi de la`transaction SP` via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
|
||||||
|
|
||||||
### 13.2. <a name='Rception-1'></a>Réception
|
### 13.2. <a name='Rception-1'></a>Réception
|
||||||
|
|
||||||
## 14. <a name='ExemplesdeCode'></a>Exemples de Code
|
## 14. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||||
|
|
||||||
## 15. <a name='Todo'></a>Todo
|
## 15. <a name='Todo'></a>Todo
|
||||||
|
|
||||||
* [ ] Extraits de code illustrant l'utilisation des `RequestPcd` et `RequestPrd` dans des scénarios réels.
|
* [ ] Extraits de code illustrant l'utilisation des `RequestPcd` et `RequestPrd` dans des scénarios réels.
|
||||||
* [ ] Diagrammes de séquences
|
* [ ] Diagrammes de séquences
|
||||||
|
@ -4,23 +4,23 @@
|
|||||||
* 3. [3. Documents de référence](#Documentsderfrence)
|
* 3. [3. Documents de référence](#Documentsderfrence)
|
||||||
* 4. [Rôles et Sous-Rôles](#RlesetSous-Rles)
|
* 4. [Rôles et Sous-Rôles](#RlesetSous-Rles)
|
||||||
* 5. [Précisions sur les rôles](#Prcisionssurlesrles)
|
* 5. [Précisions sur les rôles](#Prcisionssurlesrles)
|
||||||
* 5.1. [RolesGroup - Gestion des Rôles](#RolesGroup-GestiondesRles)
|
* 5.1. [RolesGroup - Gestion des Rôles](#RolesGroup-GestiondesRles)
|
||||||
* 5.1.1. [Composition et Fonction](#CompositionetFonction)
|
* 5.1.1. [Composition et Fonction](#CompositionetFonction)
|
||||||
* 5.1.2. [Cas d'utilisation](#Casdutilisation)
|
* 5.1.2. [Cas d'utilisation](#Casdutilisation)
|
||||||
* 5.2. [TransactionModeDistribution et TransactionModeDirect](#TransactionModeDistributionetTransactionModeDirect)
|
* 5.2. [TransactionModeDistribution et TransactionModeDirect](#TransactionModeDistributionetTransactionModeDirect)
|
||||||
* 5.3. [TransactionModeDistribution](#TransactionModeDistribution)
|
* 5.3. [TransactionModeDistribution](#TransactionModeDistribution)
|
||||||
* 5.3.1. [TransactionModeDirect](#TransactionModeDirect)
|
* 5.3.1. [TransactionModeDirect](#TransactionModeDirect)
|
||||||
* 5.4. [Cas d'utilisation](#Casdutilisation-1)
|
* 5.4. [Cas d'utilisation](#Casdutilisation-1)
|
||||||
* 5.4.1. [Composition et Fonction](#CompositionetFonction-1)
|
* 5.4.1. [Composition et Fonction](#CompositionetFonction-1)
|
||||||
* 5.4.2. [Cas d'utilisation](#Casdutilisation-1)
|
* 5.4.2. [Cas d'utilisation](#Casdutilisation-1)
|
||||||
* 5.5. [Role - Définition et Gestion des Rôles Spécifiques](#Role-DfinitionetGestiondesRlesSpcifiques)
|
* 5.5. [Role - Définition et Gestion des Rôles Spécifiques](#Role-DfinitionetGestiondesRlesSpcifiques)
|
||||||
* 5.5.1. [Composition et Fonction](#CompositionetFonction-1)
|
* 5.5.1. [Composition et Fonction](#CompositionetFonction-1)
|
||||||
* 5.5.2. [Cas d'utilisation](#Casdutilisation-1)
|
* 5.5.2. [Cas d'utilisation](#Casdutilisation-1)
|
||||||
* 6. [Gestion des Engagements et Transactions](#GestiondesEngagementsetTransactions)
|
* 6. [Gestion des Engagements et Transactions](#GestiondesEngagementsetTransactions)
|
||||||
* 6.1. [RoleCommitment](#RoleCommitment)
|
* 6.1. [RoleCommitment](#RoleCommitment)
|
||||||
* 6.2. [RoleDeposit et RolePayment](#RoleDepositetRolePayment)
|
* 6.2. [RoleDeposit et RolePayment](#RoleDepositetRolePayment)
|
||||||
* 7. [Sécurisation des Communications](#ScurisationdesCommunications)
|
* 7. [Sécurisation des Communications](#ScurisationdesCommunications)
|
||||||
* 7.1. [Composition et Utilisation](#CompositionetUtilisation)
|
* 7.1. [Composition et Utilisation](#CompositionetUtilisation)
|
||||||
* 8. [Intégration et Orchestration des Processus](#IntgrationetOrchestrationdesProcessus)
|
* 8. [Intégration et Orchestration des Processus](#IntgrationetOrchestrationdesProcessus)
|
||||||
* 9. [Exemples de Code](#ExemplesdeCode)
|
* 9. [Exemples de Code](#ExemplesdeCode)
|
||||||
* 10. [Todo](#Todo)
|
* 10. [Todo](#Todo)
|
||||||
|
@ -2,7 +2,11 @@
|
|||||||
* 1. [Objectif](#Objectif)
|
* 1. [Objectif](#Objectif)
|
||||||
* 2. [Portée](#Porte)
|
* 2. [Portée](#Porte)
|
||||||
* 3. [Documents de référence](#Documentsderfrence)
|
* 3. [Documents de référence](#Documentsderfrence)
|
||||||
* 4. [Structure des outputs](#Structuredesoutputs)
|
* 4. [Fontion](#Fontion)
|
||||||
|
* 5. [Structure des outputs](#Structuredesoutputs)
|
||||||
|
* 6. [Envoi de la transaction SP](#EnvoidelatransactionSP)
|
||||||
|
* 6.1. [Dans un `RequestPrdMessage`](#DansunRequestPrdMessage)
|
||||||
|
* 6.2. [Dans un `Message` du `RequestPrdMessage`](#DansunMessageduRequestPrdMessage)
|
||||||
|
|
||||||
<!-- vscode-markdown-toc-config
|
<!-- vscode-markdown-toc-config
|
||||||
numbering=true
|
numbering=true
|
||||||
@ -17,7 +21,7 @@
|
|||||||
|
|
||||||
Voir [Doc_references.md](Doc_references.md).
|
Voir [Doc_references.md](Doc_references.md).
|
||||||
|
|
||||||
## 4. <a name='Structuredesoutputs'></a> Fontion
|
## 4. <a name='Fontion'></a> Fontion
|
||||||
|
|
||||||
La transaction SP à plusieurs objectifs :
|
La transaction SP à plusieurs objectifs :
|
||||||
|
|
||||||
@ -34,7 +38,7 @@ Les `RequestPrdConfirm` qui sont des accusés automatiques de réception des `Re
|
|||||||
|
|
||||||
Il y a une `transactions SP` pour tous les types de `RequestPrd` sauf pour les `RequestPrdKeyBackup` et les `RequestPrdKeyMessage` ayant l'attribut `raw_transaction_list` non vide.
|
Il y a une `transactions SP` pour tous les types de `RequestPrd` sauf pour les `RequestPrdKeyBackup` et les `RequestPrdKeyMessage` ayant l'attribut `raw_transaction_list` non vide.
|
||||||
|
|
||||||
## 4. <a name='Structuredesoutputs'></a> Structure des outputs
|
## 5. <a name='Structuredesoutputs'></a> Structure des outputs
|
||||||
|
|
||||||
Une fois le `RequestPrd` finalisé, une transaction SP est réalisée, dans cette transaction plusieurs hashs sont ajoutés sur un outputs aux index suivants:
|
Une fois le `RequestPrd` finalisé, une transaction SP est réalisée, dans cette transaction plusieurs hashs sont ajoutés sur un outputs aux index suivants:
|
||||||
|
|
||||||
@ -54,19 +58,19 @@ Une fois le `RequestPrd` finalisé, une transaction SP est réalisée, dans cett
|
|||||||
|
|
||||||
Pour des raison de confidentialité, le role associé à l'`item_name` du `RequestPrd` peut définir (option) un salt pour la génération des hashs dans l'attribut `sp_output_salt_enc`.
|
Pour des raison de confidentialité, le role associé à l'`item_name` du `RequestPrd` peut définir (option) un salt pour la génération des hashs dans l'attribut `sp_output_salt_enc`.
|
||||||
|
|
||||||
## 5. Envoi de la transaction SP
|
## 6. <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 :
|
Afin d'améliorer la rélisience du broadcast des transactions, la transaction est envoyée à la fois :
|
||||||
|
|
||||||
1. Dans un `RequestPrdMessage` à un membre du rôle `member` du `ItemProcess` concerné et
|
1. Dans un `RequestPrdMessage` à un membre du rôle `member` du `ItemProcess` concerné et
|
||||||
2. Dans le `Message` du `RequestPrdMessage` sur les relais
|
2. Dans le `Message` du `RequestPrdMessage` sur les relais
|
||||||
|
|
||||||
### Dans un `RequestPrdMessage`
|
### 6.1. <a name='DansunRequestPrdMessage'></a>Dans un `RequestPrdMessage`
|
||||||
|
|
||||||
Dans l'attribut `raw_transaction_list` du `RequestPrdMessage` associé à la transaction SP.
|
Dans l'attribut `raw_transaction_list` du `RequestPrdMessage` associé à la transaction SP.
|
||||||
La transaction sera broadcastée par les noeuds de signet du membre du role `member` du `ItemProcess` concerné qui a reçu ce message, il devra alors avoir un noeud de signet pour le broadcast.
|
La transaction sera broadcastée par les noeuds de signet du membre du role `member` du `ItemProcess` concerné qui a reçu ce message, il devra alors avoir un noeud de signet pour le broadcast.
|
||||||
|
|
||||||
### Dans un `Message` du `RequestPrdMessage`
|
### 6.2. <a name='DansunMessageduRequestPrdMessage'></a>Dans un `Message` du `RequestPrdMessage`
|
||||||
|
|
||||||
Dans l'attribut `raw_transaction_list` du `Message` associé à la transaction SP.
|
Dans l'attribut `raw_transaction_list` du `Message` associé à la transaction SP.
|
||||||
La transaction sera broadcastée par les noeuds de signet des relais.
|
La transaction sera broadcastée par les noeuds de signet des relais.
|
||||||
|
@ -20,11 +20,11 @@
|
|||||||
/vscode-markdown-toc-config -->
|
/vscode-markdown-toc-config -->
|
||||||
<!-- /vscode-markdown-toc --># Specs - Code
|
<!-- /vscode-markdown-toc --># Specs - Code
|
||||||
|
|
||||||
## 1. <a name='Documentsderfrence'></a>Documents de référence
|
## 1. <a name='Documentsderfrence'></a>Documents de référence
|
||||||
|
|
||||||
Voir [Doc_references.md](Doc_references.md).
|
Voir [Doc_references.md](Doc_references.md).
|
||||||
|
|
||||||
## 2. <a name='Gestiondeserreurs'></a>Gestion des erreurs
|
## 2. <a name='Gestiondeserreurs'></a>Gestion des erreurs
|
||||||
|
|
||||||
Les processus doivent continuer malgré des "sous" traitements/threads en échec et les fonctions doivent être `catch` si il y a une possiblité d'interuption.
|
Les processus doivent continuer malgré des "sous" traitements/threads en échec et les fonctions doivent être `catch` si il y a une possiblité d'interuption.
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ Les arrêts des membres dans les `ItemProcess` dans leur ensemble n'entraînent
|
|||||||
|
|
||||||
Les parties prenantes ont tous les moyens organisationnels dans les process, pour procéder au bon redémarrage des services en cas de dégradations et de situations inattendues, avec le versionning des relais et des membres des rôles; ainsi que des conditions contractuelles avec leurs implications opérationnelles et possiblement économiques.
|
Les parties prenantes ont tous les moyens organisationnels dans les process, pour procéder au bon redémarrage des services en cas de dégradations et de situations inattendues, avec le versionning des relais et des membres des rôles; ainsi que des conditions contractuelles avec leurs implications opérationnelles et possiblement économiques.
|
||||||
|
|
||||||
## 3. <a name='Journalisationetmonitoring'></a>Journalisation et monitoring
|
## 3. <a name='Journalisationetmonitoring'></a>Journalisation et monitoring
|
||||||
|
|
||||||
Tous les utilisateurs reçoivent les mêmes flux qu'ils se relaient et se restituent au démarrage, tous les flux ont une empreinte horodatée sur une timechain et peuvent être demandés unitairement entre parties, avec le même niveau de confidentialité par rôles. Les `RequestPcd` sont les listes à jour de l'état de validation de tous les éléments échangés, et les `RequestPrd` sont toutes les signatures échangées sur les flux; en mémoire côté utilisateur, par "session" sur un nœud, pour un `ItemProcess` (possible de segmenter par zones et services).
|
Tous les utilisateurs reçoivent les mêmes flux qu'ils se relaient et se restituent au démarrage, tous les flux ont une empreinte horodatée sur une timechain et peuvent être demandés unitairement entre parties, avec le même niveau de confidentialité par rôles. Les `RequestPcd` sont les listes à jour de l'état de validation de tous les éléments échangés, et les `RequestPrd` sont toutes les signatures échangées sur les flux; en mémoire côté utilisateur, par "session" sur un nœud, pour un `ItemProcess` (possible de segmenter par zones et services).
|
||||||
|
|
||||||
@ -46,27 +46,27 @@ Le monitoring comme la journalisation, ne sont pas possibles et pas pertinents s
|
|||||||
|
|
||||||
La timechain permet de monitorer l'activité générale sur la side chain avec un nombre de jetons échangés (le même nombre à chaque message) et des ancrages critiques sont monitorables sur le mainnet publiquement par n'importe qui (mais non exploitable fonctionnellement). Ainsi seul le bon fonctionnement est monitorable, par tous, facilement, sans métadonnées exploitables pour ce qui est des usages qui restent donc confidentiels.
|
La timechain permet de monitorer l'activité générale sur la side chain avec un nombre de jetons échangés (le même nombre à chaque message) et des ancrages critiques sont monitorables sur le mainnet publiquement par n'importe qui (mais non exploitable fonctionnellement). Ainsi seul le bon fonctionnement est monitorable, par tous, facilement, sans métadonnées exploitables pour ce qui est des usages qui restent donc confidentiels.
|
||||||
|
|
||||||
## 4. <a name='Tests'></a>Tests
|
## 4. <a name='Tests'></a>Tests
|
||||||
|
|
||||||
### 4.1. <a name='Stratgiedetest'></a>Stratégie de test
|
### 4.1. <a name='Stratgiedetest'></a>Stratégie de test
|
||||||
|
|
||||||
À l'issue du développement en ScrumBan, chaque ticket fait l'objet d'une revue de code, et d'un test par un testeur.
|
À l'issue du développement en ScrumBan, chaque ticket fait l'objet d'une revue de code, et d'un test par un testeur.
|
||||||
|
|
||||||
### 4.2. <a name='Planpourlestestsunitaires'></a>Plan pour les tests unitaires
|
### 4.2. <a name='Planpourlestestsunitaires'></a>Plan pour les tests unitaires
|
||||||
|
|
||||||
Les tests unitaires seront ajoutés par un testeur, ainsi toutes les fonctionnalités reçues auront un test unitaire.
|
Les tests unitaires seront ajoutés par un testeur, ainsi toutes les fonctionnalités reçues auront un test unitaire.
|
||||||
|
|
||||||
### 4.3. <a name='Plandintgration'></a>Plan d'intégration
|
### 4.3. <a name='Plandintgration'></a>Plan d'intégration
|
||||||
|
|
||||||
L'intégration se réalise par sprint hebdomadaire.
|
L'intégration se réalise par sprint hebdomadaire.
|
||||||
|
|
||||||
L'ensemble des fonctionnalités livrées dans le sprint doivent être testées dans un parcours d'intégration écrit et testé par un testeur en fin de sprint.
|
L'ensemble des fonctionnalités livrées dans le sprint doivent être testées dans un parcours d'intégration écrit et testé par un testeur en fin de sprint.
|
||||||
|
|
||||||
### 4.4. <a name='Plandecharge'></a>Plan de charge
|
### 4.4. <a name='Plandecharge'></a>Plan de charge
|
||||||
|
|
||||||
Tous les 2 sprints, des tests aux limites sont définis et mis en œuvre par un testeur depuis la simulation des comportements des utilisateurs.
|
Tous les 2 sprints, des tests aux limites sont définis et mis en œuvre par un testeur depuis la simulation des comportements des utilisateurs.
|
||||||
|
|
||||||
## 5. <a name='Outilsetleslibrairiesutiliser'></a>Outils et les librairies à utiliser
|
## 5. <a name='Outilsetleslibrairiesutiliser'></a>Outils et les librairies à utiliser
|
||||||
|
|
||||||
Respect des normes de syntaxe Rust.
|
Respect des normes de syntaxe Rust.
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ Utilisation de Visual Studio (pour le partage de configurations).
|
|||||||
|
|
||||||
* **Librairies de tests** : Cargo test
|
* **Librairies de tests** : Cargo test
|
||||||
|
|
||||||
## 6. <a name='Critresdacceptation'></a>Critères d'acceptation
|
## 6. <a name='Critresdacceptation'></a>Critères d'acceptation
|
||||||
|
|
||||||
Critères de validation pour que le système puisse être considéré comme prêt pour la production :
|
Critères de validation pour que le système puisse être considéré comme prêt pour la production :
|
||||||
|
|
||||||
@ -98,15 +98,15 @@ Critères de validation pour que le système puisse être considéré comme prê
|
|||||||
* Documentation manquante clairement précisée.
|
* Documentation manquante clairement précisée.
|
||||||
* Autres tests manquants clairement précisés.
|
* Autres tests manquants clairement précisés.
|
||||||
|
|
||||||
## 7. <a name='CICD'></a>CI/CD
|
## 7. <a name='CICD'></a>CI/CD
|
||||||
|
|
||||||
GitLab CI : TBD
|
GitLab CI : TBD
|
||||||
|
|
||||||
## 8. <a name='Maintenance'></a>Maintenance
|
## 8. <a name='Maintenance'></a>Maintenance
|
||||||
|
|
||||||
La liste des dépendances doit être maintenue dans le readme des projets, mise à jour à chaque fin de sprint.
|
La liste des dépendances doit être maintenue dans le readme des projets, mise à jour à chaque fin de sprint.
|
||||||
Les tests de fin de sprint doivent intégrer une revue des dernières versions et alertes sur les librairies en dépendance.
|
Les tests de fin de sprint doivent intégrer une revue des dernières versions et alertes sur les librairies en dépendance.
|
||||||
|
|
||||||
## 9. <a name='ExemplesdeCode'></a>Exemples de Code
|
## 9. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||||
|
|
||||||
## 10. <a name='Todo'></a>Todo
|
## 10. <a name='Todo'></a>Todo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user