Presentación de Twilight (v0.47)

https://medium.com/the-interchain-foundation/cosmos-sdk-introducing-twilight-v0-47-c606c2191726

Twilight es una versión importante que trae nuevas características y mejoras que permitirán a los desarrolladores crear aplicaciones más sofisticadas y de alto rendimiento en el ecosistema Cosmos.

La versión Twilight del Cosmos SDK (versión 0.47) introduce una serie de cambios en la plataforma con el objetivo de mejorar el rendimiento y la funcionalidad general de todas las cadenas basadas en Cosmos SDK.

A continuación, se mencionan algunos de los cambios clave y destacados en la versión Twilight. Puedes ver el registro completo de cambios aquí y solicitamos a los desarrolladores que se unan a la red de prueba.

Agradecemos a los contribuyentes de esta versión: Binary Builders, Notional, Regen Network, Interchain GmbH, Osmosis, Crypto.com y muchos otros.

Integración de CometBFT CometBFT fue lanzado recientemente como un fork y reemplazo de Tendermint Core. Como parte de la versión Twilight, estamos integrando CometBFT v0.37 en el Cosmos SDK para reemplazar Tendermint Core como motor de replicación de estado. Este cambio también permite la actualización a ABCI 1.0 (consultar la sección a continuación).

Esta actualización no causará ningún problema a los desarrolladores de aplicaciones si siguen las instrucciones establecidas a continuación, ni a los usuarios de las cadenas.

Cambios en el Módulo Params El módulo de parámetros ha entrado en modo de mantenimiento. Versiones anteriores utilizaron un módulo único para manejar los parámetros, sin embargo, esta versión implementa un sistema en el cual los parámetros son gestionados por módulos individuales, lo que proporciona una mayor precisión y adaptabilidad en su uso en los diversos componentes de la aplicación.

Aunque los módulos en el Cosmos SDK se han migrado, el módulo de parámetros obsoleto seguirá existiendo y los equipos son libres de seguir utilizándolo y migrando con el tiempo en lugar de hacerlo de inmediato.

Como parte de la depreciación del módulo de parámetros, necesitábamos introducir un nuevo módulo para manejar los parámetros de Tendermint. Estos parámetros controlan el tamaño del bloque y diversas otras funcionalidades. Esta ampliación brinda a los desarrolladores un mayor control sobre el mecanismo de consenso implementado en sus aplicaciones, lo que permite la realización de casos de uso más especializados, como el diseño de sistemas de alto rendimiento y baja latencia.

Presentación de ABCI 1.0 Otra característica clave introducida en esta versión es la actualización a ABCI 1.0. Esto incluye la introducción de nuevos métodos como "prepareProposal" y "processProposal", que permitirán una comunicación más eficiente y flexible entre la aplicación y el motor de consenso. Además, se ha añadido un nuevo mempool del lado de la aplicación, que permite a las aplicaciones tener mempools personalizados y/o construcción personalizada de bloques.

Un ejemplo de construcción personalizada de bloques es que cada bloque reserve el 10% del bloque solo para transacciones de IBC. Si no hay transacciones de IBC en el mempool, entonces el 10% se llenaría con otras transacciones. Este es un ejemplo simple, pero la capacidad de crear mercados de tarifas complejas es posible. Consulta más casos de uso potenciales aquí.

Protocol Buffers Esta versión también incluye una migración de gogo/proto a cosmos/gogoproto. Este cambio no contiene cambios que generen incompatibilidades y para actualizar tus archivos proto debes regenerarlos con la imagen Docker proporcionada por el equipo de Cosmos SDK. El objetivo de este cambio es tener una etiqueta de reemplazo menos en los archivos go.mod de las aplicaciones. A medida que eliminemos más etiquetas de reemplazo, permitirá a los usuarios descargar binarios a través del comando go install.

Menciones Notables Cableado de Aplicación Permite una construcción más sencilla de una aplicación con menos código repetitivo. Estamos buscando comentarios de la comunidad sobre esta característica. Implementaremos los comentarios y otros cambios en las próximas versiones que pueden llevar a cambios en la API. Se recomienda revisar la documentación de actualización y el registro de cambios para obtener más información sobre los cambios que generan incompatibilidades.

Recompensas para los Proponentes Con Twilight, discutimos con la comunidad y observamos cadenas con épocas y resucitamos una discusión sobre las recompensas para los proponentes. Después de mucha deliberación, se decidió eliminar las recompensas para los proponentes. Continuaremos esta discusión e investigación para comprender en qué nivel de consenso debería haber un incentivo adicional.

Codificación/Decodificación de Transacciones Añadimos la codificación y decodificación de transacciones de nuevo al nivel de gRPC. Esta característica fue eliminada en una refactorización del software, pero decidimos agregarla de nuevo. Fue muy solicitada y redujo la complejidad para los clientes.

Lanzamiento de la Red de Pruebas Nos complace anunciar que hemos lanzado la red de pruebas para la versión Twilight y posteriores. La red de pruebas se basa en el Cosmos SDK versión 0.47 e incluye soporte para la Comunicación entre Cadenas (IBC), CosmWasm (Wasm) y otras nuevas características y mejoras. Planeamos mantener esta red de pruebas activa durante mucho tiempo con fines de prueba.

Alentamos a los desarrolladores de cadenas y aplicaciones a probar las últimas funcionalidades de Cosmos SDK v0.47 en la red de pruebas a continuación. Estamos constantemente mejorando la red de pruebas y trabajando en mantenerla disponible durante un período prolongado. Además, configuraremos un grifo para que cualquier persona pueda unirse y probarla.

Last updated