doc update (datas)

This commit is contained in:
NicolasCantu 2024-02-12 16:26:07 +01:00
parent 12a6e54f26
commit 9924d8b647
2 changed files with 439 additions and 127 deletions

View File

@ -41,54 +41,55 @@
* 5.2. [MessageConnect](#MessageConnect)
* 5.3. [Message](#Message)
* 5.4. [Pow](#Pow)
* 5.5. [SharedProcess](#SharedProcess)
* 5.6. [SharedPeer](#SharedPeer)
* 5.7. [L1Node](#L1Node)
* 5.8. [L1Miner](#L1Miner)
* 5.9. [L2Node](#L2Node)
* 5.10. [L2Certif](#L2Certif)
* 5.11. [SharedPeer](#SharedPeer-1)
* 6. [Metadata](#Metadata)
* 6.1. [MetadataContractPublic](#MetadataContractPublic)
* 6.2. [MetadataPrivate](#MetadataPrivate)
* 6.3. [MetadataPrivate](#MetadataPrivate-1)
* 6.4. [MetadataRoleConfidential](#MetadataRoleConfidential)
* 6.5. [MetaData](#MetaData)
* 6.5. [MetaDataa](#MetaDataa)
* 6.6. [Amount](#Amount)
* 6.7. [Number](#Number)
* 7. [PCD](#PCD)
* 7.1. [Pagination](#Pagination)
* 7.2. [PcdItemEncAttributePublic](#PcdItemEncAttributePublic)
* 7.3. [PcdItemEncAttributeRoleConfidential](#PcdItemEncAttributeRoleConfidential)
* 7.4. [PcdItemEncAttributePrivate](#PcdItemEncAttributePrivate)
* 7.5. [PcdItemGenericEnc](#PcdItemGenericEnc)
* 7.6. [PcdItemEnc](#PcdItemEnc)
* 7.7. [RequestPcd](#RequestPcd)
* 8. [PRD](#PRD)
* 8.1. [RequestPrdConfirm](#RequestPrdConfirm)
* 8.2. [RequestPrdKeyBackup](#RequestPrdKeyBackup)
* 8.3. [RequestPrdKeyHello](#RequestPrdKeyHello)
* 8.4. [RequestPrdList](#RequestPrdList)
* 8.5. [RequestPrdMessage](#RequestPrdMessage)
* 8.6. [RequestPrdList](#RequestPrdList-1)
* 8.7. [RequestPrdResponse](#RequestPrdResponse)
* 8.8. [RequestPrdUpdate](#RequestPrdUpdate)
* 8.9. [KeyRoleConfidential](#KeyRoleConfidential)
* 8.10. [RequestPrd](#RequestPrd)
* 8.11. [RoleArtefact](#RoleArtefact)
* 8.12. [Request](#Request)
* 8.13. [RoleDeposit](#RoleDeposit)
* 8.14. [RoleCommitment](#RoleCommitment)
* 8.15. [RoleMember](#RoleMember)
* 8.16. [RolePayment](#RolePayment)
* 8.17. [RoleProcess](#RoleProcess)
* 8.18. [Role](#Role)
* 8.19. [TransactionModeDistribution](#TransactionModeDistribution)
* 8.20. [TransactionModeDirect](#TransactionModeDirect)
* 8.21. [TransactionMode](#TransactionMode)
* 8.22. [RolesGroup](#RolesGroup)
* 8.23. [SharedProcess](#SharedProcess)
* 8.24. [SharedPeer](#SharedPeer)
* 8.25. [Relay](#Relay)
* 8.26. [L1Node](#L1Node)
* 8.27. [L1Miner](#L1Miner)
* 8.28. [L2Node](#L2Node)
* 8.29. [L2Certif](#L2Certif)
* 8.30. [SharedPeer](#SharedPeer-1)
* 8.31. [RolePeer](#RolePeer)
* 7. [Request](#Request)
* 8. [PCD](#PCD)
* 8.1. [Pagination](#Pagination)
* 8.2. [PcdItemEncAttributePublic](#PcdItemEncAttributePublic)
* 8.3. [PcdItemEncAttributeRoleConfidential](#PcdItemEncAttributeRoleConfidential)
* 8.4. [PcdItemEncAttributePrivate](#PcdItemEncAttributePrivate)
* 8.5. [PcdItemGenericEnc](#PcdItemGenericEnc)
* 8.6. [PcdItemEnc](#PcdItemEnc)
* 8.7. [RequestPcd](#RequestPcd)
* 9. [PRD](#PRD)
* 9.1. [RequestPrd](#RequestPrd)
* 9.2. [RequestPrdConfirm](#RequestPrdConfirm)
* 9.3. [RequestPrdKeyBackup](#RequestPrdKeyBackup)
* 9.4. [RequestPrdKeyHello](#RequestPrdKeyHello)
* 9.5. [RequestPrdList](#RequestPrdList)
* 9.6. [RequestPrdMessage](#RequestPrdMessage)
* 9.7. [RequestPrdList](#RequestPrdList-1)
* 9.8. [RequestPrdResponse](#RequestPrdResponse)
* 9.9. [RequestPrdUpdate](#RequestPrdUpdate)
* 9.10. [RequestPrdKeyHello](#RequestPrdKeyHello-1)
* 10. [Roles](#Roles)
* 10.1. [RoleArtefact](#RoleArtefact)
* 10.2. [RoleDeposit](#RoleDeposit)
* 10.3. [RoleCommitment](#RoleCommitment)
* 10.4. [RoleMember](#RoleMember)
* 10.5. [RolePayment](#RolePayment)
* 10.6. [RoleProcess](#RoleProcess)
* 10.7. [Role](#Role)
* 10.8. [TransactionModeDistribution](#TransactionModeDistribution)
* 10.9. [TransactionModeDirect](#TransactionModeDirect)
* 10.10. [TransactionMode](#TransactionMode)
* 10.11. [RolesGroup](#RolesGroup)
* 10.12. [RolePeer](#RolePeer)
* 11. [Relay](#Relay)
<!-- vscode-markdown-toc-config
numbering=true
@ -100,6 +101,8 @@
### 1.1. <a name='ConditionCap'></a>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.
| Attribute Name | Type | Option | Description |
|------------------|-----------------|--------|-----------------------------------------------------------|
| role_deposit | String | | Represents the deposit role in the condition. |
@ -107,6 +110,8 @@
### 1.2. <a name='ConditionCommitment'></a>ConditionCommitment
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. |
@ -114,6 +119,8 @@
### 1.3. <a name='ConditionDeposit'></a>ConditionDeposit
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. |
@ -121,6 +128,8 @@
### 1.4. <a name='ConditionOrchestration'></a>ConditionOrchestration
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. |
@ -128,6 +137,8 @@
### 1.5. <a name='ConditionPayment'></a>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. |
@ -136,6 +147,8 @@
### 1.6. <a name='ConditionPrdAddressSet'></a>ConditionPrdAddressSet
ConditionPrdAddressSet involves complex conditions based on PRD 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. |
@ -163,6 +176,8 @@
### 1.7. <a name='ConditionPublish'></a>ConditionPublish
ConditionPublish sets the criteria for publishing actions, including data size limits, publication counts, and timeouts, to regulate content distribution.
| Attribute Name | Type | Option | Description |
|-------------------------|--------|--------|---------------------------------------------------------------|
| pcd_data_size_max_unit | String | | Specifies the maximum unit size for published data. |
@ -177,18 +192,24 @@
### 2.1. <a name='DepositMethod'></a>DepositMethod
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. |
### 2.2. <a name='CommitmentMethod'></a>CommitmentMethod
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. |
### 2.3. <a name='PaymentMethod'></a>PaymentMethod
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. |
@ -197,6 +218,8 @@
### 3.1. <a name='ItemArtefact'></a>ItemArtefact
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. |
@ -206,6 +229,8 @@
### 3.2. <a name='ItemCommitmentPublicAttributeGroup'></a>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<String> | | A list of service provider addresses related to this commitment. |
@ -218,6 +243,8 @@
### 3.3. <a name='ItemMemberPublicAttributeGroup'></a>ItemMemberPublicAttributeGroup
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. |
@ -231,6 +258,8 @@
### 3.4. <a name='ItemDepositPublicAttributeGroup'></a>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<String> | | A list of service provider addresses targeted by this deposit. |
@ -244,18 +273,24 @@
### 3.5. <a name='ItemCommitmentRoleConfidentialAttributeGroup'></a>ItemCommitmentRoleConfidentialAttributeGroup
This struct encompasses role-specific confidential attributes for commitments, securing sensitive commitment information.
| Attribute Name | Type | Option | Description |
|---------------------------|-------------|--------|------------------------------------------------------------------|
| payload_list_confidential | Vec<String> | | A list of confidential payloads associated with this commitment. |
### 3.6. <a name='ItemCommitmentPrivateAttributeGroup'></a>ItemCommitmentPrivateAttributeGroup
ItemCommitmentPrivateAttributeGroup contains private attributes for commitments, ensuring privacy for the most sensitive commitment details.
| Attribute Name | Type | Option | Description |
|----------------------|-------------|--------|-------------------------------------------------------------|
| payload_list_private | Vec<String> | | A list of private payloads associated with this commitment. |
### 3.7. <a name='ItemCommitment'></a>ItemCommitment
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. |
@ -265,6 +300,8 @@
### 3.8. <a name='ItemDepositRoleConfidentialAttributeGroup'></a>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<String> | | A list of confidential payloads associated with this deposit. |
@ -272,6 +309,8 @@
### 3.9. <a name='ItemDepositPrivateAttributeGroup'></a>ItemDepositPrivateAttributeGroup
ItemDepositPrivateAttributeGroup secures private deposit attributes, safeguarding the most sensitive aspects of deposits.
| Attribute Name | Type | Option | Description |
|----------------------|-------------|--------|----------------------------------------------------------|
| payload_list_private | Vec<String> | | A list of private payloads associated with this deposit. |
@ -279,6 +318,8 @@
### 3.10. <a name='ItemDeposit'></a>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. |
@ -288,18 +329,20 @@
### 3.11. <a name='ItemEnum'></a>ItemEnum
Cette énumération représente différents types d'items au sein d'un système, où chaque variante encapsule une struct spécifique à un type d'item :
This enumeration represents different types of items within a system, where each variant encapsulates a specific struct for a type of item:
* `Process(ItemProcess)`: Contient un item de type `ItemProcess`, représentant un processus.
* `Peer(ItemPeer)`: Contient un item de type `ItemPeer`, représentant un pair.
* `Member(ItemMember)`: Contient un item de type `ItemMember`, représentant un membre.
* `Payment(ItemPayment)`: Contient un item de type `ItemPayment`, représentant un paiement.
* `Deposit(ItemDeposit)`: Contient un item de type `ItemDeposit`, représentant un dépôt.
* `Artefact(ItemArtefact)`: Contient un item de type `ItemArtefact`, représentant un artefact.
* `Commitment(ItemCommitment)`: Contient un item de type `ItemCommitment`, représentant un engagement.
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.
### 3.12. <a name='ItemPaymentPublicAttributeGroup'></a>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<String> | | A list of service provider addresses related to this payment. |
@ -316,6 +359,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 3.13. <a name='ItemPaymentRoleConfidentialAttributeGroup'></a>ItemPaymentRoleConfidentialAttributeGroup
It holds confidential payment attributes, maintaining the confidentiality of critical payment information.
| Attribute Name | Type | Option | Description |
|------------------------------|-------------|--------|------------------------------------------------------------------|
| payload_list_confidential | Vec<String> | | A list of confidential payloads associated with this payment. |
@ -323,6 +368,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 3.14. <a name='ItemPaymentPrivateAttributeGroup'></a>ItemPaymentPrivateAttributeGroup
ItemPaymentPrivateAttributeGroup protects private payment attributes, ensuring the highest level of privacy for payment details.
| Attribute Name | Type | Option | Description |
|----------------------|-------------|--------|----------------------------------------------------------|
| payload_list_private | Vec<String> | | A list of private payloads associated with this payment. |
@ -330,6 +377,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 3.15. <a name='ItemPayment'></a>ItemPayment
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. |
@ -339,6 +388,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 3.16. <a name='ItemPeerPublicAttributeGroup'></a>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. |
@ -355,12 +406,16 @@ Cette énumération représente différents types d'items au sein d'un système,
### 3.17. <a name='ItemPeerPrivateAttributeGroup'></a>ItemPeerPrivateAttributeGroup
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. |
### 3.18. <a name='ItemPeer'></a>ItemPeer
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. |
@ -370,6 +425,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 3.19. <a name='ItemProcess'></a>ItemProcess
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. |
@ -377,12 +434,16 @@ Cette énumération représente différents types d'items au sein d'un système,
### 3.20. <a name='ItemProcessPublicAttributeGroup'></a>ItemProcessPublicAttributeGroup
This struct details public attributes related to processes, like roles groups, to facilitate understanding of process organization.
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------------------------|
| roles_group | RolesGroup | | Represents a group of roles associated with this process. |
### 3.21. <a name='Item'></a>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.
| Attribute Name | Type | Option | Description |
|----------------------------|--------------------------|--------|---------------------------------------------------------------------------|
| uuid | String | | A unique identifier for the item. |
@ -399,6 +460,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 4.1. <a name='KeyEncryption'></a>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.
| Attribute Name | Type | Option | Description |
|----------------|----------------|--------|---------------------------------------------------------------|
| attribute_name | Option<String> | Yes | An optional name of the attribute this encryption key is for. |
@ -407,6 +470,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 4.2. <a name='Aes256GcmIv96Bit'></a>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.
| Attribute Name | Type | Option | Description |
|----------------|-----------------------|--------|------------------------------------------------------------------------------|
| key | GenericArray<u8, U32> | | Represents an encryption key for the AES-256-GCM algorithm with a 96-bit IV. |
@ -415,6 +480,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 5.1. <a name='MessageClient'></a>MessageClient
MessageClient 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. |
@ -423,12 +490,16 @@ Cette énumération représente différents types d'items au sein d'un système,
### 5.2. <a name='MessageConnect'></a>MessageConnect
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. |
### 5.3. <a name='Message'></a>Message
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<SharedPeer> | | A list of shared peers, assuming `SharedPeer` is a predefined struct. |
@ -438,6 +509,8 @@ Cette énumération représente différents types d'items au sein d'un système,
### 5.4. <a name='Pow'></a>Pow
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. |
@ -446,33 +519,94 @@ Cette énumération représente différents types d'items au sein d'un système,
| pattern | String | | The pattern that the PoW solution must match. |
| difficulty | usize | | The difficulty level of the PoW challenge. |
### 5.5. <a name='SharedProcess'></a>SharedProcess
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. |
### 5.6. <a name='SharedPeer'></a>SharedPeer
SharedPeer specifies a peer shared within the network, playing a key role in distributed information sharing and communication.
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|--------------------------------------------------------------------------------------------------------------------------------|
| peer_id | String | | The identifier for the shared peer, facilitating the distribution and communication of information among peers in the network. |
### 5.7. <a name='L1Node'></a>L1Node
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<Utc> | | Timestamp of the last health check performed on the L1 node. |
### 5.8. <a name='L1Miner'></a>L1Miner
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. |
### 5.9. <a name='L2Node'></a>L2Node
This struct represents a Level 2 (Layer 2) blockchain node, focusing on scalability solutions and includes details such as its network and operation layer.
| 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. |
### 5.10. <a name='L2Certif'></a>L2Certif
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. |
### 5.11. <a name='SharedPeer-1'></a>SharedPeer
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|------------------------------------------------------|
| peer_id | String | | Unique identifier for the peer. |
| ip_address | String | | IP address of the peer. |
| port | u16 | | Port number the peer is listening on. |
| status | String | | Current status of the peer (e.g., active, inactive). |
## 6. <a name='Metadata'></a>Metadata
### 6.1. <a name='MetadataContractPublic'></a>MetadataContractPublic
| Attribute Name | Type | Option | Description |
|----------------|----------|--------|------------------------------------------------------------|
| meta_data | MetaData | | Represents the public metadata associated with a contract. |
### 6.2. <a name='MetadataPrivate'></a>MetadataPrivate
| Attribute Name | Type | Option | Description |
|----------------|----------|--------|------------------------------------------------------------|
| meta_data | MetaData | | Represents the private metadata associated with an entity. |
### 6.3. <a name='MetadataPrivate-1'></a>MetadataPrivate
| Attribute Name | Type | Option | Description |
|----------------|----------|--------|------------------------------------------------------------|
| meta_data | MetaData | | Represents the private metadata associated with an entity. |
### 6.4. <a name='MetadataRoleConfidential'></a>MetadataRoleConfidential
| Attribute Name | Type | Option | Description |
|----------------|----------|--------|-------------------------------------------------------------------------------|
| meta_data | MetaData | | Represents the role-specific confidential metadata associated with an entity. |
### 6.5. <a name='MetaData'></a>MetaDataa
MetaDataa aggregates various metadata types, including tags, zones, and key lists, offering a comprehensive view of metadata for diverse applications.
| Attribute Name | Type | Option | Description |
|----------------------|--------------------|--------|----------------------------------------------------------------|
@ -487,8 +621,34 @@ Cette énumération représente différents types d'items au sein d'un système,
| legal_text_list | Vec<String> | | A list of legal texts associated with the metadata. |
| key_list | Vec<KeyEncryption> | | A list of key encryption methods associated with the metadata. |
### 6.1. <a name='MetadataContractPublic'></a>MetadataContractPublic
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. |
### 6.2. <a name='MetadataPrivate'></a>MetadataPrivate
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. |
### 6.4. <a name='MetadataRoleConfidential'></a>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. |
### 6.6. <a name='Amount'></a>Amount
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. |
@ -499,15 +659,39 @@ Cette énumération représente différents types d'items au sein d'un système,
### 6.7. <a name='Number'></a>Number
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. |
## 7. <a name='PCD'></a>PCD
## 7. <a name='Request'></a>Request
### 7.1. <a name='Pagination'></a>Pagination
Request captures the details of a system request, including its method, URI, and optional body, foundational for handling HTTP-based communications.
| Attribute Name | Type | Option | Description |
|----------------|-------------------------|--------|-----------------------------------------------|
| id | String | | Unique identifier for the request. |
| method | String | | HTTP method of the request (e.g., GET, POST). |
| uri | String | | URI of the request. |
| headers | HashMap<String, String> | | Headers included in the request. |
| body | Option<String> | Yes | Optional body of the request. |
## 8. <a name='PCD'></a>PCD
The RequestPcd struct integrates a request with a list of generic encrypted items and pagination details, facilitating the handling of encrypted PCD requests within the system.
| Attribute Name | Type | Option | Description |
|----------------|------------------------|--------|-------------------------------------------------------------------|
| request | Request | | The request, assuming `Request` is a predefined struct. |
| item_list | Vec<PcdItemGenericEnc> | | List of generic encrypted items. |
| pagination | Pagination | | Pagination details, assuming `Pagination` is a predefined struct. |
### 8.1. <a name='Pagination'></a>Pagination
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 |
|----------------|-------|--------|--------------------------------------------------|
@ -515,14 +699,18 @@ Cette énumération représente différents types d'items au sein d'un système,
| number | usize | | Le nombre d'éléments par page. |
| page_index | usize | | L'indice de la page actuelle pour la pagination. |
### 7.2. <a name='PcdItemEncAttributePublic'></a>PcdItemEncAttributePublic
### 8.2. <a name='PcdItemEncAttributePublic'></a>PcdItemEncAttributePublic
This struct outlines public encrypted attributes for PCD 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. |
### 7.3. <a name='PcdItemEncAttributeRoleConfidential'></a>PcdItemEncAttributeRoleConfidential
### 8.3. <a name='PcdItemEncAttributeRoleConfidential'></a>PcdItemEncAttributeRoleConfidential
PcdItemEncAttributeRoleConfidential deals with role-specific confidential encrypted attributes, securing sensitive data while allowing role-based access.
| Attribute Name | Type | Option | Description |
|----------------|---------------|--------|---------------------------------------------------|
@ -530,14 +718,18 @@ Cette énumération représente différents types d'items au sein d'un système,
| data_enc | String | | The encrypted data associated with the attribute. |
| key | KeyEncryption | | The key used for encrypting the data. |
### 7.4. <a name='PcdItemEncAttributePrivate'></a>PcdItemEncAttributePrivate
### 8.4. <a name='PcdItemEncAttributePrivate'></a>PcdItemEncAttributePrivate
It specifies private encrypted attributes for 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 | | The encrypted data associated with this attribute name. |
### 7.5. <a name='PcdItemGenericEnc'></a>PcdItemGenericEnc
### 8.5. <a name='PcdItemGenericEnc'></a>PcdItemGenericEnc
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 |
|-----------------------------------------------|--------------------------------------------------|--------|----------------------------------------------------------|
@ -546,7 +738,9 @@ Cette énumération représente différents types d'items au sein d'un système,
| pcd_item_enc_attribute_role_confidential_list | Option<Vec<PcdItemEncAttributeRoleConfidential>> | Yes | Optional list of role-confidential encrypted attributes. |
| pcd_item_enc_attribute_private_list | Option<Vec<PcdItemEncAttributePrivate>> | Yes | Optional list of private encrypted attributes. |
### 7.6. <a name='PcdItemEnc'></a>PcdItemEnc
### 8.6. <a name='PcdItemEnc'></a>PcdItemEnc
The PcdItemEnc struct encapsulates encrypted PCD 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 |
|-----------------------------------------------|------------------------------------------|--------|-------------------------------------------------|
@ -558,24 +752,45 @@ Cette énumération représente différents types d'items au sein d'un système,
| pcd_item_enc_attribute_role_confidential_list | Vec<PcdItemEncAttributeRoleConfidential> | | List of role-confidential encrypted attributes. |
| pcd_item_enc_attribute_private_list | Vec<PcdItemEncAttributePrivate> | | List of private encrypted attributes. |
### 7.7. <a name='RequestPcd'></a>RequestPcd
## 9. <a name='PRD'></a>PRD
| Attribute Name | Type | Option | Description |
|----------------|------------------------|--------|-------------------------------------------------------------------|
| request | Request | | The request, assuming `Request` is a predefined struct. |
| item_list | Vec<PcdItemGenericEnc> | | List of generic encrypted items. |
| pagination | Pagination | | Pagination details, assuming `Pagination` is a predefined struct. |
RequestPrd and its variations (Confirm, KeyBackup, KeyHello, List, Message, Response, Update) represent different aspects and actions related to Portable Request Documents (PRD), covering everything from confirmation to updates, key management, and messaging, essential for managing and processing PRDs securely and efficiently.
## 8. <a name='PRD'></a>PRD
| Attribute Name | Type | Option | Description |
|------------------------------------------|-----------------------|--------|-----------------------------------------------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
| sig_value | String | | The signature value for the response. |
| pcd_origin_hash | Option<String> | Yes | Optional hash of the originating PCD. |
| payment_method_enc_by_shared_secret | Option<String> | Yes | Encrypted payment method, encrypted with a shared secret. |
| deposit_method_enc_by_shared_secret | Option<String> | Yes | Encrypted deposit method, encrypted with a shared secret. |
| commitment_method_enc_by_shared_secret | Option<String> | Yes | Encrypted commitment method, encrypted with a shared secret. |
| certif_key_enc_by_shared_secret | Option<String> | Yes | Encrypted certification key, encrypted with a shared secret. |
| shared_secret_key | Option<KeyEncryption> | Yes | Optional encryption key used for shared secrets. |
| pcd_new_version_hash | String | | The hash of the new version of the PCD. |
| payment_pcd_hash_list | Vec<String> | | A list of hashes for payment-related PCDs. |
| cap_pcd_hash_list | Vec<String> | | A list of hashes for capability-related PCDs. |
| deposit_pcd_hash_list | Vec<String> | | A list of hashes for deposit-related PCDs. |
| commitment_pcd_hash_list | Vec<String> | | A list of hashes for commitment-related PCDs. |
| ask_payment_method | String | | The requested payment method. |
| ask_deposit_method | String | | The requested deposit method. |
| ask_commitment_method | String | | The requested commitment method. |
| device_footprint_enc_by_sp_shared_secret | String | | The device footprint encrypted by a service provider's shared secret. |
| 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. |
### 8.1. <a name='RequestPrdConfirm'></a>RequestPrdConfirm
### 9.2. <a name='RequestPrdConfirm'></a>RequestPrdConfirm
The RequestPrdConfirm struct is designed for confirming actions or requests within the system, utilizing a Portable Request Document (PRD) alongside an encrypted confirmation code, ensuring secure acknowledgment of operations.
| Attribute Name | Type | Option | Description |
|-----------------------------------|------------|--------|-----------------------------------------------------|
| prd | RequestPrd | | The PRD (Portable Request Document) request. |
| code_confirm_enc_by_shared_secret | String | | The confirmation code encrypted by a shared secret. |
### 8.2. <a name='RequestPrdKeyBackup'></a>RequestPrdKeyBackup
### 9.3. <a name='RequestPrdKeyBackup'></a>RequestPrdKeyBackup
RequestPrdKeyBackup focuses on backup functionalities for PRD 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 |
|------------------------------------------|------------|--------|-----------------------------------------------------------------------------|
@ -584,32 +799,34 @@ Cette énumération représente différents types d'items au sein d'un système,
| 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. |
### 8.3. <a name='RequestPrdKeyHello'></a>RequestPrdKeyHello
### 9.4. <a name='RequestPrdKeyHello'></a>RequestPrdKeyHello
pub struct RequestPrdKeyHello {
pub prd: RequestPrd,
pub part_1_enc_hash_enc_by_sp_shared_secret: String,
}
The RequestPrdKeyHello struct is employed for initiating cryptographic communications, specifically for sharing initial key information or for cryptographic introductions between entities, enhancing secure connections.
### 8.4. <a name='RequestPrdList'></a>RequestPrdList
| Attribute Name | Type | Option | Description |
|-----------------------------------------|------------|--------|----------------------------------------------------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document (PRD). |
| part_1_enc_hash_enc_by_sp_shared_secret | String | | The encrypted hash of part 1, encrypted by the service provider's shared secret. |
### 9.5. <a name='RequestPrdList'></a>RequestPrdList
RequestPrdList struct is utilized for listing or querying PRDs, aiding in the retrieval or enumeration of Portable Request Documents within the system, streamlining the management and access of PRDs.
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
### 8.5. <a name='RequestPrdMessage'></a>RequestPrdMessage
### 9.6. <a name='RequestPrdMessage'></a>RequestPrdMessage
The RequestPrdMessage struct serves the purpose of encapsulating messages within PRDs, allowing for secure and structured communication of information wrapped in a Portable Request Document.
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
### 8.6. <a name='RequestPrdList-1'></a>RequestPrdList
### 9.8. <a name='RequestPrdResponse'></a>RequestPrdResponse
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
### 8.7. <a name='RequestPrdResponse'></a>RequestPrdResponse
RequestPrdResponse is designed for responding to PRD requests, including the original PRD, signature for verification, and optional encrypted methods, ensuring a secure and verifiable response mechanism.
| Attribute Name | Type | Option | Description |
|----------------------------------------|-----------------------|--------|--------------------------------------------------------------|
@ -622,7 +839,9 @@ pub struct RequestPrdKeyHello {
| certif_key_enc_by_shared_secret | Option<String> | Yes | Encrypted certification key, encrypted with a shared secret. |
| shared_secret_key | Option<KeyEncryption> | Yes | Optional encryption key used for shared secrets. |
### 8.8. <a name='RequestPrdUpdate'></a>RequestPrdUpdate
### 9.9. <a name='RequestPrdUpdate'></a>RequestPrdUpdate
RequestPrdUpdate struct facilitates the updating of PRDs, incorporating new version hashes and lists of related PCD hashes, alongside requested methods for payments, deposits, and commitments, ensuring PRDs remain current and relevant.
| Attribute Name | Type | Option | Description |
|--------------------------|-------------|--------|-----------------------------------------------|
@ -636,48 +855,139 @@ pub struct RequestPrdKeyHello {
| ask_deposit_method | String | | The requested deposit method. |
| ask_commitment_method | String | | The requested commitment method. |
### 8.9. <a name='KeyRoleConfidential'></a>KeyRoleConfidential
### 9.10. <a name='RequestPrdKeyHello-1'></a>RequestPrdKeyHello
### 8.10. <a name='RequestPrd'></a>RequestPrd
This structure, repeated for emphasis, underscores the initial cryptographic greeting or handshake within the system, focusing on secure introduction and key exchange protocols.
### 8.11. <a name='RoleArtefact'></a>RoleArtefact
| Attribute Name | Type | Option | Description |
|-----------------------------------------|------------|--------|----------------------------------------------------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
| part_1_enc_hash_enc_by_sp_shared_secret | String | | The encrypted hash of part 1, encrypted by the service provider's shared secret. |
### 8.12. <a name='Request'></a>Request
## 10. <a name='Roles'></a>Roles
### 8.13. <a name='RoleDeposit'></a>RoleDeposit
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.
### 8.14. <a name='RoleCommitment'></a>RoleCommitment
### 10.11. <a name='RolesGroup'></a>RolesGroup
### 8.15. <a name='RoleMember'></a>RoleMember
RolesGroup outlines a collection of roles.
### 8.16. <a name='RolePayment'></a>RolePayment
| 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 | Array<String> | | A list of artefact roles, allowing customization and extension of functionalities and interactions beyond standard roles. |
### 8.17. <a name='RoleProcess'></a>RoleProcess
### 10.1. <a name='RoleArtefact'></a>RoleArtefact
### 8.18. <a name='Role'></a>Role
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.
### 8.19. <a name='TransactionModeDistribution'></a>TransactionModeDistribution
| 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. |
### 8.20. <a name='TransactionModeDirect'></a>TransactionModeDirect
### 10.2. <a name='RoleDeposit'></a>RoleDeposit
### 8.21. <a name='TransactionMode'></a>TransactionMode
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.
### 8.22. <a name='RolesGroup'></a>RolesGroup
| 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. |
### 8.23. <a name='SharedProcess'></a>SharedProcess
### 10.3. <a name='RoleCommitment'></a>RoleCommitment
### 8.24. <a name='SharedPeer'></a>SharedPeer
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.
### 8.25. <a name='Relay'></a>Relay
| 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. |
### 8.26. <a name='L1Node'></a>L1Node
### 10.4. <a name='RoleMember'></a>RoleMember
### 8.27. <a name='L1Miner'></a>L1Miner
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.
### 8.28. <a name='L2Node'></a>L2Node
| 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. |
### 8.29. <a name='L2Certif'></a>L2Certif
### 10.5. <a name='RolePayment'></a>RolePayment
### 8.30. <a name='SharedPeer-1'></a>SharedPeer
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.
### 8.31. <a name='RolePeer'></a>RolePeer
| 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. |
### 10.6. <a name='RoleProcess'></a>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.
| 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. |
### 10.7. <a name='Role'></a>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. |
### 10.10. <a name='TransactionMode'></a>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.
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| mode | String | | Defines the overall transaction mode, influencing how requests and responses are distributed and processed within the network, impacting efficiency and security of interactions. |
### 10.8. <a name='TransactionModeDistribution'></a>TransactionModeDistribution
TransactionModeDistribution specifies a transaction mode that emphasizes the distribution of transactions or information across multiple parties or nodes, aiming for a decentralized or distributed approach to transaction handling and information dissemination, enhancing system resilience and participation.
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| mode | String | | Describes the distribution method for requests or information across multiple roles or entities, facilitating broad communication and collaboration within the system. |
### 10.9. <a name='TransactionModeDirect'></a>TransactionModeDirect
The TransactionModeDirect struct indicates a transaction mode focused on direct interactions between specific parties or nodes, streamlining communication and transactions by directly targeting recipients, optimizing for speed and precision in transaction execution.
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| mode | String | | Focuses the exchange of information or requests directly between a sender and a specific recipient, ensuring targeted and secure interaction. |
### 10.12. <a name='RolePeer'></a>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.
| Attribute Name | Type | Option | Description |
|----------------|-------------------------|--------|------------------------------------------|
| role_id | String | | Unique identifier for the role. |
| peers | Vec<SharedPeer> | | List of peers associated with this role. |
| metadata | HashMap<String, String> | | Metadata associated with the role. |
## 11. <a name='Relay'></a>Relay
Relay is associated with the infrastructure that facilitates the relay of information or transactions between different parts of the system. It includes identifiers, IP addresses, ports, status, and types of relay nodes, crucial for maintaining connectivity and ensuring the efficient distribution of data and transactions across the network.
| Attribute Name | Type | Option | Description |
|----------------|---------------|--------|-------------------------------------------------------|
| id | u32 | | Unique identifier for the relay. |
| ip_address | String | | IP address of the relay. |
| port | u16 | | Port number the relay listens on. |
| status | String | | Current status of the relay (e.g., active, inactive). |
| last_active | DateTime<Utc> | | Timestamp of the last activity seen from the relay. |
| relay_type | String | | Type of the relay (e.g., full, light). |

View File

@ -46,6 +46,8 @@
* **pre-id**: Pré identifiant des utilisateurs constitué du hash de partie 1 de la `KeyRecover`.
* **Autres termes propres à 4nk**: voir Specs-Datas.md.
## 2. <a name='Bitcoin'></a>Bitcoin
* **UTXO (Unspent Transaction Output)**: Sortie de transaction non dépensée dans la blockchain, représentant des tokens ou des actifs numériques qui peuvent être utilisés dans de futures transactions.