Artículo del Blog

Guía de Actualización del Protocolo 20

protocol upgrade

Author

Stellar Development Foundation

[Publishing date]

Protocol upgrade

Soroban

Esta guía está diseñada para ayudar a las empresas y desarrolladores a prepararse para el Protocolo 20 antes de la votación de actualización del validador de Mainnet el 20 de febrero, 1700 UTC. Para asegurar que tu proyecto, protocolo, producto o servicio sea compatible con el Protocolo 20, por favor verifica que tu software relacionado con Stellar esté actualizado antes de la votación.


Para estar al tanto de las discusiones importantes sobre el desarrollo del Protocolo 20, únete al Discord o la lista de correo para desarrolladores.

Fechas clave

  • 6 de febrero: Reinicio de Testnet + Actualización. ¡Completo!
  • 9 de febrero: Stellar Core v20.2.0. ¡Disponible ahora!
  • 20 de febrero, 1700 UTC: Votación de Actualización del Protocolo 20 + Fase 0


Para asegurar el rendimiento y la estabilidad de la red, la funcionalidad de contrato inteligente se implementará en fases. Inicialmente, si y cuando los validadores aprueben la actualización al Protocolo 20, los límites de recursos de la red serán demasiado bajos para soportar el uso a nivel de producción. Los validadores los aumentarán basándose en comentarios de los operadores de la red, luego nuevamente basándose en comentarios de los desarrolladores de contratos inteligentes, hasta que finalmente sean lo suficientemente altos para permitir a los usuarios aprovechar al máximo la nueva funcionalidad. Para más información, vea el post del blog detallando el plan de implementación por fases.

¿Qué necesitas hacer para prepararte?

Antes de la actualización de la red pública al Protocolo 20, instala versiones actualizadas de todo el software relacionado con Stellar que utilices. Si no lo haces, tu integración de Stellar será incompatible con el Protocolo 20, y probablemente se romperá si y cuando ocurra una actualización.


Además, ten en cuenta que desplegar esta versión de Stellar Core en el Testnet requirió un reinicio de Testnet el 6 de febrero. Si te faltan datos de Testnet, probablemente esa sea la razón.

Si usas un SDK de Stellar

Deberías estar ejecutando la última versión del SDK. Incluso si tu aplicación no involucra funcionalidad relacionada con Soroban, es necesario actualizar tu SDK para que pueda decodificar operaciones relacionadas con Soroban, las cuales puede encontrar mientras ingiere datos de la red.

Si actualizaste con anticipación a la fecha original del 30 de enero, no necesitas actualizar de nuevo. Los cambios introducidos en Stellar Core v20.2.0 no tienen un impacto que llegue tan arriba en la pila.

Advertencia justa: si estás actualizando el JS SDK, y no lo has hecho en un tiempo, el proceso puede llevar tiempo y esfuerzo extra debido a cambios importantes que revisaron el sistema de construcción introducido en v9.0.0. Para más información, consulta la Guía de Migración del JS SDK.

Si operas infraestructura de Testnet

Actualiza Stellar Core a la última versión. Si usas imágenes de Docker, obtén la última del registro de Docker. El reinicio de Testnet el 6 de febrero se acopló con una actualización de software, y las versiones antiguas de Stellar Core y Horizon ya no son compatibles con el Testnet. Si tienes problemas con tu infraestructura de Testnet, probablemente esa sea la razón.

Si operas infraestructura de Mainnet

Actualiza a la versión estable de Stellar Core y/o Horizon antes de la actualización de la red pública al Protocolo 20. Incluso si actualizaste antes de la fecha original de votación del 30 de enero, necesitarás actualizar de nuevo. La versión más nueva de Stellar Core, que contiene la solución para el bug mencionado arriba, no es compatible con la versión anterior que contiene el bug. Deberías estar en Stellar Core v20.2.0 o superior.

Si operas un validador y te gustaría prepararlo para la actualización del 20 de febrero, usa el comando de actualización:

$ stellar-core http-command 'upgrades?mode=set&upgradetime=2024-02-20T17:00:00Z&protocolversion=20'

Para más información, consulta la Actualización de la Red sección de los documentos de Ejecutar un Nodo Principal. Para hacer preguntas, estar al tanto de nueva información y comunicarte con otros validadores sobre la actualización, dirígete al canal #validators en el Stellar Dev Discord.


Importante: La versión de Horizon compatible con el Protocolo 20 requiere una reconstrucción del estado, la primera reconstrucción del estado desde la versión lanzada el año pasado. Para evitar tiempos de inactividad durante esta reconstrucción, consulta la documentación de Escalabilidad: recomendamos tener una copia de seguridad caliente redundante.

Si usas el RPC de Soroban

Si administras el tuyo, asegúrate de actualizar tu software. Si no lo haces, ten en cuenta que la Stellar Development Foundation no planea ofrecer una instancia RPC gratuita para Mainnet, por lo que podrías necesitar elegir un proveedor de infraestructura para usar.Aquí hay una lista.

Lanzamientos del Protocolo 20

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

Infraestructura Stellar

SDKs


Junto con los lanzamientos del SDK de JavaScript del Protocolo 20 vinculados arriba, el soroban-client también ha sido actualizado, 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 saber cómo actualizar a ese paquete.

Contexto

Desde enero de 2022, colaboradores en todo el ecosistema de Stellar han estado trabajando arduamente en Soroban, una plataforma amigable para desarrolladores, todo incluido, que agregará funcionalidad de contratos inteligentes a Stellar. A lo largo de 10 lanzamientos en Futurenet (una red de prueba para desarrolladores áspera y tumultuosa) y tres en la Testnet “con T mayúscula” (la red de prueba más estable a nivel de ecosistema), los desarrolladores experimentaron, prototiparon y proporcionaron retroalimentación, y el conjunto de Soroban fue probado, fortalecido y refinado.

En este punto, están disponibles lanzamientos estables de todo el software habilitado para el Protocolo-20 — que es la versión del protocolo que habilita las capacidades de Soroban — están disponibles.

Antes de la actualización de la red pública al Protocolo 20, el objetivo es lograr que cada proyecto en el ecosistema actualice su software para asegurar la compatibilidad continua, evitar interrupciones y tiempos de inactividad, y prevenir errores no forzados. Las votaciones de actualización son programáticas — son parte de una ronda regular de consenso — y cuando se llevan a cabo, una actualización tiene efecto inmediato. Dado que la actualización del Protocolo 20 introduce nuevos ajustes de red que los validadores controlan, también es probable que la votación de actualización inicial sea seguida por una serie de votaciones adicionales para ajustar esos ajustes. En otras palabras, la capacidad limitada para transacciones de Soroban en Mainnet significa que las dapps de Soroban no estarán listas para su uso a gran escala hasta fases posteriores. Esta estrategia deliberada permitirá a los participantes de la red monitorear el impacto de la funcionalidad de contratos inteligentes en el rendimiento, seguridad y estabilidad de la red. Para más información sobre el despliegue por fases, consulta El Despliegue por Fases de Contratos Inteligentes de la Red Stellar: El Camino a Mainnet.


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

Cambios Significativos

Como de costumbre, las versiones antiguas del software de Stellar no funcionarán muy bien, si es que funcionan, después de que la red se actualice a una nueva versión del protocolo. En este momento, la Testnet está ejecutando el Protocolo 20, lo que significa que las versiones antiguas de Stellar Core no funcionarán en absoluto, y las versiones antiguas de Horizon y los SDKs de Stellar probablemente se detendrán cuando encuentren algo que no reconocen (como una transacción de Soroban). Para continuar construyendo en la Testnet, actualiza lo antes posible. Además de los problemas generales de compatibilidad, aquí hay algunos otros cambios a tener en cuenta:


Horizon y RPC:

  • Hay cambios que rompen el protocolo en el parche de reinicio de Testnet del 6 de febrero. Consulta la lista completa de cambios en este parche.

Horizon:

  • Requiere una reconstrucción de estado. Consulta la documentación de Escalabilidad para más información sobre cómo prepararte para posibles tiempos de inactividad.

Base de JavaScript y SDK de JavaScript :

  • El nombre del paquete NPM `@stellar/stellar-base` ha sido cambiado de `stellar-base`.
  • El nombre del paquete NPM `@stellar/stellar-sdk` ha sido cambiado de `stellar-sdk`.
  • Node 18 es la nueva versión mínima para usar los SDKs.
  • La soroban-client biblioteca ha sido fusionada en el paquete `@stellar/stellar-sdk`, causando cambios significativos detallados en una guía de migración.
  • Consulta las notas de la versión enlazadas arriba para todos los cambios significativos causados por estas actualizaciones de paquetes.

Registro de Cambios

02/09//2024 — Stellar Core v20.2.0 se hizo disponible: la copia fue actualizada con nuevas instrucciones para operadores de infraestructura de red.

02/06/2024 — Cronograma y copia actualizados para reflejar el hecho de que el Testnet se actualizó con éxito.

01/30/2024 — Instrucciones de actualización del Protocolo 20 y cronogramas actualizados, incluyendo la nueva fecha de votación objetivo programada para el 20 de febrero.

01/29/2024 — Añadido contexto respecto a la decisión de la SDF de desarmar sus validadores en favor de posponer la votación de actualización del Protocolo 20.

12/19/2023 — Actualizado para señalar que la actualización del Testnet está completa, las versiones estables están disponibles para todo el software del Protocolo 20, la votación de actualización del Mainnet está programada para el 30 de enero, y todos tienen hasta entonces para instalar el software del Protocolo 20

12/13/2023 — Añadida información respecto a la reconstrucción del estado de Horizon y las instrucciones de actualización relacionadas.

12/12/2023 — Corregida la información para entidades que operan infraestructura de Testnet: las actualizaciones a Stellar Core y Horizon deberían ocurrir después del reinicio del Testnet el 18 de diciembre, no antes.

12/11/2023 — Añadidas versiones de lanzamiento de Testnet de Stellar Core y Horizon.

12/8/2023 — Añadidos enlaces, notas y cambios significativos para las versiones estables del SDK de JavaScript del Protocolo 20.

Próximos pasos

Más para que explores

Bri Wylde

Protocolo 20: Preparándose para Contratos Inteligentes en Stellar

Tomer Weller

El Despliegue Gradual de Contratos Inteligentes de la Red Stellar: El Camino a Mainnet