Home  >  Article  >  In-depth analysis: How did Solana get blocked?

In-depth analysis: How did Solana get blocked?

PHPz
PHPzforward
2024-04-09 08:07:111061browse

Why are current transactions on Solana always failing?

Let’s start with the most basic concepts and analyze them step by step.

From a user perspective, when we trade on Solana, there are essentially three potential outcomes:

  • Transaction execution successful, everything is normal;

  • Transaction execution failed, the user has paid the gas fee, but the execution result returned an error. This happens when the conditions for the transaction are not met, such as the token the user is trying to buy is sold out, or the price moves too fast (beyond the preset slippage), etc.;

  • Transaction Lost (Dropped) : The transaction has no trace, that is, the transaction failed to reach the "block leader node" (Odaily Note: every 4 blocks A duty node that takes one turn). This is the situation that most users are currently encountering. Essentially, this is a network layer problem, not a consensus layer or execution layer problem.

Execution issues are not the main cause of congestion

Now you may ask, what is the network layer? Why are transactions lost? Why are they the main cause of current congestion in Solana?

Let’s put aside these most important issues for the time being and first look at those transactions that failed to execute (i.e. the second case) and explain why Says failed transactions are not the main cause of congestion.

Combining the data on the chain, it can be seen that of all transactions that failed to be executed, only about 8% were submitted by real users, and the rest were arbitrage transactions initiated by robots on the chain.

深度解析:Solana 究竟是如何堵上的?

The reason why arbitrageurs continue to initiate "junk" transactions is because compared with the potential profits that can be obtained from successful arbitrage, frequent arbitrage transactions Transaction costs can be said to be minimal.

Specifically, arbitrageurs can continuously initiate transactions within a day. The cost of doing so is about a few hundred dollars per day (because Solana’s network fees are low), but as long as they can succeed With just one transaction, you can earn hundreds of thousands of dollars in profit.

It should be noted that these failed transactions do not mean that the Solana network has failed and the blockchain is still running normally. These are just some robot transactions that failed because the conditions were not met. This is not the main reason for Solana’s current bad experience.

In fact, Solana’s deal failure rate has remained around 50% since November.

深度解析:Solana 究竟是如何堵上的?

The real reason: Transactions were dropped at the network layer

Now,Let’s discuss the real reason for Solana’s congestion over the past few days. The main reason - "transaction lost".

As mentioned above, these are transactions that failed to reach the "block leader node", and the reason why the transactions failed to arrive is because they were discarded in the network layer .

The network layer is the communication layer of the Internet. It is used to send data packets from one endpoint to another. Common network layer protocols include TCP, UDP, QUIC (developed by Google), etc. wait. Solana previously upgraded its network layer protocol to QUIC, which helps establish connections between users and "block leader nodes".

Since Solana adopts a continuous block generation mechanism and there is no mempool to temporarily store unconfirmed transactions, this means that once the connection is lost, the transaction will never be included again. within a certain block.

深度解析:Solana 究竟是如何堵上的?

The advantage of the QUIC protocol is that the "block leader node" can obtain a new function: Cut a block according to specific criteria some users' connections, or limit their data transfer rates.

The significance of this function is that when the network demand peak occurs, the "block leader node" can actively cut off certain connections, thereby preventing Solana from being affected by the network Increased activity and complete outage.

You may be wondering again, if the design of the QUIC protocol is so perfect, why is Solana still so blocked now?

The real problem is that although "block leader nodes" can now choose to actively regulate certain connections, the logic of deciding which connections need to be regulated is problematic.

深度解析:Solana 究竟是如何堵上的?

In order to understand this problem more concretely, we can imagine a situation where each "block leader node" has X A connection that can communicate, but when the network demand peak occurs, the connection requests received by the node are 10 to 100 times its carrying capacity...At this time, the Nodes need to choose to cut off certain connections. However, the current situation is that there is no set standard for how to select the connections to be cut off (such as cutting off all connections with a cost lower than xxx), and whether all connections will be cut off is random... …

At the end of the day, if you want a transaction to be confirmed in the current situation, all you can do is send more transaction requests, but since there are many robots that are constantly sending requests to the network By sending a large number of connection requests, it becomes increasingly difficult for the average user to establish a connection and complete a transaction.

How to fix? how long it takes?

This is the problem Solana faces now.

Currently, Jump (Firedancer client development team), Anza (Agave client development team), Solana Labs and other teams are working on repairing the network layer. Fixes will be rolled out gradually this week, and some heavyweight updates are expected to be released in the coming weeks.

Can this effectively solve the problem? Will Solana "to da moon" again... there's no absolute answer.

There are three main reasons why there are still many uncertainties:

  • First, no one can guarantee whether the upcoming repair patch will take effect. Only after it actually works can we see what actually happens.

  • The second is that the Firedancer client developed by Jump seems to be able to solve the problem, but it will not be officially released until the end of this year.

  • The third issue is about "junk" transactions. Solana's economic mechanism makes it difficult for the network to prevent malicious actors from continuing to conduct "junk" transaction attacks on the chain.

#Finally, I want to appeal to everyone to realize one thing: I believe Solana is making the right trade-offs (Odaily Note: Because it refers to setting reasonable Connect Segmentation Standard) and fight, just like Ethereum has been free of many problems, Solana will eventually be free of these problems.

The above is the detailed content of In-depth analysis: How did Solana get blocked?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:chaincatcher.com. If there is any infringement, please contact admin@php.cn delete