Why we have a transaction limit per block

Especially hardcore gamers had experienced error 4013 which informs that you already have done 25 transactions in that block and you have to wait.

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? In just 3 minutes, you will know why and understand that this limitation is reasonable.

First of all, let us do a step backwards 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.

Let’s get metaphorical

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 small 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.