Author: nishil, crypto analyst; translation: 0xjs@黄金财经
1. Let's start with the basics. From the user's perspective, when they make a transaction, essentially three things can happen:
a. Tx is executed successfully without any errors.
b. Executed but failed - gas was paid, but the execution returned an error. This happens when conditions may not be met, such as the mint they are trying to buy is sold out, or the slippage is exceeded due to very fast price changes, etc.
c. Discarded transactions: tx does not appear anywhere, in this case, tx has not yet reached the block leader. This is what most users see right now. This is a network layer issue, not a consensus/execution issue.
2. Now you might ask what is the network layer, but later we will discuss these discarded transactions and why they are the main cause of the recent congestion on the Solana network.
First let's understand how failed transactions are generated, because this is important to understanding why failed transactions are not the main problem.
3. You will be surprised to find that only about 8% of these failed transactions are made by actual users, and the rest are failed arbitrage transactions made by on-chain robots. Arbitrageurs send spam on the chain because the cost of spamming is negligible compared to the ultimate reward of successful arbitrage.
4. For example: they can send spam to the chain multiple times a day, which will cost them hundreds of dollars (because Solana's fees are lower), and they only need to complete one transaction to make more than $100,000 in profit.
5. Therefore, it is worth noting that these failed transactions do not mean that the blockchain has failed. The blockchain is operating as expected. These are just a few robot transactions that ultimately failed because the transaction conditions were not met. This is not the reason why the user experience on Solana is bad right now.
6. In fact, Solana's transaction failure rate has remained around 50% since November last year.If you look back at the failure and success charts I listed above, you will find that it was similar before.
7. Now let's discuss the main cause of Solana's congestion in the past few days - "transactions that never succeeded".As mentioned earlier in this article, these transactions failed to reach the block leader and were discarded due to problems in the network layer.
8. The network layer is the communication layer of the Internet, which is used to send data packets from one connection to another. For example - TCP, UDP, QUIC (designed by google), etc.
9. Solana recently upgraded to QUIC as its network layer, which helps to establish connections between users and block leaders. Since Solana has continuous block production and no memory pool, losing connectivity will mean that tx will not land on the block.
10. QUIC enables block leaders to cut off or rate-limit certain user connections based on specific criteria. Therefore, block leaders can now disconnect certain connections during periods of high demand.
11. This new architecture prevents Solana from shutting down during periods of increased network activity. Although it may be too congested to be used, at least it won't go down this time, right?
12. So you might ask, if everything about QUIC is so well designed, why is Solana so bad? So the problem is that although block leaders can now limit certain connections, the logic for limiting connections is poorly implemented and contains errors.
13. For a better understanding, let's imagine a situation where each block leader has X connections that it can communicate with. Now at peak activity, block leaders start receiving 10-100 times the number of connection requests...
14. This is when the block leader can choose to give up some connections. However, currently these connections are not dropped according to set criteria (such as dropping all connections with fees below x), but are dropped randomly...
15. Essentially, to win, you have to spam more than everyone else, and since there are multiple bots that will spam the network with connection requests, it becomes increasingly difficult for regular users to establish connections and complete transactions.
16. This is the gist of the main problem. Teams like firedancer from jump, Anz, and Solana are working hard to provide fixes to the network layer. As I write, these patches are being rolled out, and it is said that some major patches will be released in the next few weeks.
17. So does this solve the problem? Will Solana surge again? Well, not exactly. There is still a long way to go, for 3 reasons: a. There is no guarantee how effective the current fixes will be in preventing Solana’s next congestion problem. We won’t know until we see it in action. b. Firedancer may indeed fix these problems, but it won’t be here until the end of the year. C. Network spam problem: There are multiple issues with the transaction economics on Solana, and there is no way to prevent bad actors from spamming the chain. 18. Finally, I want to end with this: I believe Solana is fighting to defend the right trade-off. Just as Ethereum has gotten rid of its fair share of problems, so should Solana.