CESS Technology Monthly Report | Progress in August 2023
1. Important Submissions, Modifications, and Releases
Blockchain Network
The CESS Testnet v0.6.0 consists of consensus nodes and storage nodes. Consensus nodes maintain the world state of the CESS network (by CESS Node) and serve as "data certification stations" in the CESS network (by TEE Worker). Storage nodes are responsible for providing verifiable storage space and act as the "data storage pool" in the CESS network. Here are the progress updates for this month:
1. Consensus Node [v0.6.0]
Adjusted the interface parameters for submitting SGX signatures for challenge proof verification results of chain nodes.
Updated the field information of relevant structures in the signature verification process of the space proof module of chain nodes.
Optimized the Sminer, Audit, and FileBank pallets of chain nodes, as well as the definitions of some data structures, streamlining the code structure.
Added a feature to cancel authorization exclusivity for chain nodes, allowing DeOSS users to authorize multiple Gateways simultaneously.
Conducted boundary overflow checks on the code of chain nodes and optimized some calculation logic to prevent overflow or out-of-bounds errors.
Fixed the logical error in the handling of redistribution counts not reaching the upper limit in the verification settlement process of chain nodes.
Optimized the challenge verification lifespan time calculation issue and the forced exit process of storage nodes for chain nodes.
Added a rust-toolchain.toml file for chain nodes to specify the toolchain version and related components.
Fixed the issue where chain nodes did not filter the same account addresses during the DeOSS authorization process.
Fixed the issue where the random challenge verification results of chain nodes were not effectively cleared, affecting the next round of challenges.
Added a service data filtering feature for TEE Worker, further enhancing the security of the storage proof algorithm module.
Upgraded the p2p module of TEE Worker, integrating it with gRPC to achieve a concise and efficient remote service invocation function.
Upgraded the idle space certification process of TEE Worker, allowing the certification results to be submitted on-chain by storage nodes, simplifying the workflow.
Completed the updates and debugging of the service file tag calculation and batch verification function for TEE Worker.
Fixed the issue where TEE Worker encountered errors due to empty data submitted by storage nodes during batch verification of storage proofs.
Fixed the inconsistency issue of shared keys in the TEE Worker key sharing network.
Optimized the on-chain registration process of TEE Worker, adding validation for shared keys to enhance the security of key sharing.
Optimized the encapsulation method and processing logic of shared keys in TEE Worker, reducing the risk of key leakage.
Completed stress testing for a single node of TEE Worker, fixing the gRPC request errors caused by excessive request numbers.
Completed the update of the nodeadm program to support some new features of consensus nodes and storage nodes.
Fixed issues found during testing of the nodeadm program, such as missing user prompts and failures in installing the yq program.
Fixed the container name conflict issue when switching node modes in the nodeadm program.
2. Storage Node [v0.6.0]
Implemented the interaction function between the idle space proof algorithm module of storage nodes and TEE Worker based on the p2p library.
Completed testing of the idle space certification process, fixing a series of issues such as certification failures and signature verification failures.
Completed the development and debugging of the service file aggregation proof calculation function for storage nodes.
Fixed the issue where the idle space proof module failed to restore state when the storage node crashed and restarted.
Optimized the random challenge state recovery mechanism of the idle space proof module in storage nodes.
Upgraded the connection method between storage nodes and TEE Worker from direct gRPC connection to gRPC connection based on libp2p.
Optimized the method for storage nodes to find TEE Worker in the idle file certification process, upgrading from fixed configuration to dynamic lookup.
Fixed the issues of Dockerfile build failures and inaccurate entrypoint command configuration for storage nodes.
Completed testing of idle file certification, random challenges, and replacement processes based on libp2p gRPC connections.
Optimized the random challenge process of storage nodes, allowing concurrent execution of challenge processes for idle files and service files to improve efficiency.
Optimized the fault recovery and random challenge state setting functions of the idle space proof module in storage nodes, enhancing execution speed.
Fixed the issue where setting the maximum space size limit in the idle space proof module was ineffective.
Fixed the issue where challenges failed during the service file random challenge process due to not timely determining the state after deleting some files.
Fixed the issue where challenge proof verification failed due to incorrect random challenge state settings in the idle space proof.
Fixed the issue where random challenge verification could not pass due to not storing the same fragment data under different user files.
Products
CESS aims to provide practical storage services for Web3, creating a new generation of object storage services (DeOSS). Currently, the product ecosystem of the CESS network is gradually becoming rich and prosperous, having incubated innovative applications such as online file sharing tools (DeShare), public chain snapshot storage services, and CESS cloud storage. We welcome you to experience them. Here are the progress updates for this month:
1. Object Storage Service (DeOSS)
Optimized the reconnection mechanism for file upload failures at the gateway, adding nodes that continuously fail to connect to a blacklist.
Fixed the issue where file uploads failed after exceeding the 100M limit at the gateway.
Refactored part of the Go SDK code, aggregating file upload and storage, file retrieval, and download functions to simplify the process.
Fixed issues in the Go SDK such as non-standard field names, unclear error prompts for signature methods, and abnormal blocking of file processing.
Added relevant methods for storing and retrieving objects in the Go SDK.
Fixed the index out-of-bounds error caused by hardcoded fixed loops in the gateway.
Fixed the crash error caused by the non-existence of the working directory during the first run of the gateway.
Optimized the Go SDK, adding judgment processes for whether space is authorized and whether the bucket has been created.
Added field parsing functions for specific transaction events in the Go SDK, enabling more precise transaction status judgment.
2. Online File Sharing Tool (DeShare)
- Upgraded the file caching function, sharing a set of caching mechanisms with DeOSS, and released version v0.2.1.
- Updated the file upload logic to unify file uploads to the public gateway.
2. Technical Solution Discussion
- The technical team provided technical guidance to the participating teams of Web3 Gaming Hackathon 2023.
This month, the technical team provided professional technical guidance to the participating teams of Web3 Gaming Hackathon 2023 and offered valuable suggestions to several projects as judges. We believe that hackathon events are an excellent platform for promoting innovation and collaboration, and we look forward to exploring, learning, and solving problems together with the participating teams.
3. Technical Documentation Reference
GitHub: https://github.com/CESSProjectWiKi: https://github.com/CESSProject/cess/wikiCIPs: https://github.com/CESSProject/CIPs