Guía de Actualización del Protocolo 21

Autor

Nicole Adair

Fecha de publicación

Soroban, la plataforma de contratos inteligentes en Stellar, se lanzó en Mainnet tras una votación exitosa de los validadores el 20 de febrero de 2024. El 18 de junio de 2024, los validadores de la red pública de Stellar votaron para actualizar la red al Protocolo 21, que activa cinco nuevas Propuestas de Avance Central (CAPs) en Stellar Mainnet.

Estas cinco CAPs introducen algunas características nuevas emocionantes, como el soporte de firma con passkey y una mejora en el archivo de estado (autorizado por el miembro de la comunidad, tdep), así como algunas mejoras generales en el costo para las transacciones de contratos inteligentes.

Esta guía está diseñada para ayudar a las empresas y desarrolladores que aún no lo han hecho a actualizar al Protocolo 21 ahora que está activo en Mainnet. Para asegurar que tu proyecto, protocolo, producto o servicio sea compatible con el Protocolo 21, por favor verifica que tu software relacionado con Stellar esté actualizado.

Puedes leer todo sobre lo que está incluido en el Protocolo 21 en el blog de anuncios, y mantenerte al día sobre cualquier anuncio relacionado con el Protocolo 21 en el canal #protocol-21 en el Discord de Desarrolladores de Stellar, donde el ecosistema coordina y comparte información sobre la actualización, o únete a la lista de correo de desarrolladores.

Fechas clave

  • 14 de mayo: Actualización de Testnet. ¡Completo!
  • 30 de mayo: Lanzamientos estables de Stellar Core, Horizon, RPC. ¡Completo!
  • 11 de junio: Reinicio de Testnet. ¡Completo!
  • 18 de junio: Votación de actualización de Mainnet. ¡Completo!

¿Qué necesitas hacer para prepararte?

Ahora que la red se ha actualizado al Protocolo 21, debes instalar versiones actualizadas de todo el software relacionado con Stellar que utilices para asegurar la compatibilidad continua con la red.

Además, asegúrate de volver a subir tus Wasms existentes que fueron creados en el Protocolo 20 para reducir el costo de invocarlos y hacer que las ejecuciones futuras sean más baratas, especialmente ya que el costo de la re-subida es mucho menor que el costo de la carga inicial. Para hacer esta re-subida, usa el comando CLI soroban contract install.

Contexto: Es importante señalar específicamente la semántica de CAP-0054 para los Wasms existentes subidos en el Protocolo 20. CAP-0054 introduce ContractCodeCostInputs que se escriben junto con las entradas de Wasm subidas a partir del protocolo 21, lo que apretará el modelo de costos para la instanciación de la máquina virtual, pero los Wasm subidos en el Protocolo 20 estarán faltando ContractCodeCostInputs. Debido a los inputs faltantes, el código del Protocolo 20 no podrá aprovechar el modelo de costos ajustado hasta que sean re-subidos en el Protocolo 21, lo que escribirá los ContractCodeCostInputs en la entrada de Wasm existente.

Si usas Testnet

La lista de lanzamientos necesarios para soportar el Protocolo 21 en Testnet ha sido actualizada en la página de lanzamientos de los docs. En este punto, están disponibles lanzamientos estables de Stellar Core, Horizon, RPC, el JS SDK, varios otros SDKs y el CLI. Asegúrate de instalar versiones actualizadas de todo el software relacionado con Stellar, usando el siguiente comando:

cargo install --locked soroban-cli --version 21.0.0-rc.1

Si usas un SDK de Stellar

Deberías estar ejecutando la última versión del SDK. Actualizaremos la sección de lanzamientos a continuación para indicar cuando un lanzamiento de SDK con soporte para el Protocolo 21 esté disponible, así que vuelve a verificar si un SDK que usas aún no está listado.

Si administras infraestructura de Stellar

Actualiza al último lanzamiento de Stellar Core y/o Horizon. Si usas imágenes de Docker, descarga la última del registro de Docker. Deberías estar en Stellar Core v21.0.0 o superior.

Si usas el RPC de Soroban

Si administras el tuyo, ¡asegúrate de actualizar tu software! Si no lo haces, ten en cuenta que Stellar Development Foundation no ofrece una instancia RPC gratuita para Mainnet, por lo que es posible que necesites elegir un proveedor de infraestructura para usar. Aquí hay una lista.

Si administras un validador

Asegúrate de actualizar Stellar Core a v21.0.0, si aún no lo has hecho.

También debes asegurarte de establecer la bandera DEPRECATED_SQL_LEDGER_STATE cuando despliegues el paquete.

Contexto: La versión 21.0 de Stellar-core introduce una nueva bandera de configuración llamada DEPRECATED_SQL_LEDGER_STATE. Si esta bandera no está establecida, stellar-core no podrá iniciar. Esta bandera debe estar establecida cuando un nodo se actualice al paquete stellar-core 21.0. Esta bandera debe estar establecida cuando se despliegue el paquete, no cuando la red actualice realmente al Protocolo 21.

La configuración predeterminada de esta bandera, y la configuración que la mayoría de los operadores de validadores deberían usar, es DEPRECATED_SQL_LEDGER_STATE=false. Si DEPRECATED_SQL_LEDGER_STATE=true, el nodo puede experimentar degradación del rendimiento y quedarse atrás del resto de la red. DEPRECATED_SQL_LEDGER_STATE solo debe establecerse en verdadero si:

  1. Debes ejecutar stellar-core con la bandera de modo “en memoria”.
  2. Consultas directamente datos del backend SQL de stellar-core, y los datos consultados no son compatibles con BucketListDB (ver las “Características Obsoletas” listadas en el blog de Cambios de Base de Datos Próximos en Protocolo 21).

Los operadores que ejecutan un core cautivo como parte de Horizon o RPC tendrán la bandera configurada automáticamente, a menos que todavía estén usando el modo "en memoria" (configurado a través de CAPTIVE_CORE_USE_DB=false), en cuyo caso deben establecer CAPTIVE_CORE_USE_DB=true. Ten en cuenta que esto significa que el modo "en memoria" está efectivamente prohibido por los cores cautivos a partir del Protocolo 21.

Para información adicional, contexto e instrucciones relacionadas con la actualización de BucketListDB, por favor lee el blog de Cambios de Base de Datos Próximos en Protocolo 21 y únete al Stellar Dev Discord en el canal #validators.

Para ver la configuración actual de la red, ver un historial de actualizaciones de protocolo y ver propuestas pendientes para futuras actualizaciones, echa un vistazo a https://stellar.expert/explorer/public/protocol-history

En el futuro, habrá más votaciones para ajustar la configuración de la red basada en el uso de la red así como actualizaciones de protocolo subsiguientes, así que por favor asegúrate de mantenerte al día en el canal #validators en Stellar Dev Discord. ¡Es crucial para los validadores mantenerse informados y participar en la gobernanza de la red!

Si estás interesado en aprender más sobre la configuración de la red Soroban, consulta los docs: https://github.com/stellar/stellar-core/blob/master/docs/software/soroban-settings.md

Lanzamientos del Protocolo 21

A continuación, se encuentran enlaces actualizados a todos los lanzamientos disponibles relevantes para el Protocolo 21. En general, asegúrate de revisar las notas de lanzamiento para instrucciones y requisitos específicos, y a menos que se indique lo contrario, opta por el “Último Lanzamiento”.

Infraestructura Stellar

SDKs

Recordatorio: El soroban-client fue actualizado junto con las versiones del SDK de JavaScript del Protocolo 20, pero ya no se mantendrá. Los usuarios deben usar el SDK de JavaScript para sus necesidades de aplicación, incluyendo la comunicación con Soroban RPC, ya que los futuros cambios solo se realizarán allí. Por favor, lee la Guía de Migración para cómo actualizar ese paquete.

Contexto

El 20 de febrero de 2024, los validadores votaron por actualizar al Protocolo 20, introduciendo contratos inteligentes Soroban a la red pública de Stellar. Desde entonces, desarrolladores de todo el mundo han estado desplegando exitosamente contratos inteligentes en Stellar Mainnet.

El 18 de junio, los validadores votaron por actualizar la red al Protocolo 21, que trae cinco CAPs introduciendo nuevas características, como soporte de firma con passkey y una mejora al archivo de estado, a Mainnet. Para leer más sobre cada uno de los CAPs incluidos en el Protocolo 21, ve el blog del anuncio del Protocolo 21 y los siguientes enlaces:

Para mantenerte informado, hacer preguntas, sugerencias o compartir información, asegúrate de unirte al Stellar Dev Discord y revisa el canal #protocol-21, donde el ecosistema está coordinando y compartiendo información sobre la actualización.

Registro de cambios

18/06/2024 — Los validadores votaron por actualizar la red pública al Protocolo 21, activando cinco nuevos CAPs que traen características nuevas y emocionantes a Stellar Mainnet. Contexto, actualizaciones e instrucciones adicionales fueron agregadas siguiendo el voto de actualización de Mainnet que ocurrió el 18 de junio.

11/06/2024 — El reseteo de Testnet está completo.

30/05/2024 — ¡Se han lanzado las versiones estables de Stellar Core, Horizon, RPC! Se añadieron instrucciones y contexto alrededor de los lanzamientos estables.

14/05/2024 — Testnet se actualizó exitosamente a Protocolo 21 hoy. Las fechas clave fueron actualizadas para reflejar esta actualización, y se añadieron números de versión a los enlaces de lanzamiento de Protocolo 21 para reflejar las versiones mínimas soportadas.