In order to have your transaction packaged, you must send more junk transactions than others, thus exacerbating the vicious cycle.
Written by: Nishil
Compiled by: Frank, Foresight News
I believe many users still don’t know why their transactions on Solana always fail recently?
Let’s start with the basics — from a user’s perspective, when we make a transaction, three things essentially happen:
The transaction was successfully executed without any errors;
Execution failed, for example, the gas fee was paid, but an error was returned during the execution. This usually happens when the execution conditions are not met, such as the token being minted has already been minted, or the slippage exceeds the set value due to price fluctuations;
Undelivered transactions, which do not appear anywhere, indicate that the transaction has not yet reached the "block leader" (Foresight News note, the validator responsible for processing transactions during a certain period of time). This is exactly what many users are experiencing. This is a network-level issue, not a consensus/execution-level issue.
You may be wondering, what is the network layer?
Rest assured, we will discuss these undelivered transactions later and why they are the main cause of Solana congestion right now. Until then, let’s focus on the failed transactions because it’s important to understand why failed transactions are not the main problem.
If you look closely, you might be surprised to find that only about 8% of these failed transactions come from real users, and the rest are cases of on-chain robots executing failed arbitrage transactions: arbitrageurs will flood Solana with junk transactions because the cost of sending junk transactions is negligible compared to the rewards brought by successful arbitrage.
For example, they could send junk transactions to Solana multiple times a day that would cost them a few hundred dollars (because Solana’s fees are so low), while they could make up to $100,000 in profit just by completing one transaction.
Therefore, it is important to note that these failed transactions do not mean that there is a problem with Solana's activity - the Solana network is operating as expected, so these failed transactions are only the result of the Bots' transaction conditions not being met, and are not the main reason for Solana's poor user experience at present.
In fact, Solana’s transaction failure rate has remained around 50% since November last year, and if you look back at the failure vs. success chart I listed above, you’ll see that it was similar before.
Now let’s discuss the main cause of Solana congestion in the past few days - “undelivered transactions”. As mentioned earlier, these transactions failed to reach the “block leader” and were discarded due to problems at the network layer.
The network layer is the communication layer of the Internet, used to send data packets between different connections, such as TCP (Transmission Control Protocol), UDP (User Datagram Protocol), QUIC (designed by Google), etc.
Solana recently upgraded to QUIC as its network layer, which helps establish connections between users and "block leaders", and since Solana has continuous block production capabilities and no memory pool, losing the connection will mean that the transaction will not be written into the block.
QUIC enables block leaders to disconnect or rate-limit certain users based on specific criteria, so block leaders can now abandon certain connections when on-chain demand is high. In other words, this new architecture prevents Solana from stopping when network activity increases - although the network may be very congested at this time, at least it will not stop.
So you might ask, if everything about QUIC was so well designed, why is Solana so bad right now?
So the problem is that even though “block leaders” can now limit certain connections, the logic for exactly which connections to limit is poorly implemented and flawed.
To better understand, let’s imagine that if under normal circumstances each “block leader” has X number of connections to talk to, then during peak activity, the “block leader” starts receiving 10-100 times the number of connection requests…
At this point the "block leader" can choose to drop certain connections, but the problem is that these connections are currently not dropped according to a set of established criteria (such as dropping all connections with a fee less than X), but are dropped randomly...
So essentially, in order for your transaction to be included, you have to send more spam transactions than everyone else, and because there are multiple bots sending connection requests to the network, it becomes increasingly difficult for ordinary users to establish a connection and complete transactions.
That’s the gist of the main issue, teams like Firedancer, Anza, Solana, etc. are working hard to fix the network layer, and these patches are rolling out one after another, with some major patches said to be coming in the next few weeks.
Does this solve the problem? Will Solana take off again? Not really, and there are three reasons why there is still a long way to go:
There is no guarantee how effective the current fix will be in preventing Solana from experiencing congestion issues next time, and we won’t know until it’s actually implemented;
Jump Crypto’s Firedancer might actually address these issues, but it’s not set to be released until the end of the year;
The network spam problem, where Solana’s transaction economics have many problems and cannot prevent malicious users from abusing the network by sending spam transactions;