Cosmos SDK Eden Upgrade (v0.50) Unleashes Enhanced Modularity and Performance
The Cosmos SDK has taken a significant leap forward with the release of Eden (v0.50), introducing a slew of features and improvements
The Cosmos SDK has taken a significant leap forward with the release of Eden (v0.50), introducing a slew of features and improvements. This latest version embodies a commitment to enhanced modularity and performance, positioning the Cosmos SDK at the forefront of blockchain innovation.
In this article, we'll delve into the key highlights and notable changes brought about by the Eden release.
ABCI++: Expanding Consensus Flexibility
One of the standout features of the Eden release is the completion of ABCI++ (Application Blockchain Interface++), a crucial component in the Cosmos SDK's evolution. ABCI++ revolutionizes consensus flexibility by introducing Vote Extensions, the final piece of the ABCI++ puzzle.
In previous releases, the preliminary phases of ABCI++ were introduced with Prepare and Process Proposal. Vote Extensions now allow users to add arbitrary data to consensus, opening up a wide range of use cases. For example, this feature can be leveraged for oracles, reducing the need for validators to submit transactions to be included in a block. It can also be applied to address front-running issues and implement Threshold Decryption.
Alongside the integration of ABCI++, changes have been made to the core layer of the Cosmos SDK. Notably, BeginBlock and EndBlock are now private, and FinalizeBlock is exposed for testing purposes. This allows modules to test in a manner consistent with previous versions. Additionally, when upgrading a chain, PreBlock runs before BeginBlock, ensuring a clean separation of concerns during upgrades.
AutoCLI: Streamlining Module Creation
The Eden release introduces AutoCLI, a feature aimed at simplifying module creation. In response to the need to reduce the total lines of code required to create a module, AutoCLI automatically generates Command Line Interface (CLI) for custom modules when needed. This significantly reduces the boilerplate code required when writing a module, contributing to a more efficient developer experience.
IAVL 1.0: Enhanced Disk Storage and Performance
Another highlight of the Eden release is the rollout of IAVL 1.0, which brings substantial improvements to disk storage and overall performance. This update involves a fundamental change in the key structure of the IAVL (Immutable AVL) tree.
In earlier versions of IAVL, the original key format was a hash key, which caused performance degradation as the dataset grew. The new key structure combines the version and local nonce within the key, improving data locality. By grouping nodes together based on the version in which they were added to the tree, data retrieval becomes more structured and organized.
Modules: Simplified Development
Developers will appreciate the simplification of module creation in the Eden release. The introduction of Collections and ORM (Object-Relational Mapping) packages abstracts interactions with the state layer, providing efficient ways of working with state. These packages will soon export the on-disk schema to be used with query layers like GraphQL, enabling the development of complex and scalable clients.
Notable changes in this regard include the addition of expedited proposals in the Gov module and the movement of the Capability module to the Cosmos SDK module. This release also streamlines the import of CometBFT types, simplifying module development.
Optimistic Execution: Accelerating Performance
To enhance performance, the Eden release introduces Optimistic Execution, a feature that enables the execution of block time ahead of consensus. This means having the response ready prior to the consensus layer requesting it. Load tests on networks like Sei Network have demonstrated a remarkable 50% reduction in block time. On fast block-producing networks, like Injective, Optimistic Execution can facilitate sub-1-second block generation.
Sign Mode Textual: Improving Transaction Signing
Eden introduces Sign Mode Textual, a new signing mode that enhances the signing of transactions with new hardware devices. This mode provides a more human-readable way to approve, review, and view transaction details. Currently, it's available only on Ledger devices.
Acknowledgments and Looking Forward
The development of the Cosmos SDK is generously funded by the Interchain Foundation and led by Binary Builders. Special thanks are extended to teams such as Zondax, Orijtech, Crypto.com, Osmosis, and Berachain for their valuable work and feedback on the Eden release.
The Cosmos SDK continues to advance, driven by a commitment to excellence and innovation. The Eden release marks a significant milestone, enhancing modularity and performance, and we eagerly await the feedback and suggestions of the Cosmos community to drive further improvements.
About the Cosmos SDK
The Cosmos SDK is the world's most popular framework for building application-specific blockchains. Written in Go, it empowers developers to quickly and easily build and deploy application-specific blockchains, reducing time to market. With a focus on stability, security, and high performance, the Cosmos SDK is the native application-building toolkit at the core of the interchain.