Techtalk

Why we have a transaction limit per block

Some of you who play LiteBringer excessively have already stumbled over error 4013 which states that there are too many chained transactions and no further game actions can be done in this block. So, why does that happen?

Image for post
Image for post

How to reach the limitation

In just 4 minutes, you will know why there is a limit of 25 transactions per block and understand that this limitation is reasonable. But let’s start at the beginning: If someone uses the maximum amount of characters, he can evolve them, change their complete gear (200 pieces of equipment in total), level up the skills and equipment to any level he wants and dismantle 100 pieces of armor without surpassing the limit of 25 transactions.

But LiteBringer is an idle game and as soon as a gamer made significant progress, quests can take up to several hours. Therefore, it is very unlikely that all characters complete their missions at the same time and are sent to the next one in the same block.

Consequently, the limit can only be reached when a gamer decides to dismantle a huge amount of equipment for resources. Because 36 items can be dismantled per transaction, a player has to destroy more than 900 pieces of equipment to surpass the limit. To tag all these items and do 25 transactions in just in 2.5 minutes requires a lot of skill — not to mention that most will not start right at the moment a block is added and just have a fraction of the 2.5 minutes to do that.

Let’s get metaphorical

But why is there even a limitation? First, let us do a step backward and talk about what happens during a transaction. Unfortunately, Litecoin transactions are not as easy as what you are used to when using fiat money. With physical currency, you just hand over the money and get your change in return.

With Litecoin you don’t have a specific number of Litoshi in your wallet. It is more like a certificate that proves that you own a precious single gold coin which is stored with a person you trust. If you want to pay someone with a fraction of it, you both go to the person who holds the coin. You fill out a contract that grants the person you want to pay a fraction of the coin. Then you receive a new certificate which states the current percentage of the coin you own and your prior certificate granting you the whole coin becomes obsolete. As soon as you leave the office this transaction becomes valid.

If you want to pay multiple people at the same time, you don’t have to go there with every single person, one after the other. If for instance you want to pay 2 people at the same time, all 3 of you can enter the office of the attorney together. You pay the first one and get a new certificate back. Then you pay the second person and receive the final certificate in return.

This works great until you try to get into the office with a thousand people, who you want to pay at the same time. To avoid chaos, the attorney will only let you pass in smaller groups at any one time.

What the mempool does

The mempool plays the role of the attorney’s office as described in the metaphor above. In the mempool are transactions which are not yet validated and part of a block. If a transaction is finalized, the buyer receives the “change” as an output of the mempool transaction. If the buyer wants to carry out another transaction this “change” can also be used for the new transaction. In return, he will again receive a new mempool transaction output. Since the second transaction depends on the first one, these are called chained transactions.

When a reorg is happening, the mempool will have to be cleaned out to maintain consistency. In that case it cannot be known how many transactions have to be cleared, or which transactions will become invalid, which is why certain precautions ensure the maintenance will not be overly expensive.

Without regulation, there might be 10,000 children who have to be dropped because of one single bad parent. This results in a massive crawl of a gigantic proportion in the mempool. Therefore, it is reasonable to limit the relationships a new transaction can have with those already in the mempool. A default node will not allow a transaction with more than 25 ancestors or descendants in the mempool.

Why we need to follow the rules

Transactions which follow the rules and fulfill this and other certain conditions are called standard transactions. This does not mean, that other types are prohibited. Litecoin allows us to create some very complex transactions. For instance, they can contain several outputs, signatures or junk. Transactions of the last category can stem from bad and malicious software but also from old or broken transactions.

It is not forbidden to create such transactions but they are discouraged by defining rules for standard transactions. These are accepted by all default configured nodes and relayed to others on the network.

Non-standard transactions, in contrast, are not allowed in the mempool of default configured nodes, if they are not yet included in a block. Consequently, they are not broadcasted throughout the network. Nevertheless, a miner can actively decide to accept such a transaction! However, this depends on whether the miner is willing to do that. Most miners use standard nodes, which is why it can take a lot of time before a single miner working with a non-standard transaction can create a block.

How to get rid of the limitation and why we won’t

Of course, we would be able to allow our gamers to create infinite transaction chains. But this would result in delayed validation. In most cases, the game would get stuck for hours or even days. So, this is the reason why we decided to follow the regulations that create standard transactions only.

Another option would be that we split the funds at the moment they are transferred to the LiteBringer wallet. Using the metaphor above, we would melt the goldcoin and make several smaller one. Each of them could be used for a different transaction chain. This would multiply the amount of transactions that are possible per block and it would not be possible to push reach the limit in the average 2.5 minutes until the next block is mined.

But if we split the coins on default, everyone who wants to transfer funds to their LiteBringer wallet would have to pay increased transaction fees. Increased fees would also occur when a player wants to buy items with more than one single part of the splitting. In our opinion, it is not reasonable to increase the financial burden for everyone just to eliminate a limit which will only be reached in very rare conditions and would only need seconds to disappear again.

Who we are

LiteBringer is the first true blockchain game, giving you full control over your assets and enables you to earn real money through trading. It is developed by CipSoft an independent developer and operator of online games for various platforms. We are the maker of the MMORPG Tibia which ranks among Europe’s most successful online games since 1997.

Chat with us at Discord

Get the latest news on Twitter

Get the most valuable content with our Newsletter

Image for post
Image for post

Written by

LiteBringer is the first true Litecoin game. Join us on Discord and chat with us: https://discord.com/invite/u5zJgdd

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store