From 48691b7abec3adf99971c831b170f9cf3fcf1c5c Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Fri, 8 Mar 2024 11:55:30 +0100 Subject: [PATCH] pcd simplification wip (doc) --- doc/Data-Specs.md | 153 ++++++++++++++++++++++++++-- doc/Specs-Datamodel.md | 223 +++++++++++++++++++---------------------- 2 files changed, 248 insertions(+), 128 deletions(-) diff --git a/doc/Data-Specs.md b/doc/Data-Specs.md index da150e7..45f6f1a 100644 --- a/doc/Data-Specs.md +++ b/doc/Data-Specs.md @@ -34,8 +34,6 @@ Voir [_Doc_references.md](_Doc_references.md). ### 4.1. Clés -Base "key_recover_spend_list" - pseudo-code: ```json @@ -56,8 +54,6 @@ pseudo-code: ### 4.2. Peers -shared_peer_list_merged - pseudo-code: ```json @@ -121,6 +117,7 @@ pseudo-code: ### 4.3. Process +pseudo-code: ```json [ @@ -626,20 +623,145 @@ pseudo-code: pseudo-code: ```json +[{ + "me_sender": false, + "process_hash": "", + "item_name": "", + "request_type": "", + "timestamp": 0, + "message_hash":"pending|", + "pcd_hash": "pending|", + "prd_hash": "pending|", + "request_pcd_reference_hash": "pending|", + "request_pcd_origin_hash": "pending|", + "request_prd_reference_hash": "pending|", + "request_prd_origin_hash": "pending|", + "item_reference_hash": "pending|", + "prd_sig_value": "", + "prd_sp_address_from": "", + "prd_role_from": "", + "prd_sp_address_to": "", + "prd_role_to": "", + "prd_tx_sp": "pending|", + "peer_list": [{ + "domain": "", + "ip": "", + "port": "", + "timestamp": 0, + "sender": false + }], +}] +``` +### 4.6. RequestPcd + +pseudo-code: + +```json +[ + { + "request": { + "item_name": "", + "request_type": "", + "version": 0, + "process_hash": "", + "request_pcd_reference_hash": "", + "request_pcd_origin_hash": "", + "request_prd_reference_hash": "", + "request_prd_origin_hash": "", + "item_reference_hash": "" + }, + "item_list": [{ + "version": "", + "item_type": "", + "name": "", + "request_pcd_item_enc_attribute_public_list": [{ + "attribute_name": "", + "data_enc": "" + }], + "request_pcd_item_enc_attribute_role_confidential_list": [{ + "attribute_name": "", + "data_enc": "", + }], + "request_pcd_item_enc_attribute_private_list": [{ + "attribute_name": "", + "data_enc": "" + }], + }], + "pagination": { + "start": 0, + "number": 0, + "page_index": 0, + "page_total": 0 + }, + "validation_status": "pending|ok|ko" + } +] ``` ### 4.5. RequestPrd -### 4.6. RequestPcd +pseudo-code: + +```json +[ + { + "request": { + "item_name": "", + "request_type": "", + "version": 0, + "process_hash": "", + "request_pcd_reference_hash": "", + "request_pcd_origin_hash": "", + "request_prd_reference_hash": "", + "request_prd_origin_hash": "", + "item_reference_hash": "" + }, + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", + "": "", +] +``` ## 5. Data privée ### 5.1. Clés -Base "key_recover_spend_list" - pseudo-code: ```json @@ -664,6 +786,8 @@ pseudo-code: ### 5.2. Peers +pseudo-code: + ```json [ { @@ -712,6 +836,8 @@ pseudo-code: ### 5.3. Process +pseudo-code: + ```json [ { @@ -817,8 +943,15 @@ pseudo-code: ] ``` -### 5.4. Messages +### 5.6. RequestPcd + +pseudo-code: + +```json +[{ + "pcd_hash": "", + "pcd_aes_key_decrypted_list": [""] +}] +``` ### 5.5. RequestPrd - -### 5.6. RequestPcd diff --git a/doc/Specs-Datamodel.md b/doc/Specs-Datamodel.md index da0a364..79ecd7f 100644 --- a/doc/Specs-Datamodel.md +++ b/doc/Specs-Datamodel.md @@ -1,97 +1,96 @@  * 1. [Documents de référence](#Documentsderfrence) * 2. [Methods](#Methods) -* 2.1. [DepositMethod](#DepositMethod) -* 2.2. [CommitmentMethod](#CommitmentMethod) -* 2.3. [PaymentMethod](#PaymentMethod) + * 2.1. [DepositMethod](#DepositMethod) + * 2.2. [CommitmentMethod](#CommitmentMethod) + * 2.3. [PaymentMethod](#PaymentMethod) * 3. [Items](#Items) -* 3.1. [Item](#Item) -* 3.2. [ItemArtefact](#ItemArtefact) -* 3.3. [ItemMember](#ItemMember) -* 3.3.1. [ItemMemberPublicAttributeGroup](#ItemMemberPublicAttributeGroup) -* 3.3.2. [ItemMemberRoleConfidentialAttributeGroup](#ItemMemberRoleConfidentialAttributeGroup) -* 3.3.3. [ItemMemberRolePrivateAttributeGroup](#ItemMemberRolePrivateAttributeGroup) -* 3.4. [ItemCommitment](#ItemCommitment) -* 3.4.1. [ItemCommitmentRoleConfidentialAttributeGroup](#ItemCommitmentRoleConfidentialAttributeGroup) -* 3.4.2. [ItemCommitmentPrivateAttributeGroup](#ItemCommitmentPrivateAttributeGroup) -* 3.5. [ItemDeposit](#ItemDeposit) -* 3.5.1. [ItemDepositPublicAttributeGroup](#ItemDepositPublicAttributeGroup) -* 3.5.2. [ItemDepositRoleConfidentialAttributeGroup](#ItemDepositRoleConfidentialAttributeGroup) -* 3.5.3. [ItemDepositPrivateAttributeGroup](#ItemDepositPrivateAttributeGroup) -* 3.6. [ItemEnum](#ItemEnum) -* 3.7. [ItemPayment](#ItemPayment) -* 3.7.1. [ItemPaymentPublicAttributeGroup](#ItemPaymentPublicAttributeGroup) -* 3.7.2. [ItemPaymentRoleConfidentialAttributeGroup](#ItemPaymentRoleConfidentialAttributeGroup) -* 3.7.3. [ItemPaymentPrivateAttributeGroup](#ItemPaymentPrivateAttributeGroup) -* 3.8. [ItemPeer](#ItemPeer) -* 3.8.1. [ItemPeerPublicAttributeGroup](#ItemPeerPublicAttributeGroup) -* 3.8.2. [ItemPeerPrivateAttributeGroup](#ItemPeerPrivateAttributeGroup) -* 3.9. [ItemProcess](#ItemProcess) -* 3.9.1. [ItemProcessPublicAttributeGroup](#ItemProcessPublicAttributeGroup) + * 3.1. [Item](#Item) + * 3.2. [ItemArtefact](#ItemArtefact) + * 3.3. [ItemMember](#ItemMember) + * 3.3.1. [ItemMemberPublicAttributeGroup](#ItemMemberPublicAttributeGroup) + * 3.3.2. [ItemMemberRoleConfidentialAttributeGroup](#ItemMemberRoleConfidentialAttributeGroup) + * 3.3.3. [ItemMemberRolePrivateAttributeGroup](#ItemMemberRolePrivateAttributeGroup) + * 3.4. [ItemCommitment](#ItemCommitment) + * 3.4.1. [ItemCommitmentRoleConfidentialAttributeGroup](#ItemCommitmentRoleConfidentialAttributeGroup) + * 3.4.2. [ItemCommitmentPrivateAttributeGroup](#ItemCommitmentPrivateAttributeGroup) + * 3.5. [ItemDeposit](#ItemDeposit) + * 3.5.1. [ItemDepositPublicAttributeGroup](#ItemDepositPublicAttributeGroup) + * 3.5.2. [ItemDepositRoleConfidentialAttributeGroup](#ItemDepositRoleConfidentialAttributeGroup) + * 3.5.3. [ItemDepositPrivateAttributeGroup](#ItemDepositPrivateAttributeGroup) + * 3.6. [ItemEnum](#ItemEnum) + * 3.7. [ItemPayment](#ItemPayment) + * 3.7.1. [ItemPaymentPublicAttributeGroup](#ItemPaymentPublicAttributeGroup) + * 3.7.2. [ItemPaymentRoleConfidentialAttributeGroup](#ItemPaymentRoleConfidentialAttributeGroup) + * 3.7.3. [ItemPaymentPrivateAttributeGroup](#ItemPaymentPrivateAttributeGroup) + * 3.8. [ItemPeer](#ItemPeer) + * 3.8.1. [ItemPeerPublicAttributeGroup](#ItemPeerPublicAttributeGroup) + * 3.8.2. [ItemPeerPrivateAttributeGroup](#ItemPeerPrivateAttributeGroup) + * 3.9. [ItemProcess](#ItemProcess) + * 3.9.1. [ItemProcessPublicAttributeGroup](#ItemProcessPublicAttributeGroup) * 4. [Encryption](#Encryption) -* 4.1. [KeyEncryption](#KeyEncryption) -* 4.2. [Aes256GcmIv96Bit](#Aes256GcmIv96Bit) + * 4.1. [KeyEncryption](#KeyEncryption) + * 4.2. [Aes256GcmIv96Bit](#Aes256GcmIv96Bit) * 5. [Messages](#Messages) -* 5.1. [Message](#Message) -* 5.2. [MessageConnect](#MessageConnect) -* 5.3. [MessageGeneric](#MessageGeneric) -* 5.4. [Pow](#Pow) -* 5.5. [SharedProcess](#SharedProcess) -* 5.6. [SharedPeer](#SharedPeer) + * 5.1. [Message](#Message) + * 5.2. [MessageConnect](#MessageConnect) + * 5.3. [MessageGeneric](#MessageGeneric) + * 5.4. [Pow](#Pow) + * 5.5. [SharedProcess](#SharedProcess) + * 5.6. [SharedPeer](#SharedPeer) * 6. [Relay](#Relay) * 7. [L1Node](#L1Node) -* 7.1. [L1NodeMining](#L1NodeMining) -* 7.2. [L2Node](#L2Node) -* 7.3. [L2NodeMining](#L2NodeMining) -* 7.4. [L2Certif](#L2Certif) -* 7.5. [BlockCertif](#BlockCertif) + * 7.1. [L1NodeMining](#L1NodeMining) + * 7.2. [L2Node](#L2Node) + * 7.3. [L2NodeMining](#L2NodeMining) + * 7.4. [L2Certif](#L2Certif) + * 7.5. [BlockCertif](#BlockCertif) * 8. [Metadata](#Metadata) -* 8.1. [MetadataContractPublic](#MetadataContractPublic) -* 8.2. [MetadataPrivate](#MetadataPrivate) -* 8.3. [MetadataRoleConfidential](#MetadataRoleConfidential) -* 8.4. [Amount](#Amount) -* 8.5. [Number](#Number) + * 8.1. [MetadataContractPublic](#MetadataContractPublic) + * 8.2. [MetadataPrivate](#MetadataPrivate) + * 8.3. [MetadataRoleConfidential](#MetadataRoleConfidential) + * 8.4. [Amount](#Amount) + * 8.5. [Number](#Number) * 9. [Request](#Request) * 10. [RequestPcd](#RequestPcd) -* 10.1. [Pagination](#Pagination) -* 10.2. [RequestPcdItemEncAttributePublic](#RequestPcdItemEncAttributePublic) -* 10.3. [RequestPcdItemEncAttributeRoleConfidential](#RequestPcdItemEncAttributeRoleConfidential) -* 10.4. [RequestPcdItemEncAttributePrivate](#RequestPcdItemEncAttributePrivate) -* 10.5. [RequestPcdItemGenericEnc](#RequestPcdItemGenericEnc) -* 10.6. [RequestPcdItemEnc](#RequestPcdItemEnc) + * 10.1. [Pagination](#Pagination) + * 10.2. [RequestPcdItemGenericEnc](#RequestPcdItemGenericEnc) + * 10.2.1. [RequestPcdItemEncAttributePublic](#RequestPcdItemEncAttributePublic) + * 10.2.2. [RequestPcdItemEncAttributeRoleConfidential](#RequestPcdItemEncAttributeRoleConfidential) + * 10.2.3. [RequestPcdItemEncAttributePrivate](#RequestPcdItemEncAttributePrivate) * 11. [RequestPrd](#RequestPrd) -* 11.1. [RequestPrdResponse](#RequestPrdResponse) -* 11.2. [RequestPrdConfirm](#RequestPrdConfirm) -* 11.3. [RequestPrdList](#RequestPrdList) -* 11.4. [RequestPrdMessage](#RequestPrdMessage) -* 11.5. [RequestPrdResponse](#RequestPrdResponse-1) -* 11.6. [RequestPrdUpdate](#RequestPrdUpdate) + * 11.1. [RequestPrdResponse](#RequestPrdResponse) + * 11.2. [RequestPrdConfirm](#RequestPrdConfirm) + * 11.3. [RequestPrdList](#RequestPrdList) + * 11.4. [RequestPrdMessage](#RequestPrdMessage) + * 11.5. [RequestPrdResponse](#RequestPrdResponse-1) + * 11.6. [RequestPrdUpdate](#RequestPrdUpdate) * 12. [Roles](#Roles) -* 12.1. [Role](#Role) -* 12.2. [Conditions](#Conditions) -* 12.2.1. [TransactionMode](#TransactionMode) -* 12.2.2. [ConditionPayment](#ConditionPayment) -* 12.2.3. [ConditionCommitment](#ConditionCommitment) -* 12.2.4. [ConditionDeposit](#ConditionDeposit) -* 12.2.5. [ConditionOrchestration](#ConditionOrchestration) -* 12.2.6. [ConditionCap](#ConditionCap) -* 12.2.7. [ConditionRequestPrdAddressSet](#ConditionRequestPrdAddressSet) -* 12.2.8. [ConditionPublish](#ConditionPublish) -* 12.3. [RolesGroup](#RolesGroup) -* 12.3.1. [RoleArtefact](#RoleArtefact) -* 12.3.2. [RoleDeposit](#RoleDeposit) -* 12.3.3. [RoleCommitment](#RoleCommitment) -* 12.3.4. [RoleMember](#RoleMember) -* 12.4. [RolePeer](#RolePeer) -* 12.4.1. [RolePayment](#RolePayment) -* 12.4.2. [RoleProcess](#RoleProcess) + * 12.1. [Role](#Role) + * 12.2. [Conditions](#Conditions) + * 12.2.1. [TransactionMode](#TransactionMode) + * 12.2.2. [ConditionPayment](#ConditionPayment) + * 12.2.3. [ConditionCommitment](#ConditionCommitment) + * 12.2.4. [ConditionDeposit](#ConditionDeposit) + * 12.2.5. [ConditionOrchestration](#ConditionOrchestration) + * 12.2.6. [ConditionCap](#ConditionCap) + * 12.2.7. [ConditionRequestPrdAddressSet](#ConditionRequestPrdAddressSet) + * 12.2.8. [ConditionPublish](#ConditionPublish) + * 12.3. [RolesGroup](#RolesGroup) + * 12.3.1. [RoleArtefact](#RoleArtefact) + * 12.3.2. [RoleDeposit](#RoleDeposit) + * 12.3.3. [RoleCommitment](#RoleCommitment) + * 12.3.4. [RoleMember](#RoleMember) + * 12.4. [RolePeer](#RolePeer) + * 12.4.1. [RolePayment](#RolePayment) + * 12.4.2. [RoleProcess](#RoleProcess) * 13. [12. Rust considerations](#Rustconsiderations) -* 13.1. [General Implications for Project Objects](#GeneralImplicationsforProjectObjects) -* 13.2. [Debug](#Debug) -* 13.3. [Default](#Default) -* 13.4. [PartialEq, Eq](#PartialEqEq) -* 13.5. [Hash](#Hash) -* 13.6. [PartialOrd, Ord](#PartialOrdOrd) + * 13.1. [General Implications for Project Objects](#GeneralImplicationsforProjectObjects) + * 13.2. [Debug](#Debug) + * 13.3. [Default](#Default) + * 13.4. [PartialEq, Eq](#PartialEqEq) + * 13.5. [Hash](#Hash) + * 13.6. [PartialOrd, Ord](#PartialOrdOrd) * 14. [Todo](#Todo)