Autor original: nishil
Fuente original: X
Compilado por: Frank, Foresight News
Creo que muchos usuarios todavía no saben por qué sus transacciones en Solana siempre fallan recientemente.
Comencemos con lo básico: desde la perspectiva del usuario, cuando realizamos una transacción, suceden básicamente tres cosas:
La transacción se ejecutó exitosamente sin errores;
La ejecución falla, por ejemplo, se paga la tarifa del gas, pero se devuelve un error durante la ejecución, esto generalmente ocurre cuando no se cumplen las condiciones de ejecución, por ejemplo, el token que se intenta acuñar ha sido acuñado o el deslizamiento excede el valor fijado debido a fluctuaciones de precios, etc.;
Transacciones no entregadas. Este tipo de transacción no aparece en ninguna parte, lo que indica que la transacción aún no ha llegado al "Líder del bloque" (Foresight News Note, el verificador responsable de procesar las transacciones en un período de tiempo determinado). Esta es exactamente la situación que muchos usuarios están experimentando actualmente es un problema de capa de red en lugar de un problema de nivel de consenso/ejecución;
Quizás te preguntes, ¿qué es la capa de red?
No se preocupe, hablaremos de estas transacciones no entregadas en un momento y de por qué son la razón principal de la congestión actual de Solana. Antes de hacer eso, centrémonos en las operaciones fallidas porque es importante comprender por qué las operaciones fallidas no son el problema principal.
Si miras de cerca, te sorprenderá descubrir que solo alrededor del 8% de estas transacciones fallidas provienen de usuarios reales, el resto son casos de operaciones de arbitraje fallidas ejecutadas por bots en la cadena: los arbitrajistas inundarán Solana con transacciones spam porque son diferentes de las exitosas: el costo de enviar transacciones spam es insignificante en comparación con las recompensas del arbitraje.
Por ejemplo, podrían enviar transacciones de spam a Solana varias veces al día, lo que les costaría cientos de dólares (porque Solana tiene tarifas bajas), mientras que podrían obtener hasta 100.000 dólares de ganancias completando una sola transacción.
Por lo tanto, es importante tener en cuenta que estas transacciones fallidas no significan que haya un problema con la actividad de Solana: la red Solana está funcionando como se esperaba, por lo que estas transacciones fallidas son simplemente el resultado de que no se cumplen las condiciones de transacción de los bots, y No es la razón principal de la mala experiencia de usuario actual de Solana.
De hecho, la tasa de fracaso de acuerdos de Solana ha sido de alrededor del 50% desde noviembre, y si miras hacia atrás en el gráfico de fracaso versus éxito que presenté anteriormente, verás que antes era más o menos lo mismo.
Analicemos ahora la causa principal de la congestión de Solana en los últimos días: las "transacciones no entregadas". Como se mencionó anteriormente, estas transacciones no lograron llegar al "líder del bloque" y fueron bloqueadas debido a problemas en la capa de red.
La capa de red es la capa de comunicación de Internet y se utiliza para enviar paquetes de datos entre diferentes conexiones, como por ejemplo: TCP (Protocolo de control de transmisión), UDP (Protocolo de datagramas de usuario), QUIC (diseñado por Google), etc.
Solana acaba de actualizar QUIC como su capa de red, lo que ayuda a establecer conexiones entre los usuarios y los "líderes de bloques", y dado que Solana tiene capacidades de producción continua de bloques y no tiene un grupo de memoria, perder conexiones significará que las transacciones no se escriben en bloques.
QUIC permite a los "líderes de bloque" cortar conexiones o limitar la velocidad de ciertos usuarios según criterios específicos, por lo que los "líderes de bloque" ahora pueden interrumpir ciertas conexiones cuando la demanda en la cadena es alta, es decir, esto. La nueva arquitectura evita que Solana se detenga cuando la actividad de la red aumenta: la red puede estar muy congestionada en este momento, pero al menos no se detendrá.
Entonces podría preguntarse, si todo en QUIC estaba tan bien diseñado, ¿por qué Solana es tan mala ahora?
Entonces, el problema es que, aunque el "líder del bloque" ahora puede restringir ciertas conexiones, la lógica de exactamente "qué conexiones restringir" está mal implementada y es defectuosa.
Para entenderlo mejor, imaginemos que si en circunstancias normales cada "líder de bloque" tiene X conexiones con las que hablar, durante el pico de actividad, el "líder de bloque" comenzará a recibir entre 10 y 100 veces la cantidad de solicitudes de conexión...
En este momento, el "líder del bloque" puede optar por abandonar determinadas conexiones, pero el problema es que actualmente esas conexiones no se descartan según un conjunto de criterios establecidos (como descartar todas las conexiones con un coste inferior a X), sino que se descartado al azar.....
Básicamente, para que se incluyan sus transacciones, debe enviar más transacciones de spam que otros, y dado que hay varios bots que envían solicitudes de conexión a la red, se vuelve cada vez más difícil para el usuario promedio establecer una conexión y completar las transacciones.
Esa es la esencia del problema principal, equipos como Firedancer, Anza, Solana, etc. están trabajando arduamente para arreglar la capa de red, estos parches se están implementando y se dice que algunos parches importantes se implementarán en las próximas semanas.
¿Esto resolverá el problema? ¿Solana volverá a despegar? No del todo, hay tres razones por las que aún queda un largo camino por recorrer en el futuro:
No hay garantía de cuán efectiva será la solución actual para prevenir el próximo problema de congestión de Solana, y no lo sabremos hasta que realmente se implemente;
Firedancer de Jump Crypto puede resolver estos problemas, pero no se lanzará hasta finales de año;
El problema de las transacciones de spam en la red, es decir, hay muchos problemas con la economía de transacciones de Solana, que no pueden evitar que usuarios malintencionados envíen transacciones de spam para abusar de la red;