Reaching the limits of Ethereum blockchain

Few players in MegaCryptoPolis experienced issues with collecting Influence Points these days. That is not a smart contract error or a bug in the code. Unfortunately, decentralized city has just met the limits of Ethereum network.

MegaCryptoPolis is the perfect example of a decentralized application with all the game logic running on smart contracts — no server is able to control the gameplay. Major operations (like constructing a building or purchasing a land block) require Gas (kind of fuel for Ethereum network) as the reward for miners to make calculations and include data to Ethereum network block.

It turned out to be a tremendous challenge in bringing elaborated game mechanics (those can be easily developed on centralized servers architecture) to the blockchain. We have spent two additional months solely for continuous re-engineering and performance testing of the smart contract code part that is responsible for Influence Point distribution and Districts Tax collection. With more than 2000 ETH collected by MegaCryptoPolis citizens we consider this task is accomplished and everything was done right.

However, decentralized city is growing, all Districts are now opened for players and new buildings are constructed every day — that means more data for the smart contract to take in consideration for Influence Points calculations.

Keeping user experience in mind, we had made collection of Influence points from all Districts and Global Influence as a single operation in the smart contract. Despite being well-organized and highly optimized, that operation may require amount of Gas that exceeds the limit of Ethereum mainnet for a block size (approx. 8 000 000 at the moment) for a player that has number of buildings in many districts. What is even more embarrassing, that impacts mainly the most active players, and we are really sorry for that. Please be informed, we already have the solution for that and it will be fixed soon.

The Solution

Dividing collect operation for the Global Tax and Districts Tax Funds is in fact the only reasonable solution there. From one side, that may require some extra transactions to grab the whole amount, from other side it will allow players to control their Gas fees. As Districts Taxes are the most consuming part, one can decide when to collect and which part to take.

Being almost invisible for a player, this is a major upgrade for the smart contract, as nothing can be changed in the immutable blockchain without being redeployed. Nevertheless, most players will not even notice that, that does not impact game assets and player’s tokens at all. Maintenance works will take approx. 24–48 hours and are planned for the end of January 2019. We will do our best to deliver upgrades as soon as possible, not later than that.

We assure you, Influence Points are stored and calculated safe for all players. Everyone will receive their proceeds without any loses. All the Influence Points accumulated by all players on the upgrade day will be transferred directly to their balances (no need to collect them then), so Ether can be withdrawn directly to players wallet in one transaction.

We really appreciate support of our community! Those “few players” helped us much in addressing this issue and already received withdrawals to stay as the bonus on their wallets (Ether was not deducted from the game balance).