1/ Lets start from the very basics.
From the point of view of a user, when they make a trade, there are three things that can essentially happen:
1. Tx gets executed successfully without any error.
2/
2. Executed but Failed - gas is paid, but the execution returns error. This happens when the conditions may not have been met, like a mint they're trying to buy is sold out or the slippage exceeds as the price moved quite fast, etc.
3/
3. Dropped Transactions: The tx doesn't appear anywhere, in this case the the tx hasn't reached the block leader. This is what most of the users are seeing currently. This is a networking layer problem and not a problem with consensus/execution.
4/ Now you might ask what is a fu*ck*ing networking layer, but we'll talk about these dropped txs, and why they are the main reason of congestion on Solana rn, a bit later.
First lets address the failed txs that land. Bc its imp to understand why failed txs aren't the main issue.
5/ You'll be surprised to know that only ~8% of these failed txs are by actual users, rest of them are failed arb txs by onchain bots.
The arbitrageurs spam the chain because the cost to spam is minimal compared to the resultant rewards of a successful arbitrage.
6/ For example:
they can spam the chain multiple times a day which would cost them a few hundred dollars (because of low fees on Solana), and they just need to land that one transaction to earn upwards of $100k denomination profit.
7/ Thus its imp to note that these failed tx do not point towards liveness failure, the blockchain is running as expected and these are just few bot txs that ended up getting failed because the tx conditions werenât meant.
This is not the reason for the bad UX on Solana rn.
8/ Infact Solana has had a consistent rate of ~50% failed transactions since Nov last year. If you go back in time in the failed vs successful chart I put above, youâll find that it was similar before as well.
9/ Now lets discuss the main cause of congestion on Solana in the last few days - 'the transactions that never made it'.
As mentioned earlier in the thread, these are transactions that failed to reach the block leader, and got dropped bc of issues in the networking layer.
10/ Networking layer is the communication layer of the internet, it is used to send packets of data from one connection to another. For example - TCP, UDP, QUIC (designed by google), etc.
11/ Solana recently upgraded to QUIC as its networking layer, it helps setup a connection between a user and the block leader.
And as Solana has continuous block production and does not have a mempool, loosing a connection would mean that tx would not land on the block.
12/ QUIC gives block leaders the ability to cut some user connections or rate limit them based on specific criteria. Thus block leaders can now drop certain connections during high demands.
13/ This new architecture prevents Solana from getting HALTED during increased network activity.
It might be unusably congested, but atleast it won't stop this time eh?
14/ So you might ask, if everything about QUIC is so well designed, why is Solana so fucked rn?
So the problem is that even though block leaders can now throttle certain connections, the logic on which connections to throttle has been poorly implemented and is buggy.
15/ To understand better, lets imagine a situation where each block leader has X connections it can talk to.
Now during times of high activity - the block leaders start receiving requests for 10-100X number of connections...
16/ This is when block leaders can choose to drop certain connections.
However, instead of connections getting dropped on a set criteria (like drop all with fees lower than x), currently these connections would get dropped randomly...
17/ Essentially, to win, you must spam more than the others
And because there are multiple bots who would spam the network with connection requests, it becomes harder and harder for regular users to establish a connection and land their transactions.
18/ So that's the gist of the main issue folks.
Teams like
@jump_firedancer
@Anza_xyz
@solana
etc are working to ship fixes to the networking layer. These patches are being rolled out as we speak and some major ones are said to come out in the duration of coming weeks.
19/ So this will solve the problem? Solana to moon again? Well, not quite.
3 reasons why there is a long road ahead:
1. Thereâs no guarantee as to how efficient the current fixes will be in preventing next congestion problem on Solana. We can only know when we see it in action.
20/
2. Firedancer by @Jump_
might indeed solve the issues, but that wouldnât be coming out till end of this year.
3. Issues with network spam: There are multiple issues with economics of txs on Solana and it fails to prevent bad actors from spamming the chain.
21/ I have briefly talked about current issues with Solana's transaction mechanism in the thread below. Feel free to give that a read to understand better.
22/ At last I'd want to end with the note that I believe Solana is fighting for the right tradeoffs that are indeed hard to defend.
Just like Ethereum emerged from its fair share of issues, Solana shall too. Here is a thread that summarises it well:
#SOLUpdate #SolanaMemeCoin #SOLANA #Sol