diff --git a/doc/Auth-Specs.md b/doc/Auth-Specs.md
index d4f6c3e..b3d77d7 100644
--- a/doc/Auth-Specs.md
+++ b/doc/Auth-Specs.md
@@ -25,7 +25,7 @@
## 1. Objectif
-Développer un système de login sécurisé utilisant les clés cryptographiques de Bitcoin et sa timechain (via un réseau Signet personnalisé, appelé "side chain") ainsi qu'un système de relais de messages entre parties prenantes. Le concept de Silent Payment est employé pour authentifier les utilisateurs sans réutilisation d'adresses, tout en utilisant une approche de calcul multipartite (MPC) pour une gestion sécurisée et distribuée des clés. Déployer une interface de login conforme aux [wireframes](https://cryptpad.fr/diagram/#/2/diagram/view/GbkNsP8MEh2oSM5442jC9ONiNZhYZvfeWUVEmiIjXHk).
+Développer un système de login sécurisé utilisant les clés cryptographiques de Bitcoin et sa timechain (via un réseau Signet personnalisé, appelé "side chain") ainsi qu'un système de relais de messages entre parties prenantes. Le concept de Silent Payment est employé pour authentifier les utilisateurs sans réutilisation d'adresses, tout en utilisant une approche de `calcul multipartite (MPC)` pour une gestion sécurisée et distribuée des clés. Déployer une interface de login conforme aux [wireframes](https://cryptpad.fr/diagram/#/2/diagram/view/GbkNsP8MEh2oSM5442jC9ONiNZhYZvfeWUVEmiIjXHk).
## 2. Portée
@@ -55,7 +55,7 @@ Pour cela, les flux de 4NK agissent en "proxy" transparent devant les flux API d
En cas d'oubli de mot de passe, les utilisateurs pourront récupérer leur accès depuis une nouvelle identité (`recover`) après avoir révoqué l'ancienne identité, via un processus sécurisé, impliquant une vérification d'identité et l'échange de secrets chiffrés conformément aux protocoles établis.
-Une image de révocation est générée à la création d'une identité pour pouvoir dépenser un UTXO dit alors de révocation, avec les flux RequestPcd et RequestPrd correspondants.
+Une image de révocation est générée à la création d'une identité pour pouvoir dépenser un UTXO dit alors de révocation, avec les flux `RequestPcd` et `RequestPrd` correspondants.
## 7. Gestion de session basée sur un cache
@@ -138,7 +138,7 @@ Cette clé est d'abord décomposée, avant d'être partiellement distribuée. Vo
2. Une `pre-id Part1EncHash` qui identifie l'utilisateur est générée par le hash (SHA 256) de la `Part1` et du mot de passe de l'utilisateur.
-3. Création d'un `RequestPrdKeyBackup` par membre (1 shard par membre), par RequestPrd :
+3. Création d'un `RequestPrdKeyBackup` par membre (1 shard par membre), par `RequestPrd` :
3.1. Génération d'une clé de chiffrement dite `sp_shared_secret` qui sera transmise dans le Diffie-Hellman de la transaction SP.
@@ -187,9 +187,9 @@ Pour être `onboard` dans un process, c'est-à-dire avoir un rôle, il faut :
###### Mise à jour de la liste des membres
-Pour mettre à jour la liste des membres il faut envoyer un `RequestPrdUpdate` avec une nouvelle version du RequestPcd de la liste des membres, contenant l'objet `ItemMember` complet aux membres du role `member`. Ce RequestPrd devra recevoir des membres du rôle `Member` du process les `RequestPrdResponse` correspondant aux critères de validation du `process`.
+Pour mettre à jour la liste des membres il faut envoyer un `RequestPrdUpdate` avec une nouvelle version du `RequestPcd` de la liste des membres, contenant l'objet `ItemMember` complet aux membres du role `member`. Ce `RequestPrd` devra recevoir des membres du rôle `Member` du process les `RequestPrdResponse` correspondant aux critères de validation du `process`.
-C'est à ce moment-là que l'on transmet toutes les clés privées dans l'objet `ItemMember`, en tant que `metadadata` privée (chiffrée par la clé de dépense du signet) dans un RequestPcd (et les `RequestPrdUpdate` correspondant).
+C'est à ce moment-là que l'on transmet toutes les clés privées dans l'objet `ItemMember`, en tant que `metadadata` privée (chiffrée par la clé de dépense du signet) dans un `RequestPcd` (et les `RequestPrdUpdate` correspondant).
Les adresses SP correspondantes sont aussi transmises en tant que données publiques, ainsi que l'adresse SP de la clé de dépense du login du signet.
@@ -198,7 +198,7 @@ Les metadatas des membres propres au process sont décrits dans le process et do
L'`ItemMember` est décrit dans la spécification [Specs-Datamodel.md](Specs-Datamodel.md).
1. Création d'un `ItemMember` correspondant à l'utilisateur.
-2. Création d'une nouvelle version du RequestPcd avec l'ajout de l'`ItemMember` créé.
+2. Création d'une nouvelle version du `RequestPcd` avec l'ajout de l'`ItemMember` créé.
3. Création de `RequestPrdKeyHello` à destination du membre.
4. Création de `Message` du `RequestPrdKeyHello` à destination du membre.
5. Envoi de la transaction SP du `Message` du `RequestPrdKeyHello` à destination du membre.
@@ -208,14 +208,14 @@ L'`ItemMember` est décrit dans la spécification [Specs-Datamodel.md](Specs-Dat
###### Mise à jour de la liste des process
-Pour mettre à jour la liste des process il faut envoyer un `RequestPrdUpdate` avec une nouvelle version du RequestPcd de la liste des process, contenant l'objet `ItemProcess` complet aux membres du role `process`. Ce RequestPrd devra recevoir des membres du rôle `Process` du process les `RequestPrdResponse` correspondant aux critères de validation du `process`.
+Pour mettre à jour la liste des process il faut envoyer un `RequestPrdUpdate` avec une nouvelle version du `RequestPcd` de la liste des process, contenant l'objet `ItemProcess` complet aux membres du role `process`. Ce `RequestPrd` devra recevoir des membres du rôle `Process` du process les `RequestPrdResponse` correspondant aux critères de validation du `process`.
L'`ItemProcess` est décrit dans la spécification [Specs-Datamodel.md](Specs-Datamodel.md).
Demande d'update de la liste des membres ( RequestPcd) d'un process vers chaque membre du rôle `Member` du process.:
1. Création d'un `ItemProcess` correspondant à l'utilisateur.
-2. Création d'une nouvelle version du RequestPcd avec l'ajout de l'`ItemProcess` créé.
+2. Création d'une nouvelle version du `RequestPcd` avec l'ajout de l'`ItemProcess` créé.
3. Création de `RequestPrdKeyHello` à destination du membre.
4. Création de `Message` du `RequestPrdKeyHello` à destination du membre.
5. Envoi de la transaction SP du `Message` du `RequestPrdKeyHello` à destination du membre.
@@ -236,7 +236,7 @@ Au moment de l'update de l'`ItemMember` il est possible de charger des addresses
Les clés privées associées sont générées lors de l'update d'un membre, à la validation de l'update il est possible de télécharger des images correspondantes (clés + hash du process) dans une interface 2FA.
-Lorsqu'une transaction est reçue sur l'application de 2FA, celle-ci demande de confirmer ou non. Si il y a une confirmation dans l'interface alors une transaction SP est envoyée au dispositif initial, en dépensant l'UTXO reçue et avec les mêmes Hash dans les outputs que la transaction reçue afin que le dispositif initial puisse collecter les RequestPrd concernés.
+Lorsqu'une transaction est reçue sur l'application de 2FA, celle-ci demande de confirmer ou non. Si il y a une confirmation dans l'interface alors une transaction SP est envoyée au dispositif initial, en dépensant l'UTXO reçue et avec les mêmes Hash dans les outputs que la transaction reçue afin que le dispositif initial puisse collecter les `RequestPrd` concernés.
#### 9.1.3. Connexions avec une identité crée (`recover`)
@@ -263,12 +263,12 @@ Demande d'update de la liste des membres ( RequestPcd) d'un process :
1. Création et envoi des `RequestPrdList`.
2. Réception des `RequestPrdResponse` en réponse aux `RequestPrdList` et mise à jour des listes depuis les `RequestPcd` correspondants.
3. Création d'un `ItemMember` correspondant à l'utilisateur avec les clés chiffrées (hors clés de révocation) dans la partie data des métadonnées privées et les adresses SP dans les données publiques.
-4. Création d'une nouvelle version du RequestPcd avec l'ajout de l'`ItemMember` créé.
+4. Création d'une nouvelle version du `RequestPcd` avec l'ajout de l'`ItemMember` créé.
5. Redirection vers la page du process sur le relai.
## 10. Exemples de Code
## 11. 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
diff --git a/doc/Item-Specs.md b/doc/Item-Specs.md
index 7cc8668..36fdf19 100644
--- a/doc/Item-Specs.md
+++ b/doc/Item-Specs.md
@@ -74,5 +74,5 @@ La richesse et la diversité des métadonnées permettent une personnalisation e
## 6. 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
diff --git a/doc/Messages-SP-Specs.md b/doc/Messages-SP-Specs.md
index 3a550f8..a46196a 100644
--- a/doc/Messages-SP-Specs.md
+++ b/doc/Messages-SP-Specs.md
@@ -4,43 +4,43 @@
* 3. [3. Documents de référence](#Documentsderfrence)
* 4. [## 4. Variable `SharedPeerList` du SDK (Wasm)](#4.VariableSharedPeerListduSDKWasm)
* 5. [5. Structure du stockage en cache](#Structuredustockageencache)
- * 5.1. [5.1. Relais](#Relais)
- * 5.2. [5.2. Process](#Process)
- * 5.3. [5.3. Liste des hashs des messages reçus](#Listedeshashsdesmessagesreus)
- * 5.4. [5.4. Liste des sockets ouverts](#Listedessocketsouverts)
+ * 5.1. [5.1. Relais](#Relais)
+ * 5.2. [5.2. Process](#Process)
+ * 5.3. [5.3. Liste des hashs des messages reçus](#Listedeshashsdesmessagesreus)
+ * 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.1. [6.1. SharedPeerList](#SharedPeerList)
- * 6.2. [6.2. SharedProcessList](#SharedProcessList)
- * 6.3. [6.3. Taille des données](#Tailledesdonnes)
- * 6.4. [6.4. Preuve de travail](#Preuvedetravail)
- * 6.5. [6.5. Adresse SP de faucet](#AdresseSPdefaucet)
+ * 6.1. [6.1. SharedPeerList](#SharedPeerList)
+ * 6.2. [6.2. SharedProcessList](#SharedProcessList)
+ * 6.3. [6.3. Taille des données](#Tailledesdonnes)
+ * 6.4. [6.4. Preuve de travail](#Preuvedetravail)
+ * 6.5. [6.5. Adresse SP de faucet](#AdresseSPdefaucet)
* 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.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.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.4. [7.4. Traitement des messages de type `Message` par les clients](#TraitementdesmessagesdetypeMessageparlesclients)
+ * 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.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.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)
* 8. [8. Traitements par les relais](#Traitementsparlesrelais)
- * 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.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)
* 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.2. [9.2. Broadcast des messages de type `Message` vers les clients connectés](#BroadcastdesmessagesdetypeMessageverslesclientsconnects)
+ * 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)
* 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.2. [10.2. Protocole de Transmission des Transactions](#ProtocoledeTransmissiondesTransactions)
- * 10.3. [10.3. Protocole de Partage des Blocs](#ProtocoledePartagedesBlocs)
- * 10.4. [10.4. Validation et relais](#Validationetrelais)
- * 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.1. [10.6.1. Clients](#Clients)
- * 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.8. [10.8. Horodatage et ancrage des RequestPrd via les transactions Silent Payment (SP)](#HorodatageetancragedesRequestPrdvialestransactionsSilentPaymentSP)
+ * 10.1. [10.1. Protocole de Découverte des Pairs](#ProtocoledeDcouvertedesPairs)
+ * 10.2. [10.2. Protocole de Transmission des Transactions](#ProtocoledeTransmissiondesTransactions)
+ * 10.3. [10.3. Protocole de Partage des Blocs](#ProtocoledePartagedesBlocs)
+ * 10.4. [10.4. Validation et relais](#Validationetrelais)
+ * 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.1. [10.6.1. Clients](#Clients)
+ * 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.8. [10.8. Horodatage et ancrage des `RequestPrd` via les transactions Silent Payment (SP)](#HorodatageetancragedesRequestPrdvialestransactionsSilentPaymentSP)
* 11. [## 11. Transactions mainnet Bitcoin](#11.TransactionsmainnetBitcoin)
- * 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.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)
* 12. [Exemples de Code](#ExemplesdeCode)
* 13. [Todo](#Todo)
@@ -105,7 +105,7 @@ Le cache contient une liste des hashs des messages de type `Message` et de type
* MessageHashList: Hashs des objets `Message`.
* MessageConnectHashList: Hashs des objets `MessageConnect` (vide pour les clients).
* MessageDataEncHashList: Hashs de la donnée encryptée dans les objets `Message`.
-* RequestPcdHashList: Hashs des `RequestPcd` une fois déchiffrés des objets Message `Message`, avec le hash du message correspondant (vide pour les relais) et état actuel de la collecte des RequestPrd correspondants.
+* RequestPcdHashList: Hashs des `RequestPcd` une fois déchiffrés des objets Message `Message`, avec le hash du message correspondant (vide pour les relais) et état actuel de la collecte des `RequestPrd` correspondants.
* RequestPrdHashList: Hashs des `RequestPrd` une fois déchiffrés des objets Message `Message`, avec le hash du message correspondant et l'id de la transaction Silent Payment (SP) correspondante (vide pour les relais).
* TxFaucetIdList: Liste des transactions classiques du faucet.
* TxSpIdList: Liste des transactions silent payment (SP) reçues.
@@ -167,13 +167,13 @@ L'utilisateur parcourt sa liste de relais et envoie un message de type `MessageC
Il n'y a pas de retour attendu pour ce message.
-### 7.2. 7.2. Envoi de RequestPcd sur les relais via les messages de type `Message`
+### 7.2. 7.2. Envoi de `RequestPcd` sur les relais via les messages de type `Message`
Une fois le `RequestPcd` finalisé, il est chiffré par la `ProcessKey` du process. Cette partie chiffrée est la valeur de l'attribut `request_enc` du `Message`.
L'utilisateur parcourt sa liste de relais et envoie un message correspondant de type `Message` en JSON (voir [Specs-Datamodel.md](Specs-Datamodel.md)) à chaque relais pour se connecter, il partage sa liste de relais et sa liste de process.
-### 7.3. 7.3. Envoi de RequestPrd sur les relais via les messages de type `Message`
+### 7.3. 7.3. Envoi de `RequestPrd` sur les relais via les messages de type `Message`
Une fois le `RequestPrd` finalisé, une transaction SP est réalisée, dans cette transaction plusieurs hashs sont ajoutés sur des outputs aux indexs suivants:
@@ -182,9 +182,9 @@ Une fois le `RequestPrd` finalisé, une transaction SP est réalisée, dans cett
3. Le hash du process
4. Le hash de l'`item_name` de l'`Item` concerné
5. Le hash de la valeur de la signature (attribut `sig_value` du RequestPrd)
-6. Le hash du `RequestPrd` d'origine associé au RequestPrd (le cas échéant)
-7. Le hash du `RequestPcd` d'origine associé au RequestPrd (le cas échéant)
-8. Le hash du `RequestPcd` de référence associé au RequestPrd (le cas échéant)
+6. Le hash du `RequestPrd` d'origine associé au `RequestPrd` (le cas échéant)
+7. Le hash du `RequestPcd` d'origine associé au `RequestPrd` (le cas échéant)
+8. Le hash du `RequestPcd` de référence associé au `RequestPrd` (le cas échéant)
9. Le hash d'un `Amount` de paiement (le cas échéant)
10. Le hash d'un `Amount`de dépôt (le cas échéant)
11. Un hash d'un engagement externe ou d'un `Number` (le cas échéant)
@@ -193,7 +193,7 @@ La clé `KeyConfidential` de cette transaction est utilisée pour chiffrer les c
* `RequestPcd_keys_role_confidential_list_enc_by_shared_secret`
-Pour les RequestPrd de type `RequestPrdResponse` :
+Pour les `RequestPrd` de type `RequestPrdResponse` :
* `payment_method_enc_by_shared_secret`
* `deposit_method_enc_by_shared_secret`
@@ -203,17 +203,17 @@ Pour les RequestPrd de type `RequestPrdResponse` :
* `part_1_enc_hash_enc_by_sp_shared_secret`
* `shard_enc_by_sp_shared_secret`
-Pour les RequestPrd de type `RequestPrdConfirm` :
+Pour les `RequestPrd` de type `RequestPrdConfirm` :
* `code_confirm_enc_by_shared_secret`
-Pour les RequestPrd de type `RequestPrdKeyBackup` :
+Pour les `RequestPrd` de type `RequestPrdKeyBackup` :
* `device_footprint_enc_by_sp_shared_secret`
* `part_1_enc_hash_enc_by_sp_shared_secret`
* `shard_enc_by_sp_shared_secret`
-Pour les RequestPrd de type `RequestPrdKeyHello` :
+Pour les `RequestPrd` de type `RequestPrdKeyHello` :
* `part_1_enc_hash_enc_by_sp_shared_secret`
@@ -236,7 +236,7 @@ Le client met à jour ses propres listes suivantes :
Déchiffrement du message avec la `ProcessKey` du process et contrôles suivants :
-* Calcul du hash du RequestPcd ou RequestPrd et vérification de la non-existence du hash dans le cache.
+* Calcul du hash du `RequestPcd` ou `RequestPrd` et vérification de la non-existence du hash dans le cache.
* Voir [ RequestPrd- RequestPcd-Specs.md]( RequestPrd- RequestPcd-Specs.md) pour les détails des contrôles.
Mises à jour des données du cache.
@@ -373,7 +373,7 @@ Lorsque deux blocs sont minés presque simultanément, cela peut créer une bifu
#### 10.6.1. 10.6.1. Clients
-Les clients se connectent comme un nœud depuis le SDK au réseau de nœuds de side chain via les protocoles p2p de Bitcoin. Ils reçoivent les blocs et les transactions (mempool) de la side chain et scannent les transactions de la side chain pour trouver les transactions Silent Payment (SP) correspondantes aux RequestPrd, puis les RequestPcd correspondant aux RequestPrd.
+Les clients se connectent comme un nœud depuis le SDK au réseau de nœuds de side chain via les protocoles p2p de Bitcoin. Ils reçoivent les blocs et les transactions (mempool) de la side chain et scannent les transactions de la side chain pour trouver les transactions Silent Payment (SP) correspondantes aux RequestPrd, puis les `RequestPcd` correspondant aux RequestPrd.
#### 10.6.2. 10.6.2. Relais
@@ -383,9 +383,9 @@ Les relais hébergent un nœud complet de la side chain, connecté aux autres me
Les relais hébergent un nœud complet du mainnet, connecté aux autres membres de ce réseau. Voir [Specs-Deployment.md](Specs-Deployment.md) pour les détails de déploiement.
-### 10.8. 10.8. Horodatage et ancrage des RequestPrd via les transactions Silent Payment (SP)
+### 10.8. 10.8. Horodatage et ancrage des `RequestPrd` via les transactions Silent Payment (SP)
-Les RequestPrd sont horodatés et ancrés sur la side chain via des transactions Silent Payment (SP) contenant les hashs des messages et des signatures associées ( RequestPrd). Ces transactions sont ajoutées aux blocs, eux-mêmes signés par les nœuds "certificator" de la side chain pour être ajoutés à cette timechain. La dépense des UTXO de la transaction Silent Payment (SP) vaut pour signature (validation de la possession de la clé privée associée). Voir [Specs-Deployment.md](Specs-Deployment.md) pour les détails de déploiement.
+Les `RequestPrd` sont horodatés et ancrés sur la side chain via des transactions Silent Payment (SP) contenant les hashs des messages et des signatures associées ( RequestPrd). Ces transactions sont ajoutées aux blocs, eux-mêmes signés par les nœuds "certificator" de la side chain pour être ajoutés à cette timechain. La dépense des UTXO de la transaction Silent Payment (SP) vaut pour signature (validation de la possession de la clé privée associée). Voir [Specs-Deployment.md](Specs-Deployment.md) pour les détails de déploiement.
## 11. ## 11. Transactions mainnet Bitcoin
@@ -401,5 +401,5 @@ Le minage "vert" de 4NK permet de produire les jetons nécessaires au remboursem
## 13. 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
diff --git a/doc/PRD-PCD-Specs.md b/doc/PRD-PCD-Specs.md
index 2fd690f..d4606a7 100644
--- a/doc/PRD-PCD-Specs.md
+++ b/doc/PRD-PCD-Specs.md
@@ -2,7 +2,7 @@
* 1. [Objectif](#Objectif)
* 2. [Portée](#Porte)
* 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.2. [Réception](#Rception)
* 5. [Fonction des RequestPcd](#FonctiondesRequestPcd)
@@ -41,99 +41,99 @@
numbering=true
autoSave=true
/vscode-markdown-toc-config -->
-# RequestPrd et RequestPcd - Specs
+# `RequestPrd` et `RequestPcd` - Specs
## 1. 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. 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. 3. Documents de référence
Voir [Doc_references.md](Doc_references.md).
-## 4. Commun aux RequestPcd et RequestPrd
+## 4. Commun aux `RequestPcd` et RequestPrd
### 4.1. 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.
-Les messages contiennent des RequestPrd ou des RequestPcd encapsulés dans l'attribut `request_enc`, chiffré par la clé `ProcessKey` du `process` concerné.
+Les messages contiennent des `RequestPrd` ou des `RequestPcd` encapsulés dans l'attribut `request_enc`, chiffré par la clé `ProcessKey` du `process` concerné.
**Création du message et envoi**: voir [Message-SP-Specs.md](Message-SP-Specs.md).
### 4.2. 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.
-Les messages contiennent des RequestPrd ou des RequestPcd encapsulés dans l'attribut `request_enc`, chiffré par la clé `ProcessKey` du `process` concerné.
+Les messages contiennent des `RequestPrd` ou des `RequestPcd` encapsulés dans l'attribut `request_enc`, chiffré par la clé `ProcessKey` du `process` concerné.
-A la réception des messages, ils sont tous déchiffrés puis conservés ou non en fonction du `process hash` du RequestPcd ou du RequestPrd (dans l'attribut `request`). Si le `process hash` n'est pas reconnu, le message est ignoré.
+A la réception des messages, ils sont tous déchiffrés puis conservés ou non en fonction du `process hash` du `RequestPcd` ou du `RequestPrd` (dans l'attribut `request`). Si le `process hash` n'est pas reconnu, le message est ignoré.
-Les RequestPrd et RequestPcd sont au format JSON. Voir [Specs-Datamodel.md](Specs-Datamodel.md).
+Les `RequestPrd` et `RequestPcd` sont au format JSON. Voir [Specs-Datamodel.md](Specs-Datamodel.md).
-Les types RequestPrd et RequestPcd sont distingués par l'attribut `request_type` dans le `message`.
+Les types `RequestPrd` et `RequestPcd` sont distingués par l'attribut `request_type` dans le `message`.
-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.
+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.
**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é.
+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. 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 `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 `process` 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 `process` et les `members` concernés.
### 5.1. Création et envoi
-La création d'un RequestPcd suit plusieurs étapes :
+La création d'un `RequestPcd` suit plusieurs étapes :
1. **Chargement de la dernière version de la liste ( RequestPcd)**: Récupération de la dernière version de la liste du type d'`Item` à partir de la source de données, telle qu'une base de données ou un système de stockage.
2. **Mise à jour**: Ajouts et modifications eventuelles des `Item`
3. **Chiffrement des attributs**: Chiffrement des attributs de chaque Item selon les règles de confidentialité et de partage des clés (cf. [Specs-Security.md](Specs-Security.md)).
-4. **Chiffrement du RequestPcd**: Chiffrement du RequestPcd avec la clé `ProcessKey` du `process` concerné.
-5. Traitements communs aux RequestPcd et RequestPrd
+4. **Chiffrement du RequestPcd**: Chiffrement du `RequestPcd` avec la clé `ProcessKey` du `process` concerné.
+5. Traitements communs aux `RequestPcd` et RequestPrd
### 5.2. Réception
-La réception d'un RequestPcd suit plusieurs étapes :
+La réception d'un `RequestPcd` suit plusieurs étapes :
-1. Traitements communs aux RequestPcd et RequestPrd
-2. Recherche des RequestPrd en relation via `RequestPcd_reference_hash` et `RequestPcd_origin_hash` de ces RequestPrd et attente si nécessaire.
-3. Déchiffrage des attributs publics des `Item` des RequestPcd avec la `ProcessKey` du `process` concerné.
-4. Déchiffrage des attributs confidentiels des `Item` des RequestPcd avec les clés de déchiffrement depuis l'attribut `RequestPcd_keys_role_confidential_list_enc_by_shared_secret` des RequestPrd.
-5. Déchiffrage des attributs privés des `Item` des RequestPcd avec la clé privée `KeyRecover`
+1. Traitements communs aux `RequestPcd` et RequestPrd
+2. Recherche des `RequestPrd` en relation via `RequestPcd_reference_hash` et `RequestPcd_origin_hash` de ces `RequestPrd` et attente si nécessaire.
+3. Déchiffrage des attributs publics des `Item` des `RequestPcd` avec la `ProcessKey` du `process` concerné.
+4. Déchiffrage des attributs confidentiels des `Item` des `RequestPcd` avec les clés de déchiffrement depuis l'attribut `RequestPcd_keys_role_confidential_list_enc_by_shared_secret` des RequestPrd.
+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. 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.
-Les clés de chiffrement des attributs confidentiels par rôles des `Item` des RequestPcd sont chiffrées dans les RequestPrd avec le chiffrement du RequestPrd par la clé `KeyConfidential` d'une transaction Silent Payment SP (cf. [Specs-Security.md](Specs-Security.md)). Ces clés ne sont distribués qu'aux `members` concernés par les `Item` des RequestPcd (rôles dans les `process`).
+Les clés de chiffrement des attributs confidentiels par rôles des `Item` des `RequestPcd` sont chiffrées dans les `RequestPrd` avec le chiffrement du `RequestPrd` par la clé `KeyConfidential` d'une transaction Silent Payment SP (cf. [Specs-Security.md](Specs-Security.md)). Ces clés ne sont distribués qu'aux `members` concernés par les `Item` des `RequestPcd` (rôles dans les `process`).
-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. 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`.
-Lorsque que la réponse fait référence à un RequestPcd il est précisé dans `RequestPcd_reference_hash`, idem pour les RequestPrd avec `request_prd_reference_hash`.
+Lorsque que la réponse fait référence à un `RequestPcd` il est précisé dans `RequestPcd_reference_hash`, idem pour les `RequestPrd` avec `request_prd_reference_hash`.
-Lorsque que la réponse fait suite directement à un RequestPcd il est précisé dans `RequestPcd_origin_hash`, idem pour les RequestPrd avec `request_prd_origin_hash`.
+Lorsque que la réponse fait suite directement à un `RequestPcd` il est précisé dans `RequestPcd_origin_hash`, idem pour les `RequestPrd` avec `request_prd_origin_hash`.
Les `RequestPrdResponse` signalent de façon confidentielle :
-* soient des conditions ad'hoc déjà remplies via l'attribut `payment_method_enc_by_shared_secret`, `deposit_method_enc_by_shared_secret`, `commitment_method_enc_by_shared_secret`, `commitment_request_pcd_hash_list` pour les paiements et preuves ad'hoc éventuellements associés aux RequestPcd de la nouvelle version.
+* soient des conditions ad'hoc déjà remplies via l'attribut `payment_method_enc_by_shared_secret`, `deposit_method_enc_by_shared_secret`, `commitment_method_enc_by_shared_secret`, `commitment_request_pcd_hash_list` pour les paiements et preuves ad'hoc éventuellements associés aux `RequestPcd` de la nouvelle version.
* soient des appels pour recevoir les moyens de satisfaire ces conditions via les attributs `ask_payment_method_enc_by_shared_secret`, `ask_deposit_method_enc_by_shared_secret`, `ask_commitment_method_enc_by_shared_secret`.
-Les `Item` associés sont référencés dans des RequestPcd identifiés par `payment_request_pcd_hash_list_enc_by_shared_secret`, `cap_request_pcd_hash_list_enc_by_shared_secret` (cas des payments temporaires en l'attente du passage d'un cap), `deposit_request_pcd_hash_list_enc_by_shared_secret` et `commitment_request_pcd_hash_list_enc_by_shared_secret`.
+Les `Item` associés sont référencés dans des `RequestPcd` identifiés par `payment_request_pcd_hash_list_enc_by_shared_secret`, `cap_request_pcd_hash_list_enc_by_shared_secret` (cas des payments temporaires en l'attente du passage d'un cap), `deposit_request_pcd_hash_list_enc_by_shared_secret` et `commitment_request_pcd_hash_list_enc_by_shared_secret`.
-Des champs messages peuvent accompagner les RequestPrd via `message_public`, `message_confidential`, `message_private`.
+Des champs messages peuvent accompagner les `RequestPrd` via `message_public`, `message_confidential`, `message_private`.
Il est aussi possible de partager des clés de chiffrement ad'hoc via `certif_key_enc_by_shared_secret`.
@@ -145,54 +145,54 @@ Tous les échanges sont complétés de l'empreinte du device de l'emetteur envoy
### 6.2. Fonction des transactions silent payment SP associées aux RequestPrd
-La clé `KeyConfidential` d'une transaction Silent Payment SP est utilisée pour chiffrer les RequestPrd. Cette clé est échangée avec le destinataire via un Diffie-Hellman (cf. [Specs-Security.md](Specs-Security.md)) dans la transaction. Cette information est parrallèle aux RequestPrd et permet une meilleur sécurité et confidentialité des échanges.
+La clé `KeyConfidential` d'une transaction Silent Payment SP est utilisée pour chiffrer les `RequestPrd`.Cette clé est échangée avec le destinataire via un Diffie-Hellman (cf. [Specs-Security.md](Specs-Security.md)) dans la transaction. Cette information est parrallèle aux `RequestPrd` et permet une meilleur sécurité et confidentialité des échanges.
-La transaction Silent Payment SP a aussi une fonction d'horodate et de preuve de publication des RequestPrd donc de la validation des données des RequestPcd. Les outputs de la transaction Silent Payment SP contiennent les empreintes cryptographiques des `messages` et RequestPrd (sauf `RequestPrdKeyBackup`) et des RequestPcd. Ainsi l'infrastructure blockchain de signet de 4NK permet de vérifier l'intégrité des flux, leur ordre de référence (horodatage) et leur preuve de publication.
+La transaction Silent Payment SP a aussi une fonction d'horodate et de preuve de publication des `RequestPrd` donc de la validation des données des `RequestPcd`.Les outputs de la transaction Silent Payment SP contiennent les empreintes cryptographiques des `messages` et `RequestPrd` (sauf `RequestPrdKeyBackup`) et des `RequestPcd`.Ainsi l'infrastructure blockchain de signet de 4NK permet de vérifier l'intégrité des flux, leur ordre de référence (horodatage) et leur preuve de publication.
-Les `RequestPrdConfirm` qui sont des accusés automatiques de réception des RequestPrd sont aussi associés à une transaction Silent Payment SP, ce qui permet d'ajouter les preuves de réception des demandes et des validations (ou non).
+Les `RequestPrdConfirm` qui sont des accusés automatiques de réception des `RequestPrd` sont aussi associés à une transaction Silent Payment SP, ce qui permet d'ajouter les preuves de réception des demandes et des validations (ou non).
### 6.3. Création et envoi
-La création d'un RequestPrd suit plusieurs étapes :
+La création d'un `RequestPrd` suit plusieurs étapes :
1. **Chargement des clés de chiffrement confidentiel'**: Récupération des clés de chiffrement confidentiel des attributs des items d'un RequestPcd.
-2. **Chiffrement du RequestPrd**: Chiffrement du RequestPrd avec la clé `ProcessKey` du `process` concerné.
-3. **Création de l'adresse SP**: (Sauf `RequestPRDKeyBackup`) Création d'une adresse Silent Payment SP pour le partage de la `KeyConfidential` et pour l'horodatage du hash du RequestPrd dans la side chain.
-4. **Création du message**: Création du `message` contenant le RequestPrd chiffré, la preuve de travail, l'adresse de faucet
+2. **Chiffrement du RequestPrd**: Chiffrement du `RequestPrd` avec la clé `ProcessKey` du `process` concerné.
+3. **Création de l'adresse SP**: (Sauf `RequestPRDKeyBackup`) Création d'une adresse Silent Payment SP pour le partage de la `KeyConfidential` et pour l'horodatage du hash du `RequestPrd` dans la side chain.
+4. **Création du message**: Création du `message` contenant le `RequestPrd` chiffré, la preuve de travail, l'adresse de faucet
5. **Sélection des relais pour le message**: Sélection de 4 relais pour le message selon l'historique des pings et des réponses retournées.
6. **Sélection des noeuds de signet pour la transaction silent Payment (SP)**: (Sauf `RequestPRDKeyBackup`) Sélection de 4 noeuds de signet pour l'envoi de la transaction Silent Payment SP.
7. **Envoi du message**: Envoi du message aux relais
-8. **Envoi de la transaction**: (Sauf `RequestPRDKeyBackup`) envoi de la transaction aux noeuds de signet à travers un `RequestPrdMessage` pour la publication de la transaction Silent Payment SP avec le hash du RequestPrd dans l'attribut `request_prd_reference_hash`.
+8. **Envoi de la transaction**: (Sauf `RequestPRDKeyBackup`) envoi de la transaction aux noeuds de signet à travers un `RequestPrdMessage` pour la publication de la transaction Silent Payment SP avec le hash du `RequestPrd` dans l'attribut `request_prd_reference_hash`.
### 6.4. Réception
-La réception d'un RequestPcd suit plusieurs étapes :
+La réception d'un `RequestPcd` suit plusieurs étapes :
-1. Traitements communs aux RequestPcd et RequestPrd
-2. Recherche des RequestPcd en relation via `RequestPcd_reference_hash` et `RequestPcd_origin_hash` et attente si nécessaire et traitement de ceux ci.
-3. Vérification de la conformité des RequestPcd en relation.
-4. Recherche des RequestPrd en relation via `request_prd_reference_hash` et `request_prd_origin_hash` et attente si nécessaire et traitement de ceux ci.
-5. Vérification de la conformité des RequestPrd en relation.
+1. Traitements communs aux `RequestPcd` et RequestPrd
+2. Recherche des `RequestPcd` en relation via `RequestPcd_reference_hash` et `RequestPcd_origin_hash` et attente si nécessaire et traitement de ceux ci.
+3. Vérification de la conformité des `RequestPcd` en relation.
+4. Recherche des `RequestPrd` en relation via `request_prd_reference_hash` et `request_prd_origin_hash` et attente si nécessaire et traitement de ceux ci.
+5. Vérification de la conformité des `RequestPrd` en relation.
6. Recherche de l'`Item` associé via `item_reference_hash` et attente si nécessaire et traitement de celui ci.
-7. (Sauf `RequestPRDKeyBackup`) Déchiffrage des attributs confidentiels notés `_enc_by_shared_secret` depuis la `KeyConfidential` de la transaction silent payment SP correspondante via hash du RequestPrd dans l'output `2` de la transaction.
+7. (Sauf `RequestPRDKeyBackup`) Déchiffrage des attributs confidentiels notés `_enc_by_shared_secret` depuis la `KeyConfidential` de la transaction silent payment SP correspondante via hash du `RequestPrd` dans l'output `2` de la transaction.
8. Mise à jour du cache pour les traitement des RequestPrd.
9. Traitements spécifiques au type de RequestPrd.
## 7. 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. Création et envoi
L'envoi d'un `RequestPrdList` suit plusieurs étapes :
-Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdList` incluant l'envoi de la transaction Silent Payment 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 Silent Payment SP via un `RequestPrdMessage` pour la publication de la transaction dans la side chain.
### 7.2. Réception
La réception d'un `RequestPrdList` suit plusieurs étapes :
-1. Traitements des RequestPrd
+1. Traitements des `RequestPrd`
2. Création et envoi d'un `RequestPrdConfirm` pour confirmer la réception du `RequestPrdList` et envoie de la transaction Silent Payment SP associée avec
3. Recherche en cache de la dernière version de la liste du type d'`Item` concerné.
4. Création et envoi d'un `RequestPcd` avec la dernière version de la liste du type d'`Item` concerné.
@@ -203,7 +203,7 @@ La réception d'un `RequestPrdList` suit plusieurs étapes :
## 8. 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.
Permet la communication directe et sécurisée au sein du réseau, supportant des échanges d'informations critiques ou des notifications entre parties.
@@ -213,13 +213,13 @@ Les `RequestPrdMessage` répondent aux `RequestPrdMessage` sauf en cas d'envoi d
### 8.1. Création et envoi
-Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdMessage` incluant l'envoi de la transaction Silent Payment 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 Silent Payment SP via un autre `RequestPrdMessage` pour la publication de la transaction dans la side chain.
### 8.2. Réception
La réception d'un `RequestPrdMessage` suit plusieurs étapes :
-1. Traitements des RequestPrd
+1. Traitements des `RequestPrd`
2. Création et envoi d'un `RequestPrdConfirm` pour confirmer la réception du `RequestPrdList`.
3. Recherche en cache de la dernière version de la liste du type d'`Item` concerné.
4. Création et envoi d'un `RequestPcd` avec la dernière version de la liste du type d'`Item` concerné.
@@ -247,7 +247,7 @@ Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdUpd
## 10. 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.
Les `RequestPrdList`, `RequestPrdUpdate`, `RequestPrdMessage`, `RequestPrdResponse` et `RequestPrdKeyHello` reçoivent systématiquement un `RequestPrdConfirm` depuis leur réception par le destinataire.
@@ -263,7 +263,7 @@ Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdCon
## 11. 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.
Les `RequestPrdResponse` répondent aux `RequestPrdList`, `RequestPrdUpdate`, `RequestPrdKeyBackup` et `RequestPrdKeyHello`.
@@ -303,5 +303,5 @@ Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKey
## 15. 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
diff --git a/doc/Process-roles-Specs.md b/doc/Process-roles-Specs.md
index 8211ffa..4c966e5 100644
--- a/doc/Process-roles-Specs.md
+++ b/doc/Process-roles-Specs.md
@@ -33,7 +33,7 @@
## 1. Objectif
-Cette section vise à présenter en détail les Documents de Contrat Portable ( RequestPcd) et les Documents de Demande Portable ( RequestPrd), qui constituent les piliers du système 4NK. Essentiels pour sécuriser les transactions de données et gérer les identités numériques, les RequestPcd et RequestPrd assurent l'intégrité et la confidentialité au cœur d'un réseau décentralisé.
+Cette section vise à présenter en détail les Documents de Contrat Portable ( RequestPcd) et les Documents de Demande Portable ( RequestPrd), qui constituent les piliers du système 4NK. Essentiels pour sécuriser les transactions de données et gérer les identités numériques, les `RequestPcd` et `RequestPrd` assurent l'intégrité et la confidentialité au cœur d'un réseau décentralisé.
## 2. Portée
@@ -145,5 +145,5 @@ L'ItemProcess et ItemProcessPublicAttributeGroup offrent un cadre pour l'intégr
## 10. 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
diff --git a/doc/Specs-Code.md b/doc/Specs-Code.md
index 1db3a80..60d2bcc 100644
--- a/doc/Specs-Code.md
+++ b/doc/Specs-Code.md
@@ -40,7 +40,7 @@ Les parties prenantes ont tous les moyens organisationnels dans les process, pou
## 3. 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 process (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 process (possible de segmenter par zones et services).
Le monitoring comme la journalisation, ne sont pas possibles et pas pertinents sur les relais qui ne sont pas critiques unitairement, tous les flux sont fongibles, chiffrés, anonymes, et peuvent passer par des relais non révélés. Cependant, l'optimisation des listes de pairs et de contrats, pourrait passer par un système de réputation qui nécessitera un historique. À ce stade, la gestion "qualitative" et "quantitative" des relais et des contrats est gérée en mémoire, non persistée et restaurée par chaque connexion à un nouveau pair.
diff --git a/doc/Specs-Datamodel.md b/doc/Specs-Datamodel.md
index 675c989..d7c63a4 100644
--- a/doc/Specs-Datamodel.md
+++ b/doc/Specs-Datamodel.md
@@ -106,336 +106,336 @@ Voir [Doc_references.md](Doc_references.md).
### 2.1. ConditionCap
-The ConditionCap struct represents a condition related to a deposit role and its associated transaction mode, indicating the requirements for transactions within this context.
+The `ConditionCap` struct represents a condition related to a deposit role and its associated transaction mode, indicating the requirements for transactions within this context.
-| Attribute Name | Type | Option | Description |
-|------------------|-----------------------|--------|-----------------------------------------------------------|
-| role_deposit | ```String``` | | Represents the deposit role in the condition. |
-| role_transaction | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
+| Attribute Name | Type | Option | Description |
+|--------------------|-----------------------|--------|-----------------------------------------------------------|
+| `role_deposit` | ```String``` | | Represents the deposit role in the condition. |
+| `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
### 2.2. ConditionCommitment
-The ConditionCommitment struct specifies a condition involving an artefact role and transaction mode, defining how commitments are handled and verified.
+The `ConditionCommitment` struct specifies a condition involving an artefact role and transaction mode, defining how commitments are handled and verified.
-| Attribute Name | Type | Option | Description |
-|------------------|-----------------------|--------|-----------------------------------------------------------|
-| role_artefact | ```String``` | | Represents the artefact role in the condition. |
-| role_transaction | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
+| Attribute Name | Type | Option | Description |
+|--------------------|-----------------------|--------|-----------------------------------------------------------|
+| `role_artefact` | ```String``` | | Represents the artefact role in the condition. |
+| `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
### 2.3. ConditionDeposit
-ConditionDeposit is similar to ConditionCap but specifically focuses on deposit-related transactions, establishing the criteria for deposit actions.
+`ConditionDeposit` is similar to ConditionCap but specifically focuses on deposit-related transactions, establishing the criteria for deposit actions.
-| Attribute Name | Type | Option | Description |
-|------------------|-----------------------|--------|-----------------------------------------------------------|
-| role_deposit | ```String``` | | Represents the deposit role in the condition. |
-| role_transaction | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
+| Attribute Name | Type | Option | Description |
+|--------------------|-----------------------|--------|-----------------------------------------------------------|
+| `role_deposit` | ```String``` | | Represents the deposit role in the condition. |
+| `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
### 2.4. ConditionOrchestration
-ConditionOrchestration defines success and failure roles for orchestration conditions, guiding the flow of processes based on outcomes.
+`ConditionOrchestration` defines success and failure roles for orchestration conditions, guiding the flow of processes based on outcomes.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|----------------------------------------------------------|
-| role_ok | ```String``` | | Represents the successful outcome role in the condition. |
-| role_ko | ```String``` | | Represents the failed outcome role in the condition. |
+| `role_ok` | ```String``` | | Represents the successful outcome role in the condition. |
+| `role_ko` | ```String``` | | Represents the failed outcome role in the condition. |
### 2.5. ConditionPayment
This struct outlines the conditions for payments, including the amount, payment method, and transaction mode, setting the parameters for financial transactions.
-| Attribute Name | Type | Option | Description |
-|------------------|-----------------------|--------|-----------------------------------------------------------|
-| payment_amount | ```String``` | | Represents the amount to be paid in the condition. |
-| payment_method | ```PaymentMode``` | | Specifies the payment method to be used. |
-| role_transaction | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
+| Attribute Name | Type | Option | Description |
+|--------------------|-----------------------|--------|-----------------------------------------------------------|
+| `payment_amount` | ```String``` | | Represents the amount to be paid in the condition. |
+| `payment_method` | ```PaymentMode``` | | Specifies the payment method to be used. |
+| `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
### 2.6. Condition RequestPrdAddressSet
-Condition RequestPrdAddressSet involves complex conditions based on RequestPrd addresses, including quotas, values, and scores, to determine condition fulfillment.
+Condition `request_prdAddressSet` involves complex conditions based on RequestPrd addresses, including quotas, values, and scores, to determine condition fulfillment.
-| Attribute Name | Type | Option | Description |
-|----------------------------------------------|-------------------|--------|------------------------------------------------------------|
-| from_role | ```String``` | | Identifies the originating role in the condition. |
-| RequestPrd_sp_address_list | ```Vec``` | | Lists addresses involved in the condition. |
-| RequestPrd_sp_address_required_list | ```Vec``` | | Lists required addresses for the condition to be met. |
-| RequestPrd_sp_address_quota | ```i32``` | | Specifies the quota of addresses for the condition. |
-| RequestPrd_request_prd_value_ok_list | ```Vec``` | | Lists the values that are considered acceptable. |
-| RequestPrd_value_ko_list | ```Vec``` | | Lists the values that are considered failures. |
-| RequestPrd_value_none_list | ```Vec``` | | Lists the values that are considered neutral or no-op. |
-| RequestPrd_sp_address_value_min | ```i64``` | | The minimum value for an address to be considered. |
-| RequestPrd_sp_address_value_min_per | ```i64``` | | The minimum percentage for the minimum address value. |
-| RequestPrd_sp_address_value_min_ok | ```boolean``` | | Indicates if the minimum address value is considered OK. |
-| RequestPrd_sp_adddress_value_ok_min_per | ```i64``` | | The minimum percentage for an address value to be OK. |
-| RequestPrd_sp_address_value_ok_max | ```i64``` | | The maximum value for an address to be considered OK. |
-| RequestPrd_sp_adderss_value_ko_max_per | ```i64``` | | The maximum percentage for an address value to be KO. |
-| RequestPrd_sp_address_value_none_max | ```i64``` | | The maximum value for an address to be considered neutral. |
-| RequestPrd_sp_adderss_value_none_max_per | ```i64``` | | The maximum percentage for a neutral address value. |
-| RequestPrd_sp_address_score_min | ```i32``` | | The minimum score for an address to be considered. |
-| RequestPrd_sp_address_score_min_min_required | ```i32``` | | The minimum required score for an address. |
-| RequestPrd_sp_address_score_min_min_ok | ```boolean``` | | Indicates if the minimum score is considered OK. |
-| RequestPrd_sp_address_score_min_min_per | ```i64``` | | The minimum percentage for the minimum score. |
-| RequestPrd_value_auto_ok | ```boolean``` | | Automatically consider values as OK. |
-| RequestPrd_value_auto_ko | ```boolean``` | | Automatically consider values as KO. |
-| RequestPrd_value_auto_none | ```boolean``` | | Automatically consider values as neutral or no-op. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------------------|-------------------|--------|------------------------------------------------------------|
+| `from_role` | ```String``` | | Identifies the originating role in the condition. |
+| `request_prd_sp_address_list` | ```Vec``` | | Lists addresses involved in the condition. |
+| `request_prd_sp_address_required_list` | ```Vec``` | | Lists required addresses for the condition to be met. |
+| `request_prd_sp_address_quota` | ```i32``` | | Specifies the quota of addresses for the condition. |
+| `request_prd_request_prd_value_ok_list` | ```Vec``` | | Lists the values that are considered acceptable. |
+| `request_prd_value_ko_list` | ```Vec``` | | Lists the values that are considered failures. |
+| `request_prd_value_none_list` | ```Vec``` | | Lists the values that are considered neutral or no-op. |
+| `request_prd_sp_address_value_min` | ```i64``` | | The minimum value for an address to be considered. |
+| `request_prd_sp_address_value_min_per` | ```i64``` | | The minimum percentage for the minimum address value. |
+| `request_prd_sp_address_value_min_ok` | ```boolean``` | | Indicates if the minimum address value is considered OK. |
+| `request_prd_sp_adddress_value_ok_min_per` | ```i64``` | | The minimum percentage for an address value to be OK. |
+| `request_prd_sp_address_value_ok_max` | ```i64``` | | The maximum value for an address to be considered OK. |
+| `request_prd_sp_adderss_value_ko_max_per` | ```i64``` | | The maximum percentage for an address value to be KO. |
+| `request_prd_sp_address_value_none_max` | ```i64``` | | The maximum value for an address to be considered neutral. |
+| `request_prd_sp_adderss_value_none_max_per` | ```i64``` | | The maximum percentage for a neutral address value. |
+| `request_prd_sp_address_score_min` | ```i32``` | | The minimum score for an address to be considered. |
+| `request_prd_sp_address_score_min_min_required` | ```i32``` | | The minimum required score for an address. |
+| `request_prd_sp_address_score_min_min_ok` | ```boolean``` | | Indicates if the minimum score is considered OK. |
+| `request_prd_sp_address_score_min_min_per` | ```i64``` | | The minimum percentage for the minimum score. |
+| `request_prd_value_auto_ok` | ```boolean``` | | Automatically consider values as OK. |
+| `request_prd_value_auto_ko` | ```boolean``` | | Automatically consider values as KO. |
+| `request_prd_value_auto_none` | ```boolean``` | | Automatically consider values as neutral or no-op. |
### 2.7. ConditionPublish
-ConditionPublish sets the criteria for publishing actions, including data size limits, publication counts, and timeouts, to regulate content distribution.
+`ConditionPublish` sets the criteria for publishing actions, including data size limits, publication counts, and timeouts, to regulate content distribution.
-| Attribute Name | Type | Option | Description |
-|--------------------------------|--------------|--------|---------------------------------------------------------------|
-| RequestPcd_data_size_max_unit | ```String``` | | Specifies the maximum unit size for published data. |
-| RequestPcd_data_size_max_total | ```i64``` | | Specifies the total maximum data size allowed. |
-| RequestPcd_number_min | ```i32``` | | The minimum number of publications required. |
-| RequestPcd_number_max | ```i32``` | | The maximum number of publications allowed. |
-| RequestPcd_amount_max_total | ```Amount``` | | The maximum total amount for publications. |
-| RequestPrd_waiting_timeout | ```u64``` | | The waiting timeout for a publication to be considered valid. |
-| RequestPcd_waiting_timeout | ```u64``` | | The waiting timeout for the condition to be considered met. |
+| Attribute Name | Type | Option | Description |
+|-----------------------------------|--------------|--------|---------------------------------------------------------------|
+| `request_pcd_data_size_max_unit` | ```String``` | | Specifies the maximum unit size for published data. |
+| `request_pcd_data_size_max_total` | ```i64``` | | Specifies the total maximum data size allowed. |
+| `request_pcd_number_min` | ```i32``` | | The minimum number of publications required. |
+| `request_pcd_number_max` | ```i32``` | | The maximum number of publications allowed. |
+| `request_pcd_amount_max_total` | ```Amount``` | | The maximum total amount for publications. |
+| `request_prd_waiting_timeout` | ```u64``` | | The waiting timeout for a publication to be considered valid. |
+| `request_pcd_waiting_timeout` | ```u64``` | | The waiting timeout for the condition to be considered met. |
## 3. Methods
### 3.1. DepositMethod
-The DepositMethod struct identifies a specific deposit method, encapsulating the approach or mechanism for deposits within the system.
+The `DepositMethod` struct identifies a specific deposit method, encapsulating the approach or mechanism for deposits within the system.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|------------------------------|
-| method | ```String``` | | Represents a deposit method. |
+| `method` | ```String``` | | Represents a deposit method. |
### 3.2. CommitmentMethod
-CommitmentMethod represents a particular method of commitment, defining how commitments are made or managed in the system.
+`CommitmentMethod` represents a particular method of commitment, defining how commitments are made or managed in the system.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|---------------------------------|
-| method | ```String``` | | Represents a commitment method. |
+| `method` | ```String``` | | Represents a commitment method. |
### 3.3. PaymentMethod
-PaymentMethod specifies a payment mechanism, detailing the method used for financial transactions.
+`PaymentMethod` specifies a payment mechanism, detailing the method used for financial transactions.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|------------------------------------------------------|
-| method | ```String``` | | La méthode de paiement représentée par cette struct. |
+| `method` | ```String``` | | La méthode de paiement représentée par cette struct. |
## 4. Items
### 4.1. ItemArtefact
-ItemArtefact associates an item with artefact-specific attributes, including public, confidential, and private attribute groups, to represent artefacts within the system.
+`ItemArtefact` associates an item with artefact-specific attributes, including public, confidential, and private attribute groups, to represent artefacts within the system.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------|-------------------|--------|-------------------------------------------------------------------|
-| item | Item | | Represents the item associated with this artefact. |
-| public_attribute_group | ```Vec``` | | A list of public attributes associated with the artefact. |
-| role_confidential_attribute_group | ```Vec``` | | A list of role-specific confidential attributes for the artefact. |
-| private_attribute_group | ```Vec``` | | A list of private attributes associated with the artefact. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------|-------------------|--------|-------------------------------------------------------------------|
+| `item` | ```Item``` | | Represents the item associated with this artefact. |
+| `public_attribute_group` | ```Vec``` | | A list of public attributes associated with the artefact. |
+| `role_confidential_attribute_group` | ```Vec``` | | A list of role-specific confidential attributes for the artefact. |
+| `private_attribute_group` | ```Vec``` | | A list of private attributes associated with the artefact. |
### 4.2. ItemCommitmentPublicAttributeGroup
This struct groups public attributes related to commitments, such as goals and provider types, to publicly share commitment details.
-| Attribute Name | Type | Option | Description |
-|----------------------------------|-------------------|--------|---------------------------------------------------------------------------------|
-| for_sp_address_list | ```Vec``` | | A list of service provider addresses related to this commitment. |
-| goal_list | ```Vec``` | | A list of goals associated with this commitment. |
-| provider_type | ```String``` | | The type of provider making the commitment. |
-| commitment_request_pcd_hash_list | ```Vec``` | | A list of hashes for the commitment's RequestPcd documents. |
-| ref_item_hash_list | ```Vec``` | | A list of reference hashes for items related to this commitment. |
-| ref_request_pcd_hash_list | ```Vec``` | | A list of reference hashes for RequestPcd documents related to this commitment. |
-| payload_public_list | ```Vec``` | | A list of public payloads associated with this commitment. |
+| Attribute Name | Type | Option | Description |
+|------------------------------------|-------------------|--------|---------------------------------------------------------------------------------|
+| `for_sp_address_list` | ```Vec``` | | A list of service provider addresses related to this commitment. |
+| `goal_list` | ```Vec``` | | A list of goals associated with this commitment. |
+| `provider_type` | ```String``` | | The type of provider making the commitment. |
+| `commitment_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the commitment's RequestPcd documents. |
+| `ref_item_hash_list` | ```Vec``` | | A list of reference hashes for items related to this commitment. |
+| `ref_request_pcd_hash_list` | ```Vec``` | | A list of reference hashes for RequestPcd documents related to this commitment. |
+| `payload_public_list` | ```Vec``` | | A list of public payloads associated with this commitment. |
### 4.3. ItemMemberPublicAttributeGroup
-ItemMemberPublicAttributeGroup outlines public attributes for members, including service provider addresses and payment methods, for transparency in member-related information.
+`ItemMemberPublicAttributeGroup` outlines public attributes for members, including service provider addresses and payment methods, for transparency in member-related information.
-| Attribute Name | Type | Option | Description |
-|------------------------------|-------------------|--------|---------------------------------------------------------------|
-| sp_address_public | ```String``` | | The public service provider address. |
-| sp_address_public_sig | ```String``` | | The signature for the public service provider address. |
-| sp_address_revoke_public | ```String``` | | The public address for revoking service provider access. |
-| sp_address_revoke_public_sig | ```String``` | | The signature for the public address for revoking access. |
-| third_sp_address_list_public | ```Vec``` | | A list of public addresses for third-party service providers. |
-| data_size_max | ```i64``` | | The maximum size of data allowed. |
-| payment_method_list_public | ```Vec``` | | A list of public payment methods available. |
-| succession_process_hash | ```String``` | | The hash of the succession process associated with this item. |
+| Attribute Name | Type | Option | Description |
+|--------------------------------|-------------------|--------|---------------------------------------------------------------|
+| `sp_address_public` | ```String``` | | The public service provider address. |
+| `sp_address_public_sig` | ```String``` | | The signature for the public service provider address. |
+| `sp_address_revoke_public` | ```String``` | | The public address for revoking service provider access. |
+| `sp_address_revoke_public_sig` | ```String``` | | The signature for the public address for revoking access. |
+| `third_sp_address_list_public` | ```Vec``` | | A list of public addresses for third-party service providers. |
+| `data_size_max` | ```i64``` | | The maximum size of data allowed. |
+| `payment_method_list_public` | ```Vec``` | | A list of public payment methods available. |
+| `succession_process_hash` | ```String``` | | The hash of the succession process associated with this item. |
### 4.4. ItemDepositPublicAttributeGroup
It details public attributes for deposits, including target addresses and goals, facilitating the understanding of deposit objectives.
-| Attribute Name | Type | Option | Description |
-|---------------------------|-------------------|--------|------------------------------------------------------------------|
-| for_sp_address_list | ```Vec``` | | A list of service provider addresses targeted by this deposit. |
-| for_address_list | ```Vec``` | | A list of addresses targeted by this deposit. |
-| goal_list | ```Vec``` | | A list of goals associated with this deposit. |
-| provider_type | ```String``` | | The type of provider making the deposit. |
-| ref_item_hash_list | ```Vec``` | | A list of item hashes referenced by this deposit. |
-| ref_request_pcd_hash_list | ```Vec``` | | A list of RequestPcd document hashes referenced by this deposit. |
-| payload_list_public | ```Vec``` | | A list of public payloads associated with this deposit. |
-| audit_code_list_public | ```Vec``` | | A list of public audit codes associated with this deposit. |
+| Attribute Name | Type | Option | Description |
+|-----------------------------|-------------------|--------|------------------------------------------------------------------|
+| `for_sp_address_list` | ```Vec``` | | A list of service provider addresses targeted by this deposit. |
+| `for_address_list` | ```Vec``` | | A list of addresses targeted by this deposit. |
+| `goal_list` | ```Vec``` | | A list of goals associated with this deposit. |
+| `provider_type` | ```String``` | | The type of provider making the deposit. |
+| `ref_item_hash_list` | ```Vec``` | | A list of item hashes referenced by this deposit. |
+| `ref_request_pcd_hash_list` | ```Vec``` | | A list of RequestPcd document hashes referenced by this deposit. |
+| `payload_list_public` | ```Vec``` | | A list of public payloads associated with this deposit. |
+| `audit_code_list_public` | ```Vec``` | | A list of public audit codes associated with this deposit. |
### 4.5. ItemCommitmentRoleConfidentialAttributeGroup
This struct encompasses role-specific confidential attributes for commitments, securing sensitive commitment information.
-| Attribute Name | Type | Option | Description |
-|---------------------------|-------------------|--------|------------------------------------------------------------------|
-| payload_list_confidential | ```Vec``` | | A list of confidential payloads associated with this commitment. |
+| Attribute Name | Type | Option | Description |
+|-----------------------------|-------------------|--------|------------------------------------------------------------------|
+| `payload_list_confidential` | ```Vec``` | | A list of confidential payloads associated with this commitment. |
### 4.6. ItemCommitmentPrivateAttributeGroup
-ItemCommitmentPrivateAttributeGroup contains private attributes for commitments, ensuring privacy for the most sensitive commitment details.
+`ItemCommitmentPrivateAttributeGroup` contains private attributes for commitments, ensuring privacy for the most sensitive commitment details.
-| Attribute Name | Type | Option | Description |
-|----------------------|-------------------|--------|-------------------------------------------------------------|
-| payload_list_private | ```Vec``` | | A list of private payloads associated with this commitment. |
+| Attribute Name | Type | Option | Description |
+|------------------------|-------------------|--------|-------------------------------------------------------------|
+| `payload_list_private` | ```Vec``` | | A list of private payloads associated with this commitment. |
### 4.7. ItemCommitment
-ItemCommitment links an item with commitment-specific attributes across public, confidential, and private spheres, fully representing a commitment.
+`ItemCommitment` links an item with commitment-specific attributes across public, confidential, and private spheres, fully representing a commitment.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------|----------------------------------------------|--------|---------------------------------------------------------------------|
-| item | Item | | Represents the item associated with this commitment. |
-| public_attribute_group | ItemCommitmentPublicAttributeGroup | | The public attribute group associated with this commitment. |
-| role_confidential_attribute_group | ItemCommitmentRoleConfidentialAttributeGroup | | The role-specific confidential attribute group for this commitment. |
-| private_attribute_group | ItemCommitmentPrivateAttributeGroup | | The private attribute group associated with this commitment. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------|----------------------------------------------------|--------|---------------------------------------------------------------------|
+| `item` | ```Item``` | | Represents the item associated with this commitment. |
+| `public_attribute_group` | ```ItemCommitmentPublicAttributeGroup``` | | The public attribute group associated with this commitment. |
+| `role_confidential_attribute_group` | ```ItemCommitmentRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this commitment. |
+| `private_attribute_group` | ```ItemCommitmentPrivateAttributeGroup``` | | The private attribute group associated with this commitment. |
### 4.8. ItemDepositRoleConfidentialAttributeGroup
Similar to its commitment counterpart, this struct holds confidential attributes specific to deposits, protecting sensitive deposit information.
-| Attribute Name | Type | Option | Description |
-|------------------------------|-------------------|--------|------------------------------------------------------------------|
-| payload_list_confidential | ```Vec``` | | A list of confidential payloads associated with this deposit. |
-| audit_code_list_confidential | ```Vec``` | | A list of confidential audit codes associated with this deposit. |
+| Attribute Name | Type | Option | Description |
+|--------------------------------|-------------------|--------|------------------------------------------------------------------|
+| `payload_list_confidential` | ```Vec``` | | A list of confidential payloads associated with this deposit. |
+| `audit_code_list_confidential` | ```Vec``` | | A list of confidential audit codes associated with this deposit. |
### 4.9. ItemDepositPrivateAttributeGroup
-ItemDepositPrivateAttributeGroup secures private deposit attributes, safeguarding the most sensitive aspects of deposits.
+`ItemDepositPrivateAttributeGroup` secures private deposit attributes, safeguarding the most sensitive aspects of deposits.
-| Attribute Name | Type | Option | Description |
-|----------------------|-------------------|--------|----------------------------------------------------------|
-| payload_list_private | ```Vec``` | | A list of private payloads associated with this deposit. |
-| audit_code_private | ```String``` | | A private audit code associated with this deposit. |
+| Attribute Name | Type | Option | Description |
+|------------------------|-------------------|--------|----------------------------------------------------------|
+| `payload_list_private` | ```Vec``` | | A list of private payloads associated with this deposit. |
+| `audit_code_private` | ```String``` | | A private audit code associated with this deposit. |
### 4.10. ItemDeposit
It combines an item with deposit-specific attributes, including public, confidential, and private groups, to comprehensively represent a deposit.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------|-------------------------------------------|--------|------------------------------------------------------------------|
-| item | Item | | Represents the item associated with this deposit. |
-| public_attribute_group | ItemDepositPublicAttributeGroup | | The public attribute group associated with this deposit. |
-| role_confidential_attribute_group | ItemDepositRoleConfidentialAttributeGroup | | The role-specific confidential attribute group for this deposit. |
-| private_attribute_group | ItemDepositPrivateAttributeGroup | | The private attribute group associated with this deposit. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------|-------------------------------------------------|--------|------------------------------------------------------------------|
+| `item` | ```Item``` | | Represents the item associated with this deposit. |
+| `public_attribute_group` | ```ItemDepositPublicAttributeGroup``` | | The public attribute group associated with this deposit. |
+| `role_confidential_attribute_group` | ```ItemDepositRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this deposit. |
+| `private_attribute_group` | ```ItemDepositPrivateAttributeGroup``` | | The private attribute group associated with this deposit. |
### 4.11. ItemEnum
This enumeration represents different types of items within a system, where each variant encapsulates a specific struct for a type of item:
- Process(ItemProcess): Contains an item of type ItemProcess, representing a process.
- Peer(ItemPeer): Contains an item of type ItemPeer, representing a peer.
- Member(ItemMember): Contains an item of type ItemMember, representing a member.
- Payment(ItemPayment): Contains an item of type ItemPayment, representing a payment.
- Deposit(ItemDeposit): Contains an item of type ItemDeposit, representing a deposit.
- Artefact(ItemArtefact): Contains an item of type ItemArtefact, representing an artefact.
- Commitment(ItemCommitment): Contains an item of type ItemCommitment, representing a commitment.
+* **```Process(ItemProcess)```**: Contains an item of type ItemProcess, representing a process.
+* **```Peer(ItemPeer)```**: Contains an item of type ItemPeer, representing a peer.
+* **```Member(ItemMember)```**: Contains an item of type ItemMember, representing a member.
+* **```Payment(ItemPayment)```**: Contains an item of type ItemPayment, representing a payment.
+* **```Deposit(ItemDeposit)```**: Contains an item of type ItemDeposit, representing a deposit.
+* **```Artefact(ItemArtefact)```**: Contains an item of type ItemArtefact, representing an artefact.
+* **```Commitment(ItemCommitment)```**: Contains an item of type ItemCommitment, representing a commitment.
### 4.12. ItemPaymentPublicAttributeGroup
This struct organizes public payment attributes, detailing aspects like service provider addresses and payment goals, for public knowledge.
-| Attribute Name | Type | Option | Description |
-|----------------------------------|-------------------|--------|-----------------------------------------------------------------------|
-| for_sp_address_list | ```Vec``` | | A list of service provider addresses related to this payment. |
-| goal_list | ```Vec``` | | A list of goals associated with this payment. |
-| provider_type | ```String``` | | The type of provider making the payment. |
-| commitment_request_pcd_hash_list | ```Vec``` | | A list of hashes for the payment's commitment precondition documents. |
-| order_request_pcd_hash_list | ```Vec``` | | A list of hashes for the payment's order precondition documents. |
-| invoice_request_pcd_hash_list | ```Vec``` | | A list of hashes for the payment's invoice precondition documents. |
-| pay_request_pcd_hash_list | ```Vec``` | | A list of hashes for the payment precondition documents. |
-| ref_item_hash_list | ```Vec``` | | A list of item hashes referenced by this payment. |
-| ref_request_pcd_hash_list | ```Vec``` | | A list of precondition document hashes referenced by this payment. |
-| payload_list_public | ```Vec``` | | A list of public payloads associated with this payment. |
-| audit_code_list_public | ```Vec``` | | A list of public audit codes associated with this payment. |
+| Attribute Name | Type | Option | Description |
+|------------------------------------|-------------------|--------|-----------------------------------------------------------------------|
+| `for_sp_address_list` | ```Vec``` | | A list of service provider addresses related to this payment. |
+| `goal_list` | ```Vec``` | | A list of goals associated with this payment. |
+| `provider_type` | ```String``` | | The type of provider making the payment. |
+| `commitment_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the payment's commitment precondition documents. |
+| `order_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the payment's order precondition documents. |
+| `invoice_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the payment's invoice precondition documents. |
+| `pay_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the payment precondition documents. |
+| `ref_item_hash_list` | ```Vec``` | | A list of item hashes referenced by this payment. |
+| `ref_request_pcd_hash_list` | ```Vec``` | | A list of precondition document hashes referenced by this payment. |
+| `payload_list_public` | ```Vec``` | | A list of public payloads associated with this payment. |
+| `audit_code_list_public` | ```Vec``` | | A list of public audit codes associated with this payment. |
### 4.13. ItemPaymentRoleConfidentialAttributeGroup
It holds confidential payment attributes, maintaining the confidentiality of critical payment information.
-| Attribute Name | Type | Option | Description |
-|------------------------------|-------------------|--------|------------------------------------------------------------------|
-| payload_list_confidential | ```Vec``` | | A list of confidential payloads associated with this payment. |
-| audit_code_list_confidential | ```Vec``` | | A list of confidential audit codes associated with this payment. |
+| Attribute Name | Type | Option | Description |
+|--------------------------------|-------------------|--------|------------------------------------------------------------------|
+| `payload_list_confidential` | ```Vec``` | | A list of confidential payloads associated with this payment. |
+| `audit_code_list_confidential` | ```Vec``` | | A list of confidential audit codes associated with this payment. |
### 4.14. ItemPaymentPrivateAttributeGroup
ItemPaymentPrivateAttributeGroup protects private payment attributes, ensuring the highest level of privacy for payment details.
-| Attribute Name | Type | Option | Description |
-|----------------------|-------------------|--------|----------------------------------------------------------|
-| payload_list_private | ```Vec``` | | A list of private payloads associated with this payment. |
-| audit_code_private | ```String``` | | A private audit code associated with this payment. |
+| Attribute Name | Type | Option | Description |
+|------------------------|-------------------|--------|----------------------------------------------------------|
+| `payload_list_private` | ```Vec``` | | A list of private payloads associated with this payment. |
+| `audit_code_private` | ```String``` | | A private audit code associated with this payment. |
### 4.15. ItemPayment
-ItemPayment links an item with payment-specific attributes across public, confidential, and private groups, offering a full view of a payment.
+`ItemPayment` links an item with payment-specific attributes across public, confidential, and private groups, offering a full view of a payment.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------|-------------------------------------------|--------|------------------------------------------------------------------|
-| item | Item | | Represents the item associated with this payment. |
-| public_attribute_group | ItemPaymentPublicAttributeGroup | | The public attribute group associated with this payment. |
-| role_confidential_attribute_group | ItemPaymentRoleConfidentialAttributeGroup | | The role-specific confidential attribute group for this payment. |
-| private_attribute_group | ItemPaymentPrivateAttributeGroup | | The private attribute group associated with this payment. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------|-------------------------------------------------|--------|------------------------------------------------------------------|
+| `item` | ```Item``` | | Represents the item associated with this payment. |
+| `public_attribute_group` | ```ItemPaymentPublicAttributeGroup``` | | The public attribute group associated with this payment. |
+| `role_confidential_attribute_group` | ```ItemPaymentRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this payment. |
+| `private_attribute_group` | ```ItemPaymentPrivateAttributeGroup``` | | The private attribute group associated with this payment. |
### 4.16. ItemPeerPublicAttributeGroup
It outlines public peer attributes, such as service provider addresses and PoW details, for transparency in peer-related information.
-| Attribute Name | Type | Option | Description |
-|------------------------------|-------------------|--------|-------------------------------------------------------------------------------|
-| sp_address | ```String``` | | The service provider's address associated with this peer. |
-| domain | ```String``` | | The domain associated with this peer. |
-| ip_address | ```String``` | | The IP address associated with this peer. |
-| pow_difficulty | u32 | | The Proof of Work (PoW) difficulty level required by this peer. |
-| pow_pattern | ```String``` | | The PoW pattern used by this peer. |
-| pow_prefix | ```String``` | | The PoW prefix used by this peer. |
-| data_size_max | ```i64``` | | The maximum data size allowed by this peer. |
-| timestamp_delay_max | ```u64``` | | The maximum delay (in timestamps) allowed by this peer. |
-| daily_hash_list | ```Vec``` | | A daily list of hashes associated with this peer. |
-| daily_sp_tx_mine_list | ```Vec``` | | A daily list of service provider transactions mined by this peer. |
-| daily_sp_tx_mine_reward_list | ```Vec``` | | A daily list of rewards for service provider transactions mined by this peer. |
+| Attribute Name | Type | Option | Description |
+|--------------------------------|-------------------|--------|-------------------------------------------------------------------------------|
+| `sp_address` | ```String``` | | The service provider's address associated with this peer. |
+| `domain` | ```String``` | | The domain associated with this peer. |
+| `ip_address` | ```String``` | | The IP address associated with this peer. |
+| `pow_difficulty` | ```u32``` | | The Proof of Work (PoW) difficulty level required by this peer. |
+| `pow_pattern` | ```String``` | | The PoW pattern used by this peer. |
+| `pow_prefix` | ```String``` | | The PoW prefix used by this peer. |
+| `data_size_max` | ```i64``` | | The maximum data size allowed by this peer. |
+| `timestamp_delay_max` | ```u64``` | | The maximum delay (in timestamps) allowed by this peer. |
+| `daily_hash_list` | ```Vec``` | | A daily list of hashes associated with this peer. |
+| `daily_sp_tx_mine_list` | ```Vec``` | | A daily list of service provider transactions mined by this peer. |
+| `daily_sp_tx_mine_reward_list` | ```Vec``` | | A daily list of rewards for service provider transactions mined by this peer. |
### 4.17. ItemPeerPrivateAttributeGroup
-ItemPeerPrivateAttributeGroup contains a private configuration ```String``` for a peer, keeping certain peer configurations confidential.
+`ItemPeerPrivateAttributeGroup` contains a private configuration ```String``` for a peer, keeping certain peer configurations confidential.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|-----------------------------------------------------------------|
-| config | ```String``` | | A private configuration ```String``` associated with this peer. |
+| `config` | ```String``` | | A private configuration ```String``` associated with this peer. |
### 4.18. ItemPeer
-ItemPeer combines basic item information with layers, public, and private attributes, fully detailing a peer within the system.
+`ItemPeer` combines basic item information with layers, public, and private attributes, fully detailing a peer within the system.
-| Attribute Name | Type | Option | Description |
-|-------------------------|-------------------------------|--------|---------------------------------------------------------------|
-| item | Item | | Représente les informations de base de l'item. |
-| layer_list | ```Vec``` | | Une liste des couches (layers) auxquelles ce pair appartient. |
-| public_attribute_group | ItemPeerPublicAttributeGroup | | Groupe d'attributs publics associés à ce pair. |
-| private_attribute_group | ItemPeerPrivateAttributeGroup | | Groupe d'attributs privés associés à ce pair. |
+| Attribute Name | Type | Option | Description |
+|---------------------------|-------------------------------------|--------|---------------------------------------------------------------|
+| `item` | ```Item``` | | Représente les informations de base de l'item. |
+| `layer_list` | ```Vec``` | | Une liste des couches (layers) auxquelles ce pair appartient. |
+| `public_attribute_group` | ```ItemPeerPublicAttributeGroup``` | | Groupe d'attributs publics associés à ce pair. |
+| `private_attribute_group` | ```ItemPeerPrivateAttributeGroup``` | | Groupe d'attributs privés associés à ce pair. |
### 4.19. ItemProcess
-ItemProcess associates an item with a process, including public attribute groups, to represent processes within the system comprehensively.
+`ItemProcess` associates an item with a process, including public attribute groups, to represent processes within the system comprehensively.
-| Attribute Name | Type | Option | Description |
-|-------------------------------------|---------------------------------|--------|----------------------------------------------------------|
-| item | Item | | Represents the item associated with this process. |
-| item_process_public_attribute_group | ItemProcessPublicAttributeGroup | | The public attribute group associated with this process. |
+| Attribute Name | Type | Option | Description |
+|---------------------------------------|---------------------------------------|--------|----------------------------------------------------------|
+| `item` | ```Item``` | | Represents the item associated with this process. |
+| `item_process_public_attribute_group` | ```ItemProcessPublicAttributeGroup``` | | The public attribute group associated with this process. |
### 4.20. ItemProcessPublicAttributeGroup
@@ -443,147 +443,149 @@ This struct details public attributes related to processes, like roles groups, t
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------------------------|
-| roles_group | RolesGroup | | Represents a group of roles associated with this process. |
+| `roles_group` | RolesGroup | | Represents a group of roles associated with this process. |
### 4.21. Item
-The Item struct serves as a foundational element, detailing the basic structure of an item with attributes like UUID, version, and type, central to item management in the system.
+The `Item` struct serves as a foundational element, detailing the basic structure of an item with attributes like UUID, version, and type, central to item management in the system.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------|--------------------------|--------|---------------------------------------------------------------------------|
-| uuid | ```String``` | | A unique identifier for the item. |
-| version | ```i64``` | | The version of the item. |
-| item_type | ```String``` | | The type of the item. `type` is a reserved keyword in Rust, renamed here. |
-| name | ```String``` | | The name of the item. |
-| pagination_number_per_request_pcd | u32 | | The pagination number per Portable Contract Document ( RequestPcd). |
-| metadata_contract_public | MetadataContractPublic | | Public metadata contract associated with the item. |
-| metadata_role_confidential | MetadataRoleConfidential | | Role-specific confidential metadata associated with the item. |
-| metadata_private | MetadataPrivate | | Private metadata associated with the item. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------|--------------------------------|--------|---------------------------------------------------------------------------|
+| `uuid` | ```String``` | | A unique identifier for the item. |
+| `version` | ```i64``` | | The version of the item. |
+| `item_type` | ```String``` | | The type of the item. `type` is a reserved keyword in Rust, renamed here. |
+| `name` | ```String``` | | The name of the item. |
+| `pagination_number_per_request_pcd` | ```u32``` | | The pagination number per Portable Contract Document ( RequestPcd). |
+| `metadata_contract_public` | ```MetadataContractPublic``` | | Public metadata contract associated with the item. |
+| `metadata_role_confidential` | ```MetadataRoleConfidential``` | | Role-specific confidential metadata associated with the item. |
+| `metadata_private` | ```MetadataPrivate``` | | Private metadata associated with the item. |
## 5. Encryption
### 5.1. KeyEncryption
-The KeyEncryption struct provides details about encryption keys, including the attribute it's for, the key itself, and the algorithm used, crucial for securing data within the system.
+The `KeyEncryption` struct provides details about encryption keys, including the attribute it's for, the key itself, and the algorithm used, crucial for securing data within the system.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|---------------------------------------------------------------|
-| attribute_name | ```String``` | Yes | An optional name of the attribute this encryption key is for. |
-| key | ```String``` | Yes | An optional encryption key. |
-| algorithm | ```String``` | Yes | An optional encryption algorithm used with this key. |
+| Attribute Name | Type | Option | Description |
+|------------------|--------------|--------|---------------------------------------------------------------|
+| `attribute_name` | ```String``` | Yes | An optional name of the attribute this encryption key is for. |
+| `key` | ```String``` | Yes | An optional encryption key. |
+| `algorithm` | ```String``` | Yes | An optional encryption algorithm used with this key. |
### 5.2. Aes256GcmIv96Bit
-This struct represents an encryption scheme using AES-256-GCM with a 96-bit initialization vector (IV), specifying the key details for robust data encryption.
+This struct represents an encryption scheme using `AES-256-GCM` with a 96-bit initialization vector (IV), specifying the key details for robust data encryption.
-| Attribute Name | Type | Option | Description |
-|----------------|-----------------------|--------|------------------------------------------------------------------------------|
-| key | GenericArray | | Represents an encryption key for the AES-256-GCM algorithm with a 96-bit IV. |
+| Attribute Name | Type | Option | Description |
+|----------------|-----------------------------|--------|------------------------------------------------------------------------------|
+| `key` | ```GenericArray``` | | Represents an encryption key for the AES-256-GCM algorithm with a 96-bit IV. |
## 6. Messages
### 6.1. Message
-Message encapsulates a client message, including an encrypted request and its hash, essential for secure and verifiable client-server communication.
+`Message` encapsulates a client message, including an encrypted request and its hash, essential for secure and verifiable client-server communication.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|------------------------------------------------------------------|
-| message | Message | | Represents a message, assuming `Message` is a predefined struct. |
-| request_enc | ```String``` | | The encrypted request content. |
+| Attribute Name | Type | Option | Description |
+|----------------|---------------|--------|------------------------------------------------------------------|
+| `message` | ```Message``` | | Represents a message, assuming `Message` is a predefined struct. |
+| `request_enc` | ```String``` | | The encrypted request content. |
### 6.2. MessageConnect
-The MessageConnect struct is designed to handle connection-related messages, facilitating the establishment of connections within the system.
+The `MessageConnect` struct is designed to handle connection-related messages, facilitating the establishment of connections within the system.
-| Attribute Name | Type | Option | Description |
-|----------------|---------|--------|------------------------------------------------------------------|
-| message | Message | | Represents a message, assuming `Message` is a predefined struct. |
+| Attribute Name | Type | Option | Description |
+|----------------|---------------|--------|------------------------------------------------------------------|
+| message | ```Message``` | | Represents a message, assuming `Message` is a predefined struct. |
### 6.3. MessageGeneric
-Message provides a general structure for messages, including shared peers and processes, and details like PoW challenges, supporting diverse communication needs
+`Message` provides a general structure for messages, including shared peers and processes, and details like PoW challenges, supporting diverse communication needs
-| Attribute Name | Type | Option | Description |
-|----------------------|--------------------|--------|------------------------------------------------------------------------------------|
-| shared_peer_list | Vec | | A list of shared peers, assuming `SharedPeer` is a predefined struct. |
-| shared_process_list | Vec | | A list of shared processes, assuming `SharedProcess` is a predefined struct. |
-| faucet_sp_address | ```String``` | | The service provider address for a faucet. |
-| pow | Pow | | Represents a Proof of Work (PoW) challenge, assuming `Pow` is a predefined struct. |
-| raw_transaction_list | ```Vec``` | Yes | Transaction to broadcast |
+| Attribute Name | Type | Option | Description |
+|------------------------|--------------------------|--------|------------------------------------------------------------------------------------|
+| `shared_peer_list` | ```Vec``` | | A list of shared peers, assuming `SharedPeer` is a predefined struct. |
+| `shared_process_list` | ```Vec``` | | A list of shared processes, assuming `SharedProcess` is a predefined struct. |
+| `faucet_sp_address` | ```String``` | | The service provider address for a faucet. |
+| `pow` | ```Pow``` | | Represents a Proof of Work (PoW) challenge, assuming `Pow` is a predefined struct. |
+| `raw_transaction_list` | ```Vec``` | Yes | Transaction to broadcast |
### 6.4. Pow
-The Pow struct outlines a Proof of Work challenge, including data hash, timestamp, and nonce, to ensure computational effort for security purposes.
+The `Pow` struct outlines a Proof of Work challenge, including data hash, timestamp, and nonce, to ensure computational effort for security purposes.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|---------------------------------------------------------|
-| data_hash | ```String``` | | The hash of the data for which the PoW is being solved. |
-| timestamp | ```u64``` | Yes | An optional timestamp associated with the PoW solution. |
-| nonce | ```u64``` | Yes | An optional nonce value used in the PoW calculation. |
-| pattern | ```String``` | | The pattern that the PoW solution must match. |
-| difficulty | usize | | The difficulty level of the PoW challenge. |
+| `data_hash` | ```String``` | | The hash of the data for which the PoW is being solved. |
+| `timestamp` | ```u64``` | Yes | An optional timestamp associated with the PoW solution. |
+| `nonce` | ```u64``` | Yes | An optional nonce value used in the PoW calculation. |
+| `pattern` | ```String``` | | The pattern that the PoW solution must match. |
+| `difficulty` | ```usize``` | | The difficulty level of the PoW challenge. |
### 6.5. SharedProcess
-SharedProcess identifies a shared process within the system, aiding in the management and coordination of collaborative processes.
+`SharedProcess` identifies a shared process within the system, aiding in the management and coordination of collaborative processes.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|-------------------------------------------------------------------------------------------------------------------------|
-| process_id | ```String``` | | The identifier for the shared process, facilitating collaboration and management of shared resources within the system. |
+| Attribute Name | Type | Option | Description |
+|--------------------------------|-----------------|--------|---------------------------------------------|
+| `hash` | `String` | | The unique hash identifier for the process. |
+| `key` | `KeyEncryption` | | The encryption key used for the process. |
+| `role_process_sp_address_list` | `Vec` | | A list of SP addresses related to the role. |
### 6.6. SharedPeer
-SharedPeer specifies a peer within the network, playing a key role in distributed information sharing and communication.
+`SharedPeer` specifies a peer within the network, playing a key role in distributed information sharing and communication.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|-------------------------------------------------------------------------------|
-| domain | ```String``` | | The domain associated with the shared peer. |
-| address_ip | ```String``` | | The IP address of the shared peer. |
-| relay | Relay | | Represents a relay node in the network. |
-| l1_node | L1Node | | Represents a level 1 (L1) node in the network. |
-| l1_miner | L1Miner | | Represents a level 1 (L1) miner in the network. |
-| l2_node | L2Node | | Represents a level 2 (L2) node in the network. |
-| l2_certif | L2Certif | | Represents a level 2 (L2) certification authority or function in the network. |
+| Attribute Name | Type | Option | Description |
+|----------------|----------------|--------|-------------------------------------------------------------------------------|
+| `domain` | ```String``` | | The domain associated with the shared peer. |
+| `address_ip` | ```String``` | | The IP address of the shared peer. |
+| `relay` | ```Relay``` | | Represents a relay node in the network. |
+| `l1_node` | ```L1Node``` | | Represents a level 1 (L1) node in the network. |
+| `l1_miner` | ```L1Miner``` | | Represents a level 1 (L1) miner in the network. |
+| `l2_node` | ```L2Node``` | | Represents a level 2 (L2) node in the network. |
+| `l2_certif` | ```L2Certif``` | | Represents a level 2 (L2) certification authority or function in the network. |
## 7. Relay
-Represents a relay in the network, specifying its address and port, data handling capacity, and Proof of Work (PoW) requirements.
+Represents a `Relay` in the network, specifying its address and port, data handling capacity, and Proof of Work (PoW) requirements.
-| Attribute Name | Type | Option | Description |
-|-------------------|--------------|--------|-------------------------------------------------------------------|
-| address_port | u16 | | The port address of the relay. |
-| data_max_size | usize | | Maximum size of data the relay can handle. |
-| pow_difficulty | u32 | | The difficulty level for the Proof of Work required by the relay. |
-| pow_pattern | ```String``` | | The pattern used for the Proof of Work. |
-| pow_prefix | ```String``` | | The prefix used for the Proof of Work. |
-| pow_timeout | u32 | | Timeout for pow |
-| faucet_sp_address | u32 | | Faucet address |
+| Attribute Name | Type | Option | Description |
+|---------------------|--------------|--------|-------------------------------------------------------------------|
+| `ddress_port` | ```u16``` | | The port address of the relay. |
+| `data_max_size` | ```usize``` | | Maximum size of data the relay can handle. |
+| `pow_difficulty` | ```u32``` | | The difficulty level for the Proof of Work required by the relay. |
+| `pow_pattern` | ```String``` | | The pattern used for the Proof of Work. |
+| `pow_prefix` | ```String``` | | The prefix used for the Proof of Work. |
+| `pow_timeout` | ```u32``` | | Timeout for pow |
+| `faucet_sp_address` | ```u32``` | | Faucet address |
### 7.1. L1Node
-The L1Node struct details a Level 1 blockchain node, including its network, IP address, and status, integral to blockchain operations and interactions.
+The `L1Node` struct details a Level 1 blockchain node, including its network, IP address, and status, integral to blockchain operations and interactions.
-| Attribute Name | Type | Option | Description |
-|----------------|---------------|--------|--------------------------------------------------------------|
-| id | u32 | | Unique identifier for the L1 node. |
-| network | ```String``` | | The blockchain network the L1 node is part of. |
-| ip_address | ```String``` | | IP address of the L1 node. |
-| port | u16 | | Port number the L1 node listens on. |
-| status | ```String``` | | Current status of the L1 node (e.g., active, inactive). |
-| last_checked | DateTime | | Timestamp of the last health check performed on the L1 node. |
+| Attribute Name | Type | Option | Description |
+|----------------|---------------------|--------|--------------------------------------------------------------|
+| `id` | ```u32``` | | Unique identifier for the L1 node. |
+| `network` | ```String``` | | The blockchain network the L1 node is part of. |
+| `ip_address` | ```String``` | | IP address of the L1 node. |
+| `port` | ```u16``` | | Port number the L1 node listens on. |
+| `status` | ```String``` | | Current status of the L1 node (e.g., active, inactive). |
+| `last_checked` | ```DateTime``` | | Timestamp of the last health check performed on the L1 node. |
### 7.2. L1Miner
-L1Miner describes a miner on a Level 1 blockchain, detailing its network, mining power, and status, crucial for understanding blockchain mining dynamics.
+`L1Miner` describes a miner on a Level 1 blockchain, detailing its network, mining power, and status, crucial for understanding blockchain mining dynamics.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|----------------------------------------------------------|
-| id | u32 | | Unique identifier for the L1 miner. |
-| network | ```String``` | | The blockchain network the L1 miner is part of. |
-| ip_address | ```String``` | | IP address of the L1 miner. |
-| port | u16 | | Port number the L1 miner listens on. |
-| status | ```String``` | | Current status of the L1 miner (e.g., active, inactive). |
-| mining_power | f32 | | The mining power of the L1 miner in hashes per second. |
+| `id` | ```u32``` | | Unique identifier for the L1 miner. |
+| `network` | ```String``` | | The blockchain network the L1 miner is part of. |
+| `ip_address` | ```String``` | | IP address of the L1 miner. |
+| `port` | ```u16``` | | Port number the L1 miner listens on. |
+| `status` | ```String``` | | Current status of the L1 miner (e.g., active, inactive). |
+| `mining_power` | ```u16``` | | The mining power of the L1 miner in hashes per second. |
### 7.3. L2Node
@@ -591,177 +593,177 @@ This struct represents a Level 2 (Layer 2) blockchain node, focusing on scalabil
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|---------------------------------------------------------|
-| id | u32 | | Unique identifier for the L2 node. |
-| network | ```String``` | | The blockchain network the L2 node is part of. |
-| ip_address | ```String``` | | IP address of the L2 node. |
-| port | u16 | | Port number the L2 node listens on. |
-| status | ```String``` | | Current status of the L2 node (e.g., active, inactive). |
-| layer | ```String``` | | Indicates the layer (L2) the node operates at. |
+| `id` | ```u32``` | | Unique identifier for the L2 node. |
+| `network` | ```String``` | | The blockchain network the L2 node is part of. |
+| `ip_address` | ```String``` | | IP address of the L2 node. |
+| `port` | ```u16``` | | Port number the L2 node listens on. |
+| `status` | ```String``` | | Current status of the L2 node (e.g., active, inactive). |
+| `layer` | ```String``` | | Indicates the layer (L2) the node operates at. |
### 7.4. L2Certif
-L2Certif specifies a Layer 2 certification authority, including its network and certification type, vital for managing certifications on Layer 2 solutions.
+`L2Certif` specifies a Layer 2 certification authority, including its network and certification type, vital for managing certifications on Layer 2 solutions.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|----------------------------------------------------------------------------|
-| id | u32 | | Unique identifier for the L2 certification authority. |
-| network | ```String``` | | The blockchain network the L2 certif is part of. |
-| ip_address | ```String``` | | IP address of the L2 certification authority. |
-| port | u16 | | Port number the L2 certification authority listens on. |
-| status | ```String``` | | Current status of the L2 certification authority (e.g., active, inactive). |
-| certif_type | ```String``` | | Type of certification or service provided by the L2 certif. |
+| `id` | ```u32``` | | Unique identifier for the L2 certification authority. |
+| `network` | ```String``` | | The blockchain network the L2 certif is part of. |
+| `ip_address` | ```String``` | | IP address of the L2 certification authority. |
+| `port` | ```u16``` | | Port number the L2 certification authority listens on. |
+| `status` | ```String``` | | Current status of the L2 certification authority (e.g., active, inactive). |
+| `certif_type` | ```String``` | | Type of certification or service provided by the L2 certif. |
## 8. Metadata
-MetaDataa aggregates various metadata types, including tags, zones, and key lists, offering a comprehensive view of metadata for diverse applications.
+`MetaData` aggregates various metadata types, including tags, zones, and key lists, offering a comprehensive view of metadata for diverse applications.
-| Attribute Name | Type | Option | Description |
-|----------------------|--------------------|--------|----------------------------------------------------------------|
-| tag_list | ```Vec``` | | A list of tags associated with the metadata. |
-| zone_list | ```Vec``` | | A list of zones associated with the metadata. |
-| label_list | ```Vec``` | | A list of labels associated with the metadata. |
-| ref_list | ```Vec``` | | A list of references associated with the metadata. |
-| data_list | ```Vec``` | | A list of data entries associated with the metadata. |
-| amount | Amount | | An amount associated with the metadata. |
-| number | Number | | A number associated with the metadata. |
-| render_template_list | ```Vec``` | | A list of render templates associated with the metadata. |
-| legal_text_list | ```Vec``` | | A list of legal texts associated with the metadata. |
-| key_list | Vec | | A list of key encryption methods associated with the metadata. |
+| Attribute Name | Type | Option | Description |
+|------------------------|--------------------------|--------|----------------------------------------------------------------|
+| `tag_list` | ```Vec``` | | A list of tags associated with the metadata. |
+| `zone_list` | ```Vec``` | | A list of zones associated with the metadata. |
+| `label_list` | ```Vec``` | | A list of labels associated with the metadata. |
+| `ref_list` | ```Vec``` | | A list of references associated with the metadata. |
+| `data_list` | ```Vec``` | | A list of data entries associated with the metadata. |
+| `amount` | ```Amount``` | | An amount associated with the metadata. |
+| `number` | ```Number``` | | A number associated with the metadata. |
+| `render_template_list` | ```Vec``` | | A list of render templates associated with the metadata. |
+| `legal_text_list` | ```Vec``` | | A list of legal texts associated with the metadata. |
+| `key_list` | ```Vec``` | | A list of key encryption methods associated with the metadata. |
### 8.1. MetadataContractPublic
-The MetadataContractPublic struct encapsulates public metadata for contracts, providing transparency and accessibility of contract-related information.
+The `MetadataContractPublic` struct encapsulates public metadata for contracts, providing transparency and accessibility of contract-related information.
-| Attribute Name | Type | Option | Description |
-|----------------|----------|--------|------------------------------------------------------------|
-| meta_data | MetaData | | Represents the public metadata associated with a contract. |
+| Attribute Name | Type | Option | Description |
+|----------------|----------------|--------|------------------------------------------------------------|
+| `meta_data` | ```MetaData``` | | Represents the public metadata associated with a contract. |
### 8.2. MetadataPrivate
-MetadataPrivate holds private metadata, ensuring the confidentiality of sensitive information associated with entities or contracts.
+`MetadataPrivate` holds private metadata, ensuring the confidentiality of sensitive information associated with entities or contracts.
-| Attribute Name | Type | Option | Description |
-|----------------|----------|--------|------------------------------------------------------------|
-| meta_data | MetaData | | Represents the private metadata associated with an entity. |
+| Attribute Name | Type | Option | Description |
+|----------------|----------------|--------|------------------------------------------------------------|
+| `meta_data` | ```MetaData``` | | Represents the private metadata associated with an entity. |
### 8.3. MetadataRoleConfidential
This struct contains role-specific confidential metadata, balancing the need for privacy with role-based access and transparency.
-| Attribute Name | Type | Option | Description |
-|----------------|----------|--------|-------------------------------------------------------------------------------|
-| meta_data | MetaData | | Represents the role-specific confidential metadata associated with an entity. |
+| Attribute Name | Type | Option | Description |
+|----------------|----------------|--------|-------------------------------------------------------------------------------|
+| `meta_data` | ```MetaData``` | | Represents the role-specific confidential metadata associated with an entity. |
### 8.4. Amount
-The Amount struct details financial amounts, including its timestamp, unit, and changes, facilitating precise financial transactions and records.
+The `Amount` struct details financial amounts, including its timestamp, unit, and changes, facilitating precise financial transactions and records.
-| Attribute Name | Type | Option | Description |
-|--------------------|-------------------|--------|----------------------------------------------------------------------------------|
-| timestamp | ```u64``` | | A timestamp associated with the amount. |
-| change_source_list | ```Vec``` | | A list of sources for changes to the amount. |
-| amount_cent | ```i64``` | | The amount in cents, allowing for precise financial transactions. |
-| amount_unit | ```String``` | | The unit of the amount, such as "USD", "EUR", etc. |
-| amount_unit_ref | ```String``` | | A reference to an external unit system, providing context for the `amount_unit`. |
+| Attribute Name | Type | Option | Description |
+|----------------------|-------------------|--------|----------------------------------------------------------------------------------|
+| `timestamp` | ```u64``` | | A timestamp associated with the amount. |
+| `change_source_list` | ```Vec``` | | A list of sources for changes to the amount. |
+| `amount_cent` | ```i64``` | | The amount in cents, allowing for precise financial transactions. |
+| `amount_unit` | ```String``` | | The unit of the amount, such as "USD", "EUR", etc. |
+| `amount_unit_ref` | ```String``` | | A reference to an external unit system, providing context for the `amount_unit`. |
### 8.5. Number
-Number provides a numeric value and its unit, supporting a wide range of quantitative representations in system operations.
+`Number` provides a numeric value and its unit, supporting a wide range of quantitative representations in system operations.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|-----------------------------------------------------------------|
-| fixed_state | bool | | Indicates whether the number is in a fixed state or can change. |
-| number | ```i32``` | | The numeric value. |
-| number_unit | ```String``` | | The unit of measurement for the number, if applicable. |
+| Attribute Name | Type | Option | Description |
+|----------------|---------------|--------|-----------------------------------------------------------------|
+| `fixed_state` | ```boolean``` | | Indicates whether the number is in a fixed state or can change. |
+| `number` | ```i32``` | | The numeric value. |
+| `number_unit` | ```String``` | | The unit of measurement for the number, if applicable. |
## 9. Request
Defines a general request structure within the system, encapsulating details about the requested item, its type, version, and associated process and document references.
-| Attribute Name | Type | Option | Description |
-|---------------------------|--------------|--------|--------------------------------------------------------------------------------------------|
-| item_name | ```String``` | Yes | Optionally specifies the name of the item being requested. |
-| request_type | ```String``` | | Specifies the type of request. `type` is a reserved keyword in Rust, hence `request_type`. |
-| version | ```i64``` | | Specifies the version of the item or process being requested. |
-| process_hash | ```String``` | | The hash of the process associated with the request. |
-| RequestPcd_reference_hash | ```String``` | Yes | Optionally specifies the hash of RequestPcd related to the request. |
-| RequestPcd_origin_hash | ```String``` | Yes | Optional hash of the originating RequestPcd. |
-| RequestPrd_reference_hash | ```String``` | Yes | Optionally specifies the hash of RequestPrd related to the request. |
-| RequestPrd_origin_hash | ```String``` | Yes | Optional hash of the originating RequestPrd. |
-| item_reference_hash | ```String``` | Yes | Optionally specifies the hash of the item related to the request. |
+| Attribute Name | Type | Option | Description |
+|------------------------------|--------------|--------|--------------------------------------------------------------------------------------------|
+| `item_name` | ```String``` | Yes | Optionally specifies the name of the item being requested. |
+| `request_type` | ```String``` | | Specifies the type of request. `type` is a reserved keyword in Rust, hence `request_type`. |
+| `version` | ```i64``` | | Specifies the version of the item or process being requested. |
+| `process_hash` | ```String``` | | The hash of the process associated with the request. |
+| `request_pcd_reference_hash` | ```String``` | Yes | Optionally specifies the hash of RequestPcd related to the request. |
+| `request_pcd_origin_hash` | ```String``` | Yes | Optional hash of the originating RequestPcd. |
+| `request_prd_reference_hash` | ```String``` | Yes | Optionally specifies the hash of RequestPrd related to the request. |
+| `request_prd_origin_hash` | ```String``` | Yes | Optional hash of the originating RequestPrd. |
+| `item_reference_hash` | ```String``` | Yes | Optionally specifies the hash of the item related to the request. |
## 10. RequestPcd
-The RequestPcd struct integrates a request with a list of generic encrypted items and pagination details, facilitating the handling of encrypted RequestPcd requests within the system.
+The `request_pcd` struct integrates a request with a list of generic encrypted items and pagination details, facilitating the handling of encrypted RequestPcd requests within the system.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------------------------|--------|-------------------------------------------------------------------|
-| request | Request | | The request, assuming `Request` is a predefined struct. |
-| item_list | Vec< RequestPcdItemGenericEnc> | | List of generic encrypted items. |
-| pagination | Pagination | Yes | Pagination details, assuming `Pagination` is a predefined struct. |
+| Attribute Name | Type | Option | Description |
+|----------------|--------------------------------------|--------|-------------------------------------------------------------------|
+| `request` | ```Request``` | | The request, assuming `Request` is a predefined struct. |
+| `item_list` | ```Vec< RequestPcdItemGenericEnc>``` | | List of generic encrypted items. |
+| `pagination` | ```Pagination``` | Yes | Pagination details, assuming `Pagination` is a predefined struct. |
### 10.1. Pagination
-The Pagination struct is essential for managing large datasets, detailing the pagination strategy with start index, number of items, and page index.
+The `Pagination` struct is essential for managing large datasets, detailing the pagination strategy with start index, number of items, and page index.
-| Attribute Name | Type | Option | Description |
-|----------------|-------|--------|--------------------------------------------------|
-| start | usize | | L'indice de départ pour la pagination. |
-| number | usize | | Le nombre d'éléments par page. |
-| page_index | usize | | L'indice de la page actuelle pour la pagination. |
+| Attribute Name | Type | Option | Description |
+|----------------|-------------|--------|--------------------------------------------------|
+| `start` | ```usize``` | | L'indice de départ pour la pagination. |
+| `number` | ```usize``` | | Le nombre d'éléments par page. |
+| `page_index` | ```usize``` | | L'indice de la page actuelle pour la pagination. |
### 10.2. RequestPcdItemEncAttributePublic
This struct outlines public encrypted attributes for RequestPcd items, ensuring the secure transmission of public attribute data.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|---------------------------------------------------|
-| attribute_name | ```String``` | | The name of the attribute. |
-| data_enc | ```String``` | | The encrypted data associated with the attribute. |
+| Attribute Name | Type | Option | Description |
+|------------------|--------------|--------|---------------------------------------------------|
+| `attribute_name` | ```String``` | | The name of the attribute. |
+| `data_enc` | ```String``` | | The encrypted data associated with the attribute. |
### 10.3. RequestPcdItemEncAttributeRoleConfidential
- RequestPcdItemEncAttributeRoleConfidential deals with role-specific confidential encrypted attributes, securing sensitive data while allowing role-based access.
+ `request_pcdItemEncAttributeRoleConfidential` deals with role-specific confidential encrypted attributes, securing sensitive data while allowing role-based access.
-| Attribute Name | Type | Option | Description |
-|----------------|---------------|--------|---------------------------------------------------|
-| attribute_name | ```String``` | | The name of the attribute. |
-| data_enc | ```String``` | Yes | The encrypted data associated with the attribute. |
-| key | KeyEncryption | Yes | The key used for encrypting the data. |
+| Attribute Name | Type | Option | Description |
+|------------------|---------------------|--------|---------------------------------------------------|
+| `attribute_name` | ```String``` | | The name of the attribute. |
+| `data_enc` | ```String``` | Yes | The encrypted data associated with the attribute. |
+| `key` | ```KeyEncryption``` | Yes | The key used for encrypting the data. |
### 10.4. RequestPcdItemEncAttributePrivate
-It specifies private encrypted attributes for RequestPcd items, protecting the most sensitive information with encryption.
+It specifies private encrypted attributes for `request_pcd` items, protecting the most sensitive information with encryption.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|---------------------------------------------------------|
-| attribute_name | ```String``` | | The name of the attribute. |
-| data_enc | ```String``` | Yes | The encrypted data associated with this attribute name. |
+| Attribute Name | Type | Option | Description |
+|------------------|--------------|--------|---------------------------------------------------------|
+| `attribute_name` | ```String``` | | The name of the attribute. |
+| `data_enc` | ```String``` | Yes | The encrypted data associated with this attribute name. |
### 10.5. RequestPcdItemGenericEnc
- RequestPcdItemGenericEnc encompasses encrypted items with optional lists of public, role-confidential, and private encrypted attributes, offering a flexible encryption model for diverse data types.
+ `request_pcdItemGenericEnc` encompasses encrypted items with optional lists of public, role-confidential, and private encrypted attributes, offering a flexible encryption model for diverse data types.
-| Attribute Name | Type | Option | Description |
-|------------------------------------------------------|--------------------------------------------------|--------|----------------------------------------------------------|
-| item_enc | RequestPcdItemEnc | | The encrypted item. |
-| RequestPcd_item_enc_attribute_public_list | Vec< RequestPcdItemEncAttributePublic> | Yes | Optional list of public encrypted attributes. |
-| RequestPcd_item_enc_attribute_role_confidential_list | Vec< RequestPcdItemEncAttributeRoleConfidential> | Yes | Optional list of role-confidential encrypted attributes. |
-| RequestPcd_item_enc_attribute_private_list | Vec< RequestPcdItemEncAttributePrivate> | Yes | Optional list of private encrypted attributes. |
+| Attribute Name | Type | Option | Description |
+|---------------------------------------------------------|--------------------------------------------------------|--------|----------------------------------------------------------|
+| `item_enc` | ```RequestPcdItemEnc``` | | The encrypted item. |
+| `request_pcd_item_enc_attribute_public_list` | ```Vec< RequestPcdItemEncAttributePublic>``` | Yes | Optional list of public encrypted attributes. |
+| `request_pcd_item_enc_attribute_role_confidential_list` | ```Vec< RequestPcdItemEncAttributeRoleConfidential>``` | Yes | Optional list of role-confidential encrypted attributes. |
+| `request_pcd_item_enc_attribute_private_list` | ```Vec< RequestPcdItemEncAttributePrivate>``` | Yes | Optional list of private encrypted attributes. |
### 10.6. RequestPcdItemEnc
-The RequestPcdItemEnc struct encapsulates encrypted RequestPcd items, detailing the version, type, and name of the item, alongside encrypted attributes segregated into public, role-confidential, and private categories, ensuring comprehensive encryption coverage.
+The `request_pcdItemEnc` struct encapsulates encrypted RequestPcd items, detailing the version, type, and name of the item, alongside encrypted attributes segregated into public, role-confidential, and private categories, ensuring comprehensive encryption coverage.
-| Attribute Name | Type | Option | Description |
-|------------------------------------------------------|--------------------------------------------------|--------|-------------------------------------------------|
-| version | ```i64``` | | The version of the item. |
-| item_type | ```String``` | | The type of the item. |
-| name | ```String``` | | The name of the item. |
-| pagination_number_per_request_pcd | u32 | | The pagination number per RequestPcd. |
-| RequestPcd_item_enc_attribute_public_list | Vec< RequestPcdItemEncAttributePublic> | | List of public encrypted attributes. |
-| RequestPcd_item_enc_attribute_role_confidential_list | Vec< RequestPcdItemEncAttributeRoleConfidential> | | List of role-confidential encrypted attributes. |
-| RequestPcd_item_enc_attribute_private_list | Vec< RequestPcdItemEncAttributePrivate> | | List of private encrypted attributes. |
+| Attribute Name | Type | Option | Description |
+|---------------------------------------------------------|--------------------------------------------------------|--------|-------------------------------------------------|
+| `version` | ```i64``` | | The version of the item. |
+| `item_type` | ```String``` | | The type of the item. |
+| `name` | ```String``` | | The name of the item. |
+| `pagination_number_per_request_pcd` | ```u32``` | | The pagination number per RequestPcd. |
+| `request_pcd_item_enc_attribute_public_list` | ```Vec< RequestPcdItemEncAttributePublic>``` | | List of public encrypted attributes. |
+| `request_pcd_item_enc_attribute_role_confidential_list` | ```Vec< RequestPcdItemEncAttributeRoleConfidential>``` | | List of role-confidential encrypted attributes. |
+| `request_pcd_item_enc_attribute_private_list` | ```Vec< RequestPcdItemEncAttributePrivate>``` | | List of private encrypted attributes. |
## 11. RequestPrd
@@ -769,207 +771,214 @@ Encapsulates a detailed request within the system, focusing on the interaction w
| Attribute Name | Type | Option | Description |
|-------------------------------------------------------------|-------------------|--------|-----------------------------------------------------------------------------------------------|
-| request | Request | | A predefined struct representing the basic request information. |
-| sig_value | ```String``` | | Valeur associée à la signature |
+| `request` | ```Request``` | | A predefined struct representing the basic request information. |
+| `sig_value` | ```String``` | | Valeur associée à la signature |
| RequestPcd_keys_role_confidential_list_enc_by_shared_secret | ```String``` | | Encrypted list of RequestPcd keys for role-confidential data, encrypted with a shared secret. |
-| message_public | ```String``` | Yes | Optionally specifies a public message associated with the request. |
-| message_confidential | ```String``` | Yes | Optionally specifies a confidential message associated with the request. |
-| message_private | ```String``` | Yes | Optionally specifies a private message associated with the request. |
-| sp_address_to | ```String``` | | The service provider address to which the request is directed. |
-| sp_address_from | ```String``` | | The service provider address from which the request originates. |
-| sp_address_reply | ```String``` | | The service provider address for replies to the request. |
-| timestamp_declared | ```u64``` | | A Unix timestamp indicating when the request was declared. |
-| role_name_from | ```String``` | | The name of the role from which the request originates. |
-| role_name_to | ```String``` | | The name of the role to which the request is directed. |
-| payment_method_enc_by_shared_secret | ```String``` | Yes | Encrypted payment method, encrypted with a shared secret. |
-| deposit_method_enc_by_shared_secret | ```String``` | Yes | Encrypted deposit method, encrypted with a shared secret. |
-| commitment_method_enc_by_shared_secret | ```String``` | Yes | Encrypted commitment method, encrypted with a shared secret. |
-| payment_request_pcd_hash_list_enc_by_shared_secret | ```Vec``` | Yes | A list of hashes for payment-related RequestPcds. |
-| cap_request_pcd_hash_list_enc_by_shared_secret | ```Vec``` | Yes | A list of hashes for capability-related RequestPcds. |
-| deposit_request_pcd_hash_list_enc_by_shared_secret | ```Vec``` | Yes | A list of hashes for deposit-related RequestPcds. |
-| commitment_request_pcd_hash_list_enc_by_shared_secret | ```Vec``` | Yes | A list of hashes for commitment-related RequestPcds. |
-| ask_payment_method_enc_by_shared_secret | ```String``` | Yes | The requested payment method. |
-| ask_deposit_method_enc_by_shared_secret | ```String``` | Yes | The requested deposit method. |
-| ask_commitment_method_enc_by_shared_secret | ```String``` | Yes | The requested commitment method. |
-| certif_key_enc_by_shared_secret | ```String``` | Yes | Encrypted certification key, encrypted with a shared secret. |
-| device_footprint_enc_by_sp_shared_secret | ```String``` | | The device footprint encrypted by a service provider's shared secret. |
+| `message_public` | ```String``` | Yes | Optionally specifies a public message associated with the request. |
+| `message_confidential` | ```String``` | Yes | Optionally specifies a confidential message associated with the request. |
+| `message_private` | ```String``` | Yes | Optionally specifies a private message associated with the request. |
+| `sp_address_to` | ```String``` | | The service provider address to which the request is directed. |
+| `sp_address_from` | ```String``` | | The service provider address from which the request originates. |
+| `sp_address_reply` | ```String``` | | The service provider address for replies to the request. |
+| `timestamp_declared` | ```u64``` | | A Unix timestamp indicating when the request was declared. |
+| `role_name_from` | ```String``` | | The name of the role from which the request originates. |
+| `role_name_to` | ```String``` | | The name of the role to which the request is directed. |
+| `payment_method_enc_by_shared_secret` | ```String``` | Yes | Encrypted payment method, encrypted with a shared secret. |
+| `deposit_method_enc_by_shared_secret` | ```String``` | Yes | Encrypted deposit method, encrypted with a shared secret. |
+| `commitment_method_enc_by_shared_secret` | ```String``` | Yes | Encrypted commitment method, encrypted with a shared secret. |
+| `payment_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | A list of hashes for payment-related RequestPcds. |
+| `cap_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | A list of hashes for capability-related RequestPcds. |
+| `deposit_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | A list of hashes for deposit-related RequestPcds. |
+| `commitment_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | A list of hashes for commitment-related RequestPcds. |
+| `ask_payment_method_enc_by_shared_secret` | ```String``` | Yes | The requested payment method. |
+| `ask_deposit_method_enc_by_shared_secret` | ```String``` | Yes | The requested deposit method. |
+| `ask_commitment_method_enc_by_shared_secret` | ```String``` | Yes | The requested commitment method. |
+| `certif_key_enc_by_shared_secret` | ```String``` | Yes | Encrypted certification key, encrypted with a shared secret. |
+| `device_footprint_enc_by_sp_shared_secret` | ```String``` | | The device footprint encrypted by a service provider's shared secret. |
### 11.1. RequestPrdResponse
-RequestPrd and its variations (Confirm, KeyBackup, KeyHello, List, Message, Response, Update) represent different aspects and actions related to Portable Request Documents ( RequestPrd), covering everything from confirmation to updates, key management, and messaging, essential for managing and processing RequestPrds securely and efficiently.
+`request_prd` and its variations (Confirm, KeyBackup, KeyHello, List, Message, Response, Update) represent different aspects and actions related to Portable Request Documents ( RequestPrd), covering everything from confirmation to updates, key management, and messaging, essential for managing and processing RequestPrds securely and efficiently.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------------|--------------------|--------|-----------------------------------------------------------------------------|
-| RequestPrd | ```RequestPrd``` | | Represents a Request. |
-| sig_value | ```String``` | | The signature value for the response. |
-| RequestPcd_origin_hash | ```String``` | Yes | Optional hash of the originating RequestPcd. |
-| shared_secret_key | ```eyEncryption``` | Yes | Optional encryption key used for shared secrets. |
-| RequestPcd_new_version_hash | ```String``` | | The hash of the new version of the RequestPcd. |
-| part_1_enc_hash_enc_by_sp_shared_secret | ```String``` | Yes | The first part of the hash encrypted by a service provider's shared secret. |
-| shard_enc_by_sp_shared_secret | ```String``` | Yes | The shard encrypted by a service provider's shared secret. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------------|--------------------|--------|-----------------------------------------------------------------------------|
+| `request_prd` | ```request_prd``` | | Represents a Request. |
+| `sig_value` | ```String``` | | The signature value for the response. |
+| `request_pcd_origin_hash` | ```String``` | Yes | Optional hash of the originating RequestPcd. |
+| `shared_secret_key` | ```eyEncryption``` | Yes | Optional encryption key used for shared secrets. |
+| `request_pcd_new_version_hash` | ```String``` | | The hash of the new version of the RequestPcd. |
+| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | Yes | The first part of the hash encrypted by a service provider's shared secret. |
+| `shard_enc_by_sp_shared_secret` | ```String``` | Yes | The shard encrypted by a service provider's shared secret. |
### 11.2. RequestPrdConfirm
-The RequestPrdConfirm struct is designed for confirming actions or requests within the system, utilizing a Portable Request Document ( RequestPrd) alongside an encrypted confirmation code, ensuring secure acknowledgment of operations.
+The `request_prdConfirm` struct is designed for confirming actions or requests within the system, utilizing a Portable Request Document ( RequestPrd) alongside an encrypted confirmation code, ensuring secure acknowledgment of operations.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------|------------------|--------|-----------------------------------------------------|
-| RequestPrd | ```RequestPrd``` | | The RequestPrd (Portable Request Document) request. |
-| code_confirm_enc_by_shared_secret | ```String``` | Yes | The confirmation code encrypted by a shared secret. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------|-------------------|--------|-----------------------------------------------------|
+| `request_prd` | ```request_prd``` | | The RequestPrd (Portable Request Document) request. |
+| `code_confirm_enc_by_shared_secret` | ```String``` | Yes | The confirmation code encrypted by a shared secret. |
### 11.3. RequestPrdKeyBackup
-RequestPrdKeyBackup focuses on backup functionalities for RequestPrd keys, incorporating device footprint and shard information, encrypted for security, facilitating the safe backup and recovery of crucial cryptographic keys.
+`request_prdKeyBackup` focuses on backup functionalities for RequestPrd keys, incorporating device footprint and shard information, encrypted for security, facilitating the safe backup and recovery of crucial cryptographic keys.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------------|------------------|--------|-----------------------------------------------------------------------------|
-| RequestPrd | ```RequestPrd``` | | The RequestPrd (Portable Request Document) request. |
-| part_1_enc_hash_enc_by_sp_shared_secret | ```String``` | | The first part of the hash encrypted by a service provider's shared secret. |
-| shard_enc_by_sp_shared_secret | ```String``` | | The shard encrypted by a service provider's shared secret. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------------|-------------------|--------|-----------------------------------------------------------------------------|
+| `request_prd` | ```request_prd``` | | The RequestPrd (Portable Request Document) request. |
+| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | | The first part of the hash encrypted by a service provider's shared secret. |
+| `shard_enc_by_sp_shared_secret` | ```String``` | | The shard encrypted by a service provider's shared secret. |
### 11.4. RequestPrdKeyHello
-The RequestPrdKeyHello struct is employed for initiating cryptographic communications, specifically for sharing initial key information or for cryptographic introductions between entities, enhancing secure connections.
+The `request_prdKeyHello` struct is employed for initiating cryptographic communications, specifically for sharing initial key information or for cryptographic introductions between entities, enhancing secure connections.
-| Attribute Name | Type | Option | Description |
-|-----------------------------------------|------------------|--------|----------------------------------------------------------------------------------|
-| RequestPrd | ```RequestPrd``` | | Represents a Portable Request Document ( RequestPrd). |
-| part_1_enc_hash_enc_by_sp_shared_secret | ```String``` | | The encrypted hash of part 1, encrypted by the service provider's shared secret. |
+| Attribute Name | Type | Option | Description |
+|-------------------------------------------|-------------------|--------|----------------------------------------------------------------------------------|
+| `request_prd` | ```request_prd``` | | Represents a Portable Request Document ( RequestPrd). |
+| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | | The encrypted hash of part 1, encrypted by the service provider's shared secret. |
### 11.5. RequestPrdList
-RequestPrdList struct is utilized for listing or querying RequestPrds, aiding in the retrieval or enumeration of Portable Request Documents within the system, streamlining the management and access of RequestPrds.
+`request_prdList` struct is utilized for listing or querying RequestPrds, aiding in the retrieval or enumeration of Portable Request Documents within the system, streamlining the management and access of RequestPrds.
-| Attribute Name | Type | Option | Description |
-|----------------|------------------|--------|-----------------------------------------|
-| RequestPrd | ```RequestPrd``` | | Represents a Portable Request Document. |
+| Attribute Name | Type | Option | Description |
+|----------------|-------------------|--------|-----------------------------------------|
+| `request_prd` | ```request_prd``` | | Represents a Portable Request Document. |
### 11.6. RequestPrdMessage
-The RequestPrdMessage struct serves the purpose of encapsulating messages within RequestPrds, allowing for secure and structured communication of information wrapped in a Portable Request Document.
+The `request_prdMessage` struct serves the purpose of encapsulating messages within RequestPrds, allowing for secure and structured communication of information wrapped in a Portable Request Document.
-| Attribute Name | Type | Option | Description |
-|----------------|------------------|--------|-----------------------------------------|
-| RequestPrd | ```RequestPrd``` | | Represents a Portable Request Document. |
+| Attribute Name | Type | Option | Description |
+|----------------|-------------------|--------|-----------------------------------------|
+| `request_prd` | ```request_prd``` | | Represents a Portable Request Document. |
### 11.7. RequestPrdResponse
-RequestPrdResponse is designed for responding to RequestPrd requests, including the original RequestPrd, signature for verification, and optional encrypted methods, ensuring a secure and verifiable response mechanism.
+`request_prdResponse` is designed for responding to RequestPrd requests, including the original RequestPrd, signature for verification, and optional encrypted methods, ensuring a secure and verifiable response mechanism.
-| Attribute Name | Type | Option | Description |
-|----------------|------------------|--------|-----------------------------------------|
-| RequestPrd | ```RequestPrd``` | | Represents a Portable Request Document. |
-| sig_value | ```String``` | | The signature value for the response. |
+| Attribute Name | Type | Option | Description |
+|----------------|-------------------|--------|-----------------------------------------|
+| `request_prd` | ```request_prd``` | | Represents a Portable Request Document. |
+| `sig_value` | ```String``` | | The signature value for the response. |
### 11.8. RequestPrdUpdate
-RequestPrdUpdate struct facilitates the updating of RequestPrds, incorporating new version hashes and lists of related RequestPcd hashes, alongside requested methods for payments, deposits, and commitments, ensuring RequestPrds remain current and relevant.
+`request_prdUpdate` struct facilitates the updating of RequestPrds, incorporating new version hashes and lists of related RequestPcd hashes, alongside requested methods for payments, deposits, and commitments, ensuring RequestPrds remain current and relevant.
-| Attribute Name | Type | Option | Description |
-|----------------|------------------|--------|-----------------------------------------|
-| RequestPrd | ```RequestPrd``` | | Represents a Portable Request Document. |
+| Attribute Name | Type | Option | Description |
+|----------------|-------------------|--------|-----------------------------------------|
+| `request_prd` | ```request_prd``` | | Represents a Portable Request Document. |
## 12. Roles
-The Roles struct defines the various roles within the system, specifying responsibilities, required security measures such as two-factor authentication, validation timeouts, and conditions for action validation, crucial for role-based access control and process flow.
+The `Roles` enum defines the various roles within the system, specifying responsibilities, required security measures such as two-factor authentication, validation timeouts, and conditions for action validation, crucial for role-based access control and process flow.
### 12.1. RolesGroup
RolesGroup outlines a collection of roles.
-| Attribute Name | Type | Option | Description |
-|--------------------|-------------------|--------|---------------------------------------------------------------------------------------------------------------------------|
-| role_peer | ```String``` | | Defines the role of peers in the network, responsible for facilitating communications and transactions. |
-| role_member | ```String``` | | Specifies the role of members, or users, who actively participate in processes and interactions. |
-| role_process | ```String``` | | Represents the entities charged with defining and managing processes within the system. |
-| role_artefact_list | ```Vec``` | | A list of artefact roles, allowing customization and extension of functionalities and interactions beyond standard roles. |
+| Attribute Name | Type | Option | Description |
+|----------------------|-------------------|--------|---------------------------------------------------------------------------------------------------------------------------|
+| `role_peer` | ```String``` | | Defines the role of peers in the network, responsible for facilitating communications and transactions. |
+| `role_member` | ```String``` | | Specifies the role of members, or users, who actively participate in processes and interactions. |
+| `role_process` | ```String``` | | Represents the entities charged with defining and managing processes within the system. |
+| `role_artefact_list` | ```Vec``` | | A list of artefact roles, allowing customization and extension of functionalities and interactions beyond standard roles. |
### 12.2. RoleArtefact
-The RoleArtefact struct is utilized to define the role associated with artefacts within the system. It specifies the responsibilities and permissions tied to the handling, management, or interaction with artefacts, ensuring clarity in role-based actions and access controls related to artefact-related operations.
+The `RoleArtefact` struct is utilized to define the role associated with artefacts within the system. It specifies the responsibilities and permissions tied to the handling, management, or interaction with artefacts, ensuring clarity in role-based actions and access controls related to artefact-related operations.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------|
-| item_name | ```String``` | | Identifies the specific artefact or obligation undertaken by a party. |
-| role | ```String``` | | Defines the permissions, conditions, and criteria associated with this artefact, ensuring execution and validation according to expectations. |
+| Attribute Name | Type | Option | Description |
+|----------------|--------------|--------|---------------------------------------------------|
+| `item_name` | ```String``` | | The name of the item associated with the deposit. |
+| `role` | ```Role``` | | The role associated with this deposit. |
### 12.3. RoleDeposit
-RoleDeposit outlines the role and responsibilities concerning deposits in the system. It identifies the specific obligations and permissions granted to entities managing or engaging with deposit transactions, providing a structured approach to deposit management and execution.
+`RoleDeposit` outlines the role and responsibilities concerning deposits in the system. It identifies the specific obligations and permissions granted to entities managing or engaging with deposit transactions, providing a structured approach to deposit management and execution.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------|
-| item_name | ```String``` | | Identifies the specific deposit or obligation undertaken by a party. |
-| role | ```String``` | | Defines the permissions, conditions, and criteria associated with this deposit, ensuring execution and validation according to expectations. |
+| Attribute Name | Type | Option | Description |
+|----------------|--------------|--------|----------------------------------------------------|
+| `item_name` | ```String``` | | The name of the item associated with the artefact. |
+| `role` | ```Role``` | | The role associated with this artefact. |
### 12.4. RoleCommitment
-The RoleCommitment struct details the role associated with commitments, delineating the duties and authorities of entities tasked with creating, managing, or fulfilling commitments. This struct ensures that commitment-related activities are clearly defined and regulated within the system.
+The `RoleCommitment` struct details the role associated with commitments, delineating the duties and authorities of entities tasked with creating, managing, or fulfilling commitments. This struct ensures that commitment-related activities are clearly defined and regulated within the system.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------|
-| item_name | ```String``` | | Identifies the specific commitment or obligation undertaken by a party. |
-| role | ```String``` | | Defines the permissions, conditions, and criteria associated with this commitment, ensuring execution and validation according to expectations. |
+| Attribute Name | Type | Option | Description |
+|----------------|--------------|--------|------------------------------------------------------|
+| `item_name` | ```String``` | | The name of the item associated with the commitment. |
+| `role` | ```Role``` | | The role associated with this commitment. |
### 12.5. RoleMember
-RoleMember defines the role of members within the system, specifying the rights and responsibilities of membership. This includes access to resources, participation in processes, and contributions to decision-making, highlighting the importance of members in the system's ecosystem.
+`RoleMember` defines the role of members within the system, specifying the rights and responsibilities of membership. This includes access to resources, participation in processes, and contributions to decision-making, highlighting the importance of members in the system's ecosystem.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------|
-| item_name | ```String``` | | Identifies the specific member or obligation undertaken by a party. |
-| role | ```String``` | | Defines the permissions, conditions, and criteria associated with this member, ensuring execution and validation according to expectations. |
+| Attribute Name | Type | Option | Description |
+|----------------|--------------|--------|--------------------------------------------------|
+| `item_name` | ```String``` | | The name of the item associated with the member. |
+| `role` | ```Role``` | | The role associated with this member. |
### 12.6. RolePayment
-The RolePayment struct is dedicated to defining the role related to payments, outlining the specific tasks, permissions, and responsibilities assigned to entities handling or involved in payment transactions, ensuring secure and orderly payment processes.
+The `RolePayment` struct is dedicated to defining the role related to payments, outlining the specific tasks, permissions, and responsibilities assigned to entities handling or involved in payment transactions, ensuring secure and orderly payment processes.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------|
-| item_name | ```String``` | | Identifies the specific payment or obligation undertaken by a party. |
-| role | ```String``` | | Defines the permissions, conditions, and criteria associated with this payment, ensuring execution and validation according to expectations. |
+| Attribute Name | Type | Option | Description |
+|----------------|--------------|--------|---------------------------------------------------|
+| `item_name` | ```String``` | | The name of the item associated with the payment. |
+| `role` | ```Role``` | | The role associated with this payment. |
### 12.7. RoleProcess
-RoleProcess describes the role associated with processes within the system. It specifies the expectations, duties, and permissions of entities that initiate, manage, or participate in various system processes, facilitating smooth and regulated process flow.
+`RoleProcess` describes the role associated with processes within the system. It specifies the expectations, duties, and permissions of entities that initiate, manage, or participate in various system processes, facilitating smooth and regulated process flow.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------|
-| item_name | ```String``` | | Identifies the specific process or obligation undertaken by a party. |
-| role | ```String``` | | Defines the permissions, conditions, and criteria associated with this process, ensuring execution and validation according to expectations. |
+| Attribute Name | Type | Option | Description |
+|----------------|--------------|--------|---------------------------------------------------|
+| `item_name` | ```String``` | | The name of the item associated with the process. |
+| `role` | ```Role``` | | The role associated with this process. |
### 12.8. Role
-The Role struct broadly defines a role within the system, encapsulating the general responsibilities, required security measures like two-factor authentication, validation timeouts, and conditions for action validation. This serves as a foundation for more specific role definitions, ensuring a flexible yet secure role-based access and action framework.
-
-| Attribute Name | Type | Option | Description |
-|--------------------|---------------|--------|------------------------------------------------------------------------------------------------------------------------------------------|
-| item | ```String``` | | The entity or object to which the role is associated, providing context for permissions and actions. |
-| required_2fa | ```boolean``` | | Indicates whether two-factor authentication is required for this role, enhancing security for critical actions. |
-| validation_timeout | ```Integer``` | | Defines a deadline for the validation of actions or requests associated with this role, ensuring timeliness and efficiency of processes. |
-| condition | ```String``` | | Set of criteria and rules defining how actions are validated, executed, or denied based on the context. |
+The `Role` struct broadly defines a role within the system, encapsulating the general responsibilities, required security measures like two-factor authentication, validation timeouts, and conditions for action validation. This serves as a foundation for more specific role definitions, ensuring a flexible yet secure role-based access and action framework.
+|--------------------------------------|-------------------------------|--------|------------------------------------------------------------------|
+| `item` | ```Item``` | | The item associated with the role. |
+| `required_2fa` | ```bool``` | | Indicates if two-factor authentication is required. |
+| `validation_timeout` | ```u64``` | Yes | The timeout for validation in seconds. |
+| `condition_prd_address_set_list` | ```Vec``` | | A list of product address set conditions. |
+| `condition_publish` | ```ConditionPublish``` | Yes | The condition for publishing. |
+| `condition_cap_list` | ```Vec``` | Yes | A list of capability conditions. |
+| `condition_payment_list` | ```Vec``` | Yes | A list of payment conditions. |
+| `condition_commitment_list` | ```Vec``` | Yes | A list of commitment conditions. |
+| `condition_attribute_encryption_list`| ```Vec``` | | A list of attribute encryption conditions. |
+| `condition_orchestration` | ```ConditionOrchestration``` | Yes | The condition for orchestration. |
+| `role_succession` | ```String``` | Yes | Optional role for succession. |
+| `role_resolve` | ```String``` | Yes | Optional role for resolving conflicts. |
+| `role_renew` | ```String``` | Yes | Optional role for renewing conditions or capabilities. |
### 12.9. TransactionMode
-TransactionMode and its specific types (Distribution, Direct) describe how transactions are handled within the system, whether through direct communication or distributed across multiple entities, influencing the flow and security of transactions.
+`TransactionMode` and its specific types (Distribution, Direct) describe how transactions are handled within the system, whether through direct communication or distributed across multiple entities, influencing the flow and security of transactions.
| Attribute Name | Type | Option | Description |
|----------------|-------------------|--------|------------------------------------------------------------------------------------------|
-| from_list | ```Vec``` | | Adresse silent payment ou role qui doit opérer le paiement |
-| from_type | ```String``` | | Soit "addresses" soit "roles" |
-| from_method | ```String``` | | Méthode de distribution de la somme des prélèvements : "Amount divided" ou "Same Amount" |
-| to_list | ```Vec``` | | Adresse silent payment ou role qui doit recevoir le Versement |
-| to_type | ```String``` | | Soit "addresses" soit "roles" |
-| to_method | ```String``` | | Méthode de distribution de la somme des versements : "Amount divided" ou "Same Amount" |
+| `from_list` | ```Vec``` | | Adresse silent payment ou role qui doit opérer le paiement |
+| `from_type` | ```String``` | | Soit "addresses" soit "roles" |
+| `from_method` | ```String``` | | Méthode de distribution de la somme des prélèvements : "Amount divided" ou "Same Amount" |
+| `to_list` | ```Vec``` | | Adresse silent payment ou role qui doit recevoir le Versement |
+| `to_type` | ```String``` | | Soit "addresses" soit "roles" |
+| `to_method` | ```String``` | | Méthode de distribution de la somme des versements : "Amount divided" ou "Same Amount" |
### 12.10. RolePeer
-The RolePeer struct identifies peers associated with specific roles, detailing their identifiers, associated peers, and metadata, essential for defining peer responsibilities and permissions within the networked environment.
+The `RolePeer` struct identifies peers associated with specific roles, detailing their identifiers, associated peers, and metadata, essential for defining peer responsibilities and permissions within the networked environment.
-| Attribute Name | Type | Option | Description |
-|----------------|--------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------|
-| item_name | ```String``` | | Identifies the specific deposit or obligation undertaken by a party. |
-| role | ```String``` | | Defines the permissions, conditions, and criteria associated with this deposit, ensuring execution and validation according to expectations. |
+| Attribute Name | Type | Option | Description |
+|----------------|--------------|--------|------------------------------------------------|
+| `item_name` | ```String``` | | The name of the item associated with the peer. |
+| `role` | ```Role``` | | The role associated with this peer. |
## 13. 12. Rust considerations
diff --git a/doc/Specs-Definition.md b/doc/Specs-Definition.md
index 832567d..27bbb07 100644
--- a/doc/Specs-Definition.md
+++ b/doc/Specs-Definition.md
@@ -29,7 +29,7 @@ Voir [Doc_references.md](Doc_references.md).
* **Relay**: Un serveur web socket qui relaie en peer to peer les messages entre les autres pairs du réseau de relais et avec les clients connectés.
-* **Message**: Enveloppe commune au RequestPrd et RequestPcd lorsqu'ils sont transmis au relais.
+* **Message**: Enveloppe commune au `RequestPrd` et `RequestPcd` lorsqu'ils sont transmis au relais.
* **Process**: Contrat off-chain définissant des conditions d'affichage, légales, de validation cryptographique et de rémunération des signatures.
@@ -81,9 +81,9 @@ Voir [Doc_references.md](Doc_references.md).
## 5. Data
-* **Cache**: Partie 1 chiffrée de la clé de dépense du signet du login stockée en cache, ainsi que les process découverts et les pairs du réseau. Une fois identifié auprès des membres d'un process et avec son identité `member` récupérée, l'objet member et les RequestPcd et RequestPrd du compte sont stockés en cache. Le cache se compose d'une partie prive jamais partagée et d'une partie publique partagée.
+* **Cache**: Partie 1 chiffrée de la clé de dépense du signet du login stockée en cache, ainsi que les process découverts et les pairs du réseau. Une fois identifié auprès des membres d'un process et avec son identité `member` récupérée, l'objet member et les `RequestPcd` et `RequestPrd` du compte sont stockés en cache. Le cache se compose d'une partie prive jamais partagée et d'une partie publique partagée.
-* **IndexDB**: Base de données de stockage côté client utilisée pour stocker de manière sécurisée les données chiffrées, telles que les RequestPcd et RequestPrd, dans les navigateurs web.
+* **IndexDB**: Base de données de stockage côté client utilisée pour stocker de manière sécurisée les données chiffrées, telles que les `RequestPcd` et RequestPrd, dans les navigateurs web.
## 6. Exemples de Code
diff --git a/doc/Specs-Security-confidentiality.md b/doc/Specs-Security-confidentiality.md
index 3ad7e16..5126dca 100644
--- a/doc/Specs-Security-confidentiality.md
+++ b/doc/Specs-Security-confidentiality.md
@@ -4,7 +4,7 @@
* 3. [Mot de passe](#Motdepasse)
* 4. [Cache](#Cache)
* 5. [Chiffrement des communications](#Chiffrementdescommunications)
-* 6. [Confidentialité des RequestPcd et RequestPrd](#ConfidentialitdesRequestPcdetRequestPrd)
+* 6. [Confidentialité des `RequestPcd` et RequestPrd](#ConfidentialitdesRequestPcdetRequestPrd)
* 7. [Confidentialité des messages sur les relais](#Confidentialitdesmessagessurlesrelais)
* 8. [Clé de chiffrement robuste](#Cldechiffrementrobuste)
* 8.1. [Résistance aux attaques cryptanalytiques](#Rsistanceauxattaquescryptanalytiques)
@@ -66,25 +66,25 @@ Stockage sécurisé du cache par un chiffrement par le mot de passe.
Le chiffrement du transport des données se fait par TLS entre les clients et le noeuds entrants pour palier aux restrictions sur les flux non TLS par les navigateurs et les applications mobiles.
-Néanmoins tous les messages chiffrent les RequestPcd et RequestPrd avec une clé de chiffrement conforme aux exigences suivantes et échangée dans le Diffie-Hellman de la transaction SP, en parallèle donc des flux RequestPcd et RequestPrd. Ces clés ne sont accessibles donc qu'avec la clé privée du destinataire ou de l'émetteur, qui ne sont jamais partagées.
+Néanmoins tous les messages chiffrent les `RequestPcd` et `RequestPrd` avec une clé de chiffrement conforme aux exigences suivantes et échangée dans le Diffie-Hellman de la transaction SP, en parallèle donc des flux `RequestPcd` et `RequestPrd`.Ces clés ne sont accessibles donc qu'avec la clé privée du destinataire ou de l'émetteur, qui ne sont jamais partagées.
-## 6. Confidentialité des RequestPcd et RequestPrd
+## 6. Confidentialité des `RequestPcd` et RequestPrd
Le stockage chiffré de cache est un chiffrement symétrique conformément aux exigences suivantes.
-Le chiffrement des RequestPcd est un chiffrement symétrique conformément aux exigences suivantes. Le chiffrement des clés de chiffrement dans les RequestPrd est un chiffrement symétrique conformément aux exigences suivantes selon :
+Le chiffrement des `RequestPcd` est un chiffrement symétrique conformément aux exigences suivantes. Le chiffrement des clés de chiffrement dans les `RequestPrd` est un chiffrement symétrique conformément aux exigences suivantes selon :
* **Données publiques**: un chiffrement symétrique conformément aux exigences suivantes depuis la `ProcessKey`. Tout le monde peut donc déchiffrer.
* **Données confidentielles avec les membres d'un `role` d'un `process` dans les RequestPcd**: un chiffrement symétrique conformément aux exigences suivantes depuis une clé de chiffrement générée à la volée par champs par items d'une liste d'un RequestPcd.
-* **Données confidentielles avec les membres d'un `role` d'un `process` dans les RequestPrd**: un chiffrement symétrique conformément aux exigences suivantes depuis les clés de chiffrement AES-GCM-256 générée à la volée dans les RequestPcd et alors transmises par le RequestPrd, chiffrées par la `KeyConfiditial` d'une transaction `SP`.
+* **Données confidentielles avec les membres d'un `role` d'un `process` dans les RequestPrd**: un chiffrement symétrique conformément aux exigences suivantes depuis les clés de chiffrement AES-GCM-256 générée à la volée dans les `RequestPcd` et alors transmises par le RequestPrd, chiffrées par la `KeyConfiditial` d'une transaction `SP`.
* **Données privées**: un chiffrement symétrique conformément aux exigences suivantes depuis le chiffrement par la clé de spend de login (`recover`) du signet (voir Login - Specs).
## 7. Confidentialité des messages sur les relais
-Les RequestPcd et les RequestPrd sont envoyés aux relais dans des enveloppes appelées `Message`.
+Les `RequestPcd` et les `RequestPrd` sont envoyés aux relais dans des enveloppes appelées `Message`.
Ces enveloppent communique les `RequestPcd` et les `RequestPrd` de façon chiffrée par la `ProcessKey`. Ainsi les messages sont rendus fongibles sur le réseau de relais.