Crypto.org Chain Dev Update 18
In this dev update, we would like to highlight several major exciting updates made to the Crypto.org Chain over the past few months, along with what we have to plan for the chain in the future.
Crypto.org Chain Alpha Croeseid Testnet v4.0.0
After our recent post on v4.0.0-alpha-4-croeseid, we released an alpha testnet v4.0.0-alpha-5-croeseid for the Crypto.org Chain, which was upgraded to Cosmos SDK version v0.45.7, go version v1.18, and IBC-go version v4.0.0. It includes the following updates:
Interchain Accounts
We’ve added support for interchain accounts in Crypto.org Chain since v4.0.0-alpha. These can act as both the controller and host chain for interchain account operations. The key features of the Interchain Accounts module are that it enables cross-chain account management built on IBC. They allow one blockchain function (as the controller chain) to access the application features of another blockchain (as the host chain) and open an interchain account on the host chain. Then, the controller chain can submit transactions to be executed on the host chain on behalf of the created interchain account.
Relayer incentivisation
Relayers can ensure a smooth transactional process. Therefore, calling the interchain through effectively incentivising relayers is crucial. We’ve added support for creating incentivised IBC channels since the last release. Meanwhile, it is still possible to create non-incentivised IBC channels. The Fee Middleware module is designed to contribute to incentivising application packets getting relayed. Incentivised channels compensate relayers for relaying IBC packets from one blockchain to another. Additionally, support for fee middleware for interchain account (ICA) channels is enabled.
CosmWasm
CosmWasm grants developers an easy way to build smart contracts using WebAssembly (Wasm), so it’s no surprise they are keen to see it enabled on the Crypto.org Chain. However, there is some ongoing development supporting the latest Cosmos SDK by the Coswasm team in order to be closely aligned with the development roadmap. Additionally, the support for CosmWasm on Windows operating systems and Arm64 architectures is still in the experimental stage, which requires further development and testing. So Cosmwasm has been tentatively delayed for the upgrade and we will continue to observe the updates on CosmWasm and make changes to chainmaind accordingly in future releases.
Deprecation
Since this release, we’ve deprecated the x/supply module in the Crypto.org Chain (including both CLI and gRPC) to prepare users for obtaining a more accurate source for getting the liquid supply of a token by the solution suggested here. Developers and users who are interested can read more about this on the ADR page.
Crypto.org Chain Croeseid-5 Testnet
We’re starting the Croeseid-5 Testnet as a new blockchain from scratch, instead of upgrading the version of the existing Croeseid-4 testnet. Both testnets will run in parallel and serve different purposes. One remains as the next mainnet version, while another is an alpha testnet for exploring new features.
Crypto.org Chain Croeseid-5 testnet will run on Cosmos SDK v0.45.7, ibc-go v4.0.0, and go v.1.18. In Croeseid-5 testnet, users will get unrestricted access to all the features of interchain accounts. One benefit of interchain accounts is that they can act as both the controller and host chain. All message types are allowed to execute on these accounts even if there are any changes made by other controllers. Moreover, same with Croeseid Testnet v4.0.0, users can create incentivised IBC transfers or interchain account (ICA) channels, while creating non-incentivized channels is still possible.
Upcoming Croeseid-5 Testnet Upgrade
As with all our previous releases, a testnet upgrade will be launched with the aforementioned enhancements before going live on the mainnet.
Cosmos SDK 0.46 includes quite a few improvements over the previous version, such as a minimum commission, new modules like x/group, and a standardised NFT module x/nft. Depending on the latest release and development progress, the binary will be upgraded to Cosmos SDK v0.46.*.
Regarding the new modules, x/group allows for the creation and maintenance of on-chain multi-signature accounts. Additionally, it enables voting for message execution based on configurable decision policies. Group members can create proposals and vote on them through group accounts using different decision policies.
On the other hand, along with the new NFT feature, we plan to migrate the Crypto.org Chain’s existing NFT module to Cosmos SDK’s standardised NFT module x/nft. Crypto.org Chain has been offering support for NFTs using a custom NFT module in chain-main. Given that different chains are using their own implementation of NFT modules, it is challenging to achieve flawless interpretability of NFTs across multiple chains using IBC to support more use cases. Thus, it is necessary to have a standardised NFT implementation which has support for reusing NFTs between modules and chains. Developers and users who are interested can read more about the NFT module in the ADR page.
With this new implementation, users are expected to be able to transfer their NFTs between different chains using ICS721 when it becomes available in ibc-go. ICS721 is a proposed standardisation of Cosmos-based NFTs, similar to the ERC721 standard for Ethereum. The ICS721 standard allows ERC721 NFTs to be transferred across the Cosmos ecosystem in an interoperable way.
For ibc-go, it is in the process of being upgraded to v5.0.0, which will be based on Cosmos SDK v0.46.*. We will release the binary upgrade to ibc-go v5.* correspondingly.
The Next Crypto.org Chain Mainnet Upgrade
The upcoming Crypto.org Chain mainnet upgrade will come with all the aforementioned enhancements of the Croeseid-5 and Croeseid-5 Upgrade. Unlike the testnet, users will not have unrestricted access to every feature, with on-chain parameters needing to be changed by passing governance proposals.
The Crypto.org Chain Mainnet Upgrade is estimated to be carried out in Q1 2023. The details of the upcoming mainnet upgrade are as follows:
Cosmos SDK
The current Crypto.org Chain mainnet is running Cosmos SDK v0.44.5. All new parameters will be added in newer versions of Cosmos SDK (e.g. MinCommissionRate will be initialised to 5% during the upgrade).
Interchain Accounts
Both HostEnabled and ControllerEnabled parameters will be set to false during the upgrade process. This will disable all the functionalities of the interchain account by default. These will then be enabled in phases using governance proposals, so that they can’t be exploited in case any issues arise. The current list of allowed messages when the Crypto.org Chain is acting as the host chain can be seen here (subject to change before release).
Relayer Incentivisation
No post-upgrade governance proposal will be required for creating incentivised IBC channels. Users can create new incentivised IBC channels directly after the upgrade.
NFT Module
As mentioned above, we’ll be migrating from Crypto.org Chain’s custom NFT module to the Cosmos SDK’s standardised NFT module. As there are a lot of NFTs currently minted on the network, upgrading all of them at one go may take a long time. Recent enhancements in Cosmos SDK’s IAVL store give us hope to perform an in-place store migration without taking up too much time. The final decision regarding the NFT module’s upgrade process depends on the benchmark results of the new Cosmos SDK’s IAVL store. These results will be shared with the community once they are available.
What’s coming next?
We hope that you have gotten an idea about our upcoming plans for the Crypto.org Chain. We will continue to add new functions and prepare for the next network upgrade.
If you would like to participate in the network and be part of our journey, please bookmark the Crypto.org Chain Medium Page and join our official Discord channel for all the latest updates!