Neutron Core Releases
Overview
This section provides a comprehensive overview of the significant changes and updates in Neutron, focusing on the upgrades to Cosmos SDK, Wasmd, and Neutron's internal modules.
v5.0.0
IBC Rate Limits integration
Neutron has integrated IBC Rate Limits module - a module that is responsible for adding a governance-configurable rate limit to IBC transfers.;
Cron module improvements
- Now messages can also be executed in BeginBlocker;
Wasmd Upgrade
Our custom fork of wasmd, based on version 0.53, brings forward these notable changes:
Notable changes:
- Upgrade to CosmWasm 2.1.0
IBC-GO upgrade to v8.5.1
v4.0.0
Slinky integration
Neutron has integrated Skip's Slinky - A general purpose price oracle leveraging ABCI++;
Feemarket integration
Neutron V4 has integrated Skip’s Feemarket, which implements the Additive Increase Multiplicative Decrease (AIMD) feemarket similar to Ethereum EIP 1559, where the base fee adjusts according to the network's demand for block space.
This model could potentially reduce the impact of spam by making it more expensive to flood the network with non-essential transactions, and create a more predictable and efficient transaction environment, enhancing the network's stability and efficiency, and ensuring that Neutron can handle large volumes of transactions without compromising crucial processes like IBC transfers.
There will no longer be static gas prices on Neutron . Gas-prices will be ‘dynamic’, with the price of gas depending on activity on the chain.
Cosmos SDK Upgrade
Neutron has transitioned from Cosmos SDK v0.47 to the more advanced v0.50, encompassing significant improvements and custom adaptations. The key aspects of this upgrade include:
- Reference to the main Cosmos SDK v0.50 documentation. () Access to the full changelog here.
- ABCI 2.0 Integration: Cosmos SDK v0.50 upgrades to CometBFT v0.38 and fully implements ABCI 2.0.
- Optimistic Execution: Cosmos SDK v0.50 introduces Optimistic Execution, which allows transactions to be executed and committed without waiting for confirmation from all validators. This can significantly improve the performance of chains with a high volume of transactions.
- Modular SDK modules: Cosmos SDK v0.50 starts to extract core modules away from the SDK. These are separately versioned and follow their own release cadence.
- IAVL v1: Cosmos SDK v0.50 upgrades the IAVL tree implementation to v1, which provides a number of performance and security improvements.
- AutoCLI: Cosmos SDK v0.50 introduces AutoCLI, a library that makes it easier to create CLI commands for SDK applications.
- Sign Mode Textual: Cosmos SDK v0.50 introduces a new sign mode that for hardware devices, as a replacement of Amino JSON.
- Less boilerplate: Cosmos SDK v0.50 requires less boilerplate in general for modules code and applications. Be sure to read the UPGRADING.md to take advantage of these improvements.
Wasmd Upgrade
Our custom fork of wasmd, based on version 0.51, brings forward these notable changes:
Notable changes:
- Upgrade to SDK v0.50.1 Eden release
- Upgrade to IBC v8.0.0 release
IBC-GO upgrade to v8.2.1
- Channel upgradability;
- Support for unordered channels in ICA
Golang upgrade
Neutron V4 uses Golang 1.22
v3.0.0
Block SDK integration
Neutron has integrated Skip's Block SDK which allows builders to implement different MEV strategies on Neutron.
CW bindings
Neutron V3 contains convenient CW bindings for Neutron DEX module which allows to build smart-contract applications in a more efficient way avoiding tricky Stargate messages and queries.
Golang upgrade
Neutron V3 uses Golang 1.21
v2.0.0
Dependencies upgrade
Neutron V3 bumps a lot of source code dependencies to the latest versions (at the time of the release) to resolve security and maintaining issues.
Cosmos SDK Upgrade
Neutron has transitioned from Cosmos SDK v0.45 to the more advanced v0.47, encompassing significant improvements and custom adaptations. The key aspects of this upgrade include:
- Primary Changes:
- Reference to the main Cosmos SDK v0.47 documentation.
- Access to the full changelog here.
--broadcast-mode
block was removed. You need to query the result for a TX with neutrond q tx hash instead.- the SDK version includes some key store migration for the CLI. Make sure you backup your private keys before testing this! You can not switch back to v0.45.
- We have created our own fork of the Cosmos SDK, introducing unique enhancements tailored to our needs:
- Gas Counting Exclusion: Removal of gas counting in the upgrade module's begin blocker for more consistent gas accounting.
- BankHooks Introduction: Implementation of BankHooks, a pivotal feature for the new Tokenfactory.
- Optimized Slashing Calculation: Backporting of slashing missed blocks calculation from Cosmos SDK v0.50.
- CometBFT Transition: A significant shift to CometBFT for enhanced consensus reliability.
- ABCI 1.0 Support: Enabling chains to implement their mempool with ABCI 1.0 compatibility.
- Module Parameters Handling: Deprecation of the x/params module. Modules now manage parameters directly.
- IBC-Go Upgrade: Moving to ibc-go v7 for improved inter-blockchain communication.
- Technical Enhancements: Several minor yet impactful technical improvements (see full list here).
Wasmd Upgrade
Our custom fork of wasmd, based on version 0.45, brings forward these key developments:
- Instantiate2 Activation: Enabling predictable contract addresses through the instantiate2 feature.
- Smart-Contract Size Limit Increase: Expansion of the binary size limit from 800KB to 1.6MB as explained here.
- Legacy REST endpoints for queries and txs are completely removed and only gRPC endpoints must be used now;legacy REST endpoints for queries and txs are completely removed and only gRPC endpoints must be used now.
- contracts are able to use floating point operations.
- Additional Improvements: Various other technical modifications and advancements (see full changelog here).
Neutron Itself
Enhancements within Neutron focus on integrating new modules, refining existing functionalities, and ensuring better alignment with the upgraded Cosmos SDK:
Globalfee Module Integration
- Minimum Gas Price Enforcement: A mechanism implemented via the globalfee module to standardize gas prices across validators.
Tokenfactory Module Update
- BankHooks Activation: Introduction of BankHooks for smart contracts handling token transfers, as detailed here.
- Fee Removal for Token Creation: Elimination of creation fees for Tokenfactory tokens, promoting free token generation on Neutron (source).
Interchain Transactions and ContractManager Module Refactor
- ICA Usability Improvements: Enhanced Interchain Account (ICA) functionality for a more user-friendly and secure experience for developers.
- Sudo Execution Error Handling: Streamlined error message retrieval in the ContractManager module.
- New Fee Structure for ICA Creation: Introduction of a fee system for developers creating ICAs on remote chains. Learn more
Adminmodule Rework
- Module and Governance Alignment: The admin module has been redesigned to align with the deprecated params module and the new governance proposal handling mechanism in Cosmos SDK v0.47. For more details, visit Adminmodule Overview.
Dex module intoduction
- Neutrality: Bringing completely new dex module. Users may interact with this module to provide liquidity and execute trades according to commonly-accepted exchange semantics.