In late June, My Neighbor Alice Alpha Season 3 debuted on the first Chromia Appnet. However, after about a week, the game entered maintenance mode until late August to address an issue with NFTs that hindered block production and caused lag in certain game functions.
This report, a collaborative effort between the Chromia Core team, Chromia Protocol team, and the MNA development team, aims to provide an overview of the launch, highlighting what worked as intended, what didn't, and the factors contributing to the slowdown, along with planned solutions.
What Worked as Expected?
Bridging ALICE Tokens
The bridging mechanics functioned smoothly. Players successfully linked their BSC address to their Chromia account, allowing them to deposit BEP-20 ALICE tokens and access them in-game. Transfers from Chromia back to BSC were executed without errors. This achievement represents a positive step towards developing general-purpose bridging solutions for Chromia mainnet.
Chromia Launcher and Chromia SSO
The Launcher operated as intended, conducting successful version checks and updates for both the Launcher itself and the MNA game client. It effectively managed the SSO system and handled the association of Binance Smart Chain addresses with Chromia gaming accounts.
MetaMask & WalletConnect Integration
As part of the account linking process, players utilized MetaMask's signing function, which worked flawlessly. This process can be replicated for other decentralized applications (dapps) as well.
My Neighbor Alice New Features
The game client performed admirably, and the on-chain logic governing the game's rules operated without issues. New and experimental features, such as the option for new players to borrow a small section of land, successfully transitioned from private to public testing. This mechanism presents an opportunity to attract new players and generate interest in the game world.
What Didn't Work as Expected?
During the operation of My Neighbor Alice, most of the game's components and mechanics operated as intended. However, a notable issue arose concerning the creation of a large number of Originals NFTs. Addressing this issue will require modifications in Chromia Core/Postchain, the Originals Protocol, and the My Neighbor Alice application.
Although the individual changes required to resolve the issue may be relatively small, the interconnectedness of these systems demands a comprehensive and thorough approach. Consequently, a decision was made to allocate a two-month timeframe to ensure the proper implementation of the necessary changes.
What Caused the Drop in Block Production Time?
The Originals protocol provides two different categories of asset, which can be roughly broken down into ‘fungible’ Originals and ‘non-fungible’ Originals.
This may seem confusing, since Originals is primarily discussed as an NFT protocol. However, Originals combines support for something roughly comparable to ERC-721 (NFT only) and ERC-1155 (a multi token standard that can include any combination of fungible, non-fungible, and semi-fungible tokens).
The purpose of this distinction is that not every in game asset has to be entirely unique. For example, if you are collecting wood planks to use in a crafting recipe, each plank does not have to have its own unique attributes. If you need 20 wood planks, you don’t care which ones they are, you just want to have enough of them.
In contrast, if you are crafting a unique item that may have randomly generated stats, or a unique color, or any other set of properties that sets it apart from every other version of that item, you need a non-fungible Original.
The advantage of using the more complex version in more places is that it offers a high degree of customizability. However, these variants also come with more complex queries. The issues encountered arose from a large number of NFT related operations creating a backlog in block production, ultimately triggering a Postchain issue regarding maximum block time.
What has been learned is that (a) there are optimizations that can be made to the Originals protocol to make it more efficient, and (b) the application itself can be changed to use ‘fungible’ Originals more often, and reserve ‘non-fungible’ Originals for situations when they are absolutely necessary.
By implementing the following solutions, we will resolve the issues that led to the slowdown:
- Review code to ensure that block production time limits are enforced.
- Refine procedures for recovering nodes while an application is already running.
- Perform optimizations to make queries more efficient.
- Use developer documentation to emphasize the distinction between fungible and non-fungible Originals, and suggest applications for each.
- Use fungible Originals in more instances to reduce the number of complex queries.
- Restart Alpha Season 3 from a ‘clean slate’ in order to achieve optimal performance. User assets are safe, as all deposited ALICE tokens and NFTs will be returned to users and/or carried over after the relaunch.
From an outside perspective, it may be tempting to oversimplify the maintenance period as merely a case of "it didn't work." However, the situation is more nuanced. The launch showcased several successful elements, with many mechanics and functionalities operating as intended.
Work is underway to address the issues encountered from various angles, including adjustments to Chromia, the Originals protocol and the My Neighbor Alice. By implementing these solutions, the teams aim to provide a seamless and enjoyable gaming experience for MNA, while also sharing these insights with other developers building decentralized applications on Chromia.
Modern society runs on data and every online service you’re using is built upon underlying databases - ranging from your online bank to music streaming and gaming. Chromia is a relational blockchain - a combination of a relational database and a blockchain - making it easy to develop user-friendly decentralized apps for almost any industry, including DeFi, NFTs, gaming, and more.