Cortina: Linealización de la Cadena X

AVA Labs Español
Avalanche en español
7 min readMar 23, 2023

El lunes 27 de marzo de 2023 se publicará el código de prelanzamiento de la actualización Avalanche Cortina. Esta actualización se activará a las 11 A.M. ET (3 P.M. UTC) del jueves 30 de marzo de 2023. Toma en cuenta que este código de pre-lanzamiento SÓLO funcionará en Fuji. Si ejecuta el código en Mainnet, se cerrará al iniciarse.

A la espera de que la actualización de Cortina funcione exitosamente en Fuji, se anunciará la hora de activación de Avalanche Mainnet y se publicará la versión oficial de Cortina AvalancheGo (v1.10.0).

La actualización de Cortina incluye optimizaciones de protocolo que no son compatibles con las versiones anteriores de AvalancheGo < v1.10.0. Si ejecutas un nodo en Fuji, debes actualizar el software a AvalancheGo >= v1.10.0 antes de la hora de activación en Fuji. Si eres un operador de nodo en Mainnet, no se requiere ninguna acción hasta que se publique el código oficial AvalancheGo@v1.10.0.

Linealización de X-Chain

La X-Chain ejecuta el Consenso Avalanche, un protocolo sin líder para implementaciones en DAG que permite el procesamiento concurrente de UTXOs no conflictivos con alto rendimiento sin establecer un orden total de actividad. La cadena C, la cadena P y todas las subnets Avalanche, por otro lado, ejecutan Snowman++, un protocolo basado en cadenas lineales y de orden total que secuencia la producción de bloques sin conflicto y sin franjas horarias en miles de participantes.

La semántica existente de la Cadena-X impide o complica significativamente la integración de Avalanche Warp Messaging (AWM), la capacidad de agregar transacciones complejas en X-Chain, la habilitación de sincronización de estados y un amplio soporte de exchanges. La integración de AWM requiere que Snowman++ verifique la Multifirma BLS de los mensajes entrantes de otras subredes Avalanche. Esta limitación significa que la X-Chain, en su forma actual, no puede interactuar con las subredes y que el consenso basado en DAG que ejecuta no puede aplicarse ampliamente a las subredes, que en su inmensa mayoría desean comunicarse sin problemas con otras subredes. La ordenación parcial de la X-Chain significa que no existe un estado canónico durante la verificación de vértices (un vértice es el contenedor de transacciones por lotes en la X-Chain, similar a un bloque en una cadena de bloques) y que los vértices se procesan, por diseño, en un orden diferente en los distintos nodos. Sin un estado canónico, interactuar con objetos compartidos en la cadena, como los intercambios, y sincronizar el estado con la punta de la red (para evitar reprocesar toda la actividad histórica) se convierte en un problema no trivial y propenso a errores que resta tiempo que la comunidad podría dedicar a seguir evolucionando Subnets. Por último, el orden no determinista de la actividad en la cadena impide en gran medida la capacidad de muchos exchanges tradicionales para integrarse con la X-Chain en su forma actual, ya que la mayoría de los exchanges tradicionales están diseñadas para cadenas de bloques totalmente ordenadas, como Bitcoin y Ethereum, y tienen dificultades para conciliar los saldos en diferentes momentos en una cadena de bloques parcialmente ordenada.

Cortina migra la Cadena-X para ejecutar el consenso Snowman++ y operar como una blockchain de orden total en un proceso llamado “linealización”. Cuando comience la linealización, ya no será posible añadir vértices adicionales al DAG de la X-Chain. El estado terminal del DAG, ahora inmutable, se utilizará como estado de génesis de la X-Chain linealizada impulsada por Snowman++. El formato de transacción utilizado en la X-Chain y las API para enviar transacciones, obtener el estado de la transacción y obtener el saldo no cambiarán durante este proceso, por lo que la mayoría de las wallets no necesitarán realizar ningún cambio para soportar este evento de linealización. Sin embargo, los exploradores compatibles con X-Chain tendrán que migrar para analizar bloques en X-Chain en lugar de analizar vértices X-Chain, que tienen un aspecto muy similar a los bloques P-Chain. La linealización se realiza sin problemas y no debería provocar ningún tiempo de inactividad en la P-Chain, la C-Chain ni ninguna subred. Sin embargo, la cadena X quedará inaccesible brevemente.

Como se ha mencionado anteriormente, esta migración allana el camino para la integración de Avalanche Warp Messaging, nuevos tipos de transacciones que modifican el estado compartido de X-Chain, proporciona una ruta directa para permitir la sincronización de estados y habilitar a los exchanges soportar X-Chain, que contendrá muchos de los tokens utilizados en Elastic Subnets. Aunque es posible introducir un orden total en un DAG, hacerlo en la X-Chain habría requerido reescribir el motor de consenso de Avalanche y no habría sido útil para ninguna subred. La migración a un único motor de consenso en toda la Red Avalanche, que reduce el tamaño de la base computacional de confianza y aumenta el aprovechamiento de los esfuerzos de I+D existentes, permitirá un desarrollo más rápido y una innovación de aplicación más amplia.

Hemos preparado aquí una guía de migración para integradores que destaca todos los cambios en las API de AvalancheGo necesarios para soportar Cortina.

Recompensas a los delegadores por lotes

Desde el lanzamiento de la red Avalanche, los validadores han tenido la oportunidad de cobrar una comisión de servicio a cualquiera que delegue en su nodo. Si un validador está en línea durante el 80% de un periodo de delegación, recibe un % de la recompensa (la comisión) obtenida por el delegante. La P-Chain distribuye esta comisión como un UTXO separado por periodo de delegación.

Como el número de delegados en la red ha aumentado sustancialmente en los últimos meses (hasta ~80k a partir del 20/3/23), el número de UTXOs que un validador puede recibir como comisión también ha aumentado sustancialmente. Esto significa a menudo que un validador terminará con miles de pequeños UTXOs que deben ser agregados para ser utilizados para cualquier cosa. El seguimiento de miles de UTXOs en exploradores y carteras también hace que proporcionar una gran UX sea más difícil de lo necesario.

Cortina modifica cómo se distribuyen estas tasas de delegación para todos los validadores que empiecen a estacar después de la Activación de Cortina (los validadores que se hayan comenzado con su periodo de staking previo a la actualización no verán ningún cambio). En lugar de enviar una comisión de UTXO por cada periodo de delegación con éxito, las tasas se reparten ahora por lotes durante todo el periodo de validación de un nodo y se distribuyen cuando termina el staking.

Aumento del límite de gas de la cadena C

Desde la fase 1 de Apricot, el límite de gas de los bloques de C-Chain se ha fijado en 8M de gas. Los bloques de la C-Chain se producen cada ~2s, por lo que este ajuste limita la cantidad máxima de gas que se puede consumir cada 10s a ~40M de gas. Sin embargo, el objetivo de gas para cada ventana de 10s está fijado en 15M de gas. Esto significa que cuando se consumen más de 15M de gas en una ventana de 10s, el precio del gas subirá (y bajará cuando se consuman menos de 15M). Puedes leer más sobre cómo funcionan las tasas dinámicas en la C-Chain aquí.

Además de limitar la cantidad de gas que se puede consumir en una ventana a cualquier precio del gas, el límite de gas por bloque también limita la complejidad de las transacciones que se pueden emitir en un solo bloque. A medida que diferentes desarrolladores en Avalanche comenzaron a desplegar dApps más complejas, han expresado que 8M de gas por bloque no es suficiente para su caso de uso. Cortina aumenta el límite de gas por bloque de C-Chain a 15M de gas. Para evitar aumentar la cantidad de recursos necesarios para validar la Red Primaria, el objetivo de gas permanecerá sin cambios en 15M de gas por 10s.

PREGUNTAS FRECUENTES

¿Cómo actualizo mi nodo?

El proceso para actualizar a AvalancheGo v1.10.0 es el mismo que cualquier otra actualización. Si construyes desde el código fuente, ejecuta el script de construcción (build) como antes. Si utilizas los binarios precompilados, ejecútalos como antes. Si utilizas el script de instalación, utilízalo como antes.

Una vez que inicie AvalancheGo v1.10.0, no necesitas hacer nada más. Puedes encontrar más información sobre cómo actualizar un nodo aquí. Como recordatorio, es una buena práctica tener una copia de seguridad de tu llave/certificado de staking.

¿Tengo que actualizar mi nodo?

Si no actualizas tu validador a la versión 1.10.0 antes de la fecha de activación de Avalanche Mainnet (que se comunicará en los próximos días), tu nodo se marcará como desconectado y otros nodos informarán que tu nodo tiene un tiempo de actividad inferior, lo que puede poner en peligro tus recompensas de staking.

¿Hay algún cambio en los requisitos de hardware?

No.

¿La actualización reducirá el tiempo de actividad de mi validador?

No. Como recordatorio, puedes comprobar el tiempo de actividad estimado de su validador mediante la llamada a la API info.uptime:

Creo que algo va mal. ¿Qué debo hacer?

En primer lugar, asegúrate de haber leído la documentación detenidamente y de haber consultado las preguntas frecuentes. Si no encuentras respuesta a tu pregunta, ve a nuestro servidor Discord y busca si la pregunta se resolvió anteriormente. Si aún no se ha planteado, publícala en el canal adecuado.

--

--

AVA Labs Español
Avalanche en español

Difusión de noticias e información sobre @avalabs en español