Artículo de Blog
Autor
Justin Rice
Fecha de publicación
Actualización de protocolo
SDK
Hoy, la red pública de Stellar se actualizó al Protocolo 13. ¡Woohoo!
Como todas las configuraciones importantes a nivel de red, la versión del protocolo es decidida por los nodos validadores, quienes votan y acuerdan una nueva versión del protocolo de la misma manera que votan y acuerdan conjuntos de transacciones. Para más información sobre cómo funciona esto, consulta nuestro Actualización de la Red doc.
Se requiere mucha coordinación para llevar a cabo un cambio de protocolo importante, y apreciamos la diligencia, paciencia y esfuerzo que todos en el ecosistema pusieron para prepararse. Si aún no lo has hecho, te animamos a que te inscribas para recibir actualizaciones en nuestra página de estado para asegurarte de estar informado sobre incidentes de la red y mantenimientos programados.
Si no has actualizado tu software relacionado con Stellar, probablemente experimentarás problemas hoy. La solución es simple: instala software que admita el Protocolo 13. Para enlaces a las versiones relevantes, consulta nuestra Guía de Preparación para el Protocolo 13.
Por ejemplo: si estás usando un SDK de Stellar y obtienes un error XDR al intentar leer un sobre de transacción, probablemente significa que estás usando una versión de la biblioteca que no admite el Protocolo 13. Aquí tienes un ejemplo de cómo luce ese error:
Error: Error de Lectura XDR: Miembro PublicKeyType desconocido para el valor 2
Si estás usando una versión desactualizada de Horizon, obtendrás un error que indica un problema al ingerir libros mayores, archivar historias, cargar transacciones, validar la lista de cubos, o algo por el estilo. Aquí hay dos ejemplos:
"Error ingesting ledgers" err="failed to load transactions: select failed: sql: Scan error on column index 5, name \"txmeta\": xdr:decode: switch '2' is not valid for union" first_ledger=30191538 last_ledger=30192867 pid=31343 service=ingest
"Error in ingestion state machine current_state=“buildFromCheckpoint(checkpointLedger=528383)” error=“Error ingesting history archive: Error validating bucket list from HAS: Error getting ledger: error reading ledger from backend: Error getting txHistory: select failed: sql: Scan error on column index 0, name \“txbody\“: xdr:decode: switch ‘2’ is not valid enum value for union” next_state=start pid=94018 service=expingest
Si estás ejecutando Stellar Core, tu nodo puede quedar atrapado en un bucle de recuperación, donde la recuperación falla con algo que luce así:
2020-06-18T15:47:24.342 GCFC7 [History INFO] Verifying ledgers [800639,800896)
2020-06-18T15:47:24.342 GCFC7 [History ERROR] Catchup material failed verification - unsupported ledger version, propagating failure [VerifyLedgerChainWork.cpp:347]
2020-06-18T15:47:24.342 GCFC7 [History ERROR] Upgrade this stellar-core installation to newest version [VerifyLedgerChainWork.cpp:350]
En todos estos casos — en cualquier caso donde tu integración de Stellar se rompió como resultado de la actualización de hoy, realmente— necesitas instalar software que admita el Protocolo 13. Hacerlo debería solucionar tus problemas.
El Protocolo 13 incluye algunas características nuevas interesantes, sobre las cuales puedes leer en esta publicación de blog. Dos que están listas para usar de inmediato: transacciones de aumento de tarifa y autorización de activos de granularidad fina.
Para el cómo/qué/por qué/dónde/cuándo de las transacciones de aumento de tarifa, consulta:
Para descubrir más sobre lo que puedes hacer con la autorización de activos de granularidad fina, consulta:
Gracias, ¡a todos! Nos vemos en el Protocolo 14.