CESS Technology Monthly Report | Progress in July 2023
1. Important Submissions, Modifications, and Releases
Blockchain Network
The CESS testnet version v0.6.0 consists of consensus nodes and storage nodes. Consensus nodes maintain the global 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 updates for this month:
1. Consensus Nodes [v0.6.0]
Fixed an issue where large files uploaded to chain nodes would encounter exceptions during prolonged uploads.
Fixed a problem where chain nodes could be blocked when triggering random challenges.
Fixed an issue where rewards extracted by storage nodes were incorrectly sent to the control account instead of the fund account.
Adjusted the number of file upload redistributions and the time interval for redistributions on chain nodes.
Fixed an array out-of-bounds issue that occurred when triggering challenges due to storage nodes exiting without claiming their stakes.
Added a maximum limit on the number of redistributions for verification tasks on chain nodes to prevent random challenges from stalling due to individual task anomalies.
Added a deduplication feature for the TEE Worker whitelist on chain nodes.
Added the tee_signature field to the miner information structure on chain nodes.
Replaced the file replacement interface on chain nodes, completing the adaptation for 256 MiB idle files.
Completed the benchmark code writing for the TEE Worker and Sminer modules on chain nodes.
Fixed an issue where the TEE Worker had inconsistent hashes between idle data and marked data due to dirty data.
Optimized the Kaleido configuration of the TEE Worker, actively discarding timed-out PoDR² verification requests to reduce computational waste.
Improved the Kaleido and Rotator of the TEE Worker, adding support for multiple profile configurations in the compiler.
Fixed an issue in the Rotator of the TEE Worker where some random files could not be deleted.
Optimized the reconnection mechanism of the subxt client in the Kaleido of the TEE Worker and updated the chain runtime.
Completed the Rust refactoring of the verification part of the space proof library in the TEE Worker.
2. Storage Nodes [v0.6.0]
Improved the nodeadm program by adding configuration for the storage node listening port.
Fixed an issue where the node discovery feature was unavailable due to blocked channels and abnormal routing table operations of the bootstrap node.
Fixed an inconsistency issue between the actual connected TEE Worker and the recorded one due to abnormal data reception in the p2p communication module.
Optimized the p2p communication module by changing the node mode to AutoServer and increasing the limits on node discovery numbers and buffer sizes.
Optimized the reporting mechanism for service files, so that service files are no longer automatically reported after being redistributed by the blockchain network.
Fixed an issue where PoDR² data could not be transmitted to the TEE Worker due to network connection failures.
Fixed an issue where the node exceeded connection resource limits during p2p communication.
Fixed an issue where file recovery failed due to incorrect judgments of node status and file storage order status.
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. You are welcome to experience them. Here are the updates for this month:
1. Object Storage Service (DeOSS)
Fixed an issue where the rpc and boot in the configuration file template generated by the gateway did not correspond to the same network.
Updated the Go SDK file upload and download methods to prioritize uploading and downloading files from the public gateway.
Updated the gateway retransmission mechanism, so that if the retransmission count reaches the specified limit without success, a new order will be created.
Added a data persistence feature for node discovery, allowing quick use of discovered storage nodes for file storage after the gateway restarts.
Optimized the representation of DeOSS file status, which is currently divided into three categories: upload successful, storage order creation successful, and storage successful.
Fixed an issue in the Go SDK where data errors occurred during file uploads and response receptions.
Optimized the node discovery feature of the gateway by filtering internal and local addresses, retaining only external addresses to improve communication efficiency.
Optimized the file download feature, prioritizing retrieval from other DeOSS gateways when the local file is missing, and then downloading from storage nodes.
2. Technical Solution Discussion
- The developer community discussed and approved the "Consensus Node Election Mechanism Optimization Proposal."
This proposal introduces a stake score into the current consensus node election mechanism, attracting nominators while allowing stakeholders to share consensus block rewards. At the same time, it lowers the entry threshold for new consensus nodes, increasing their number and further promoting the decentralization of the CESS network.
3. Technical Documentation Reference
GitHub: https://github.com/CESSProject