Data flow inside EC
Last updated
Last updated
This section provides a comprehensive understanding of the data workflow diagram and presents a step-by-step guide detailing the user data handling while using a Web 3.0 dApp within the Ethernity Cloud Protocol:
Input Data Formatting and Submission:
The dApp user , while using the dApp proceeds to format and encrypt the input data using the enclave's public key. This ensures the confidentiality and security of the user's sensitive data.
Upload to Decentralized Storage and Task Request Submission:
The encrypted content is then uploaded to the decentralized storage, making it accessible for downloading by the designated EC Node responsible for executing the code. Concurrently, the dApp user submits a task request on the blockchain through the EC Smart Contract, initiating the process.
EC Node's Computing Resource Submission:
Simultaneously, the EC Node starts and submits its available computing resources to the blockchain, providing crucial information for task request matching.
Task Request Matching:
The EC Smart Contract facilitates the matching process between the user's task request and the EC Node's available resources. If a suitable match is found, the EC Node proceeds to download the encrypted data from the Decentralized Storage for execution. In case of no immediate match, the matching operation continues until a suitable node is identified.
Secure Environment Setup:
Upon a successful match, the EC Node initiates the download of the relevant encrypted data and concurrently acquires the secure enclave docker image. It then sets up a secure Trusted Execution Environment (TEE) enclave and performs mutual attestation through Configuration and Attestation Service (CAS) , ensuring a secure execution environment.
Task Execution and Proof Generation:
The Trusted Execution Environment (TEE) enclave securely executes the assigned task, processing the encrypted input data. It generates encrypted results and creates a proof of execution. The proof is calculated in a way that can be validated by the user.
Upload of Encrypted Results to Decentralized Storage:
Upon task completion, the EC Node uploads the encrypted results to the Decentralized Storage. The data is encrypted using the users's public key to maintain confidentiality during transmission and storage.
Writing the proof on the blockchain as a transaction:
The proof of execution is a transaction signed by the enclave. The proof contains the hash of the results and the status code of the execution. This transaction is then written to the blockchain by the EC Node.
Result Retrieval and Verification:
The dApp user now checks the proof of execution, validates it, determines the status of the execution and then downloads the encrypted results. By decrypting the results using their private key, the user gains insight into the outcome of their task executed confidentially within the Ethernity Cloud Protocol.
Status Codes of Execution:
1. "SUCCESS"
2. "SYSTEM_ERROR"
3. "KEY_ERROR"
4. "SYNTAX_WARNING"
5. "BASE_EXCEPTION"
6. "PAYLOAD_NOT_DEFINED"
7. "PAYLOAD_CHECKSUM_ERROR"
8. "INPUT_CHECKSUM_ERROR"