Weekly Report #7 (2024–08–18)
3 min readAug 19, 2024
Recent Updates:
Improved Code Structure:
- We made a significant improvement to the
inject_host_funcs
method by switching to a more modern approach using a tool called Linker. This change is likely to have made the code more modular, meaning different parts of the code can work independently, and more flexible, allowing for easier updates and changes in the future. This should make the codebase easier to maintain and extend as new features are added.
Simplified Parameters:
- We streamlined how parameters are handled for ‘get’ and ‘post’ requests by splitting them into separate categories. This adjustment should lead to cleaner, more readable code, making it easier for developers to understand and work with. By clearly defining these parameters, we’ve likely reduced the chances of errors and made the code easier to update when needed.
Fixed Bugs:
- Several bugs that were affecting the system’s performance and reliability have been resolved. These fixes should lead to a more stable and dependable system, improving the overall user experience. Users can now expect fewer crashes and issues, contributing to smoother operation.
WASM Code Sharing and Distribution:
- Previously, we were using a local file to simulate how Verisense nodes would run user code, but we’ve now moved to a more advanced approach. After thorough discussions and research, we decided to build a small, distributed file system within the Verisense network. This means that instead of just uploading the WASM (WebAssembly) code to each node manually or using external services like IPFS or Arweave, the nodes can now share and distribute the code among themselves directly. This should enhance the efficiency and security of how code is shared and executed across the network. The design for this new system is complete, and the code will only be stored on nodes that are part of the same subnet. For anyone interested in the technical details, more information is available on our GitHub.
Plan for Next Week:
Optimize Memory Usage:
- Our focus next week will be on optimizing how the system uses memory. We’ll start by investigating the current memory usage patterns to identify areas where memory might be used inefficiently. Once these areas are pinpointed, we’ll work on implementing optimizations to reduce memory overhead, making the system more efficient and responsive. After making these changes, we’ll thoroughly test and validate them to ensure they lead to real performance improvements.
Improve Memory Management:
- We’ll also be focusing on refactoring parts of the code that have high memory usage. This involves reviewing these sections to see where we can make improvements, such as using more efficient data structures or rewriting algorithms to use less memory. These changes should help in reducing the overall memory footprint of the system, leading to better performance and stability, especially under heavy loads.
Detect and Fix Memory Leaks:
- Memory leaks, where memory that’s no longer needed isn’t properly released, can be a significant issue in software systems. To address this, we’ll be using profiling tools to detect any potential memory leaks in the system. Once identified, we’ll analyze these leaks and fix them to prevent memory from being wasted. Additionally, we’ll implement extra safeguards to prevent future memory leaks, ensuring that the system remains efficient and reliable over time.