In our latest bi-weekly sprint, we focused on overcoming critical challenges related to the Curium and Cosmos SDK upgrades.
What Did We Aim to Achieve?
Our primary goal for this sprint was clear:
• Resolve issues with the Curium upgrade and SDK upgrade.
This involved several technical milestones, including the deployment of new test networks and updates to key modules, as well as ensuring smooth integration with Cosmos SDK 0.47.
What We Learned
While tackling the upgrades, we made substantial progress but also uncovered unforeseen complexities:
- Milestones Achieved:
• Deployed bluzelle-9-test, running Cosmos SDK 0.47 on the latest Curium in our internal test network.
• Implemented metadata input for lease time functionality, allowing transaction input for lease duration (in blocks) during file pinning.
• Resolved some authz tests and tracked issues in the params module of Curium.
2. Challenges Encountered:
• SDK tests encountered failures due to our custom storage module not functioning correctly post-upgrade.
• A significant issue arose from the required upgrade to a newer version of GoLang, which introduced breaking changes not only to our codebase but to several dependencies.
3. Key Discoveries:
• RegisterServices Function: We learned that all message handlers must be registered correctly in the RegisterServices function within the module.go file. This was previously tolerated in older versions of Cosmos SDK but became mandatory in 0.47.
• Dependency Management: The GoLang upgrade impacted multiple layers of dependencies, amplifying the complexity of this upgrade.
• Governance Module: Updated functionalities in the governance module required additional focus to align with SDK and Curium changes.
4. Big Picture Insight:
This upgrade highlighted the unpredictability of development at scale. While we anticipated challenges, the magnitude of cascading issues from GoLang and Cosmos SDK upgrades reinforced the importance of flexibility in planning for the unknown.
What’s Next?
Despite the hurdles, we’re well-positioned to move forward. Here’s what’s on the horizon:
- Resolve Blockers on SDK Tests:
• Removing blockers will allow us to pass all SDK tests and proceed with deployment to testnet
2. Module Reviews and Updates:
• Conduct a thorough review of module changes, especially those related to Curium and governance.
3. Deployment and Testing:
• Clean up and finalize SDK tests to ensure stability and functionality across all modules.
Final Thoughts
While these upgrades present immediate challenges, they also pave the way for a more robust and future-proof infrastructure. We’re confident that the lessons learned during this sprint will strengthen our development processes and enable Bluzelle to continue delivering innovative solutions.
And keep on top of the latest with our public roadmap: https://trello.com/b/vqwJLgvz/bluzelle-public-roadmap