Saltar al contenido

Notas de la versión: v0.70.13

Título: Mejorar la resiliencia del almacenamiento, la compatibilidad de red y la observabilidad del nodo

Fecha: Not provided

Versión: v0.70.13

Versión publicada: v0.70.13

Esta versión mejora el mantenimiento del almacenamiento SQLite, la validación del arranque, la compatibilidad de la gobernanza, el manejo del protocolo, la configuración de red, la supervisión del estado y los diagnósticos operativos. También actualiza los requisitos de compatibilidad con Cardano node y mejora el rendimiento de las importaciones confiables de Mithril.

NetworkCompatible
mainnet
preprod-testnet
preview-testnet
musashi

Importante: La configuración de mainnet ahora usa GenesisMode y requiere Cardano node 11.1.0 o posterior.

  • Mejoró el mantenimiento de SQLite WAL con checkpoints periódicos de mejor esfuerzo TRUNCATE que usan conexiones dedicadas con un tiempo de espera de 250 ms y se detienen de forma segura durante los cambios del ciclo de vida.

  • Registró la versión actual de RewardStakeCalculationVersion en las instantáneas de recompensas importadas, lo que permite que los arranques nuevos de Mithril superen la validación de la versión de contabilidad.

  • Impidió el truncamiento del almacenamiento principal antes del límite de retención de UTxO consumidas, conservando el historial necesario para las consultas válidas.

  • Actualizó GetGenesisConfig para usar el formato compacto NtC 21+ y conservar la codificación heredada para los llamadores antiguos o directos.

  • Conservó la identidad de credencial DRep tipada, añadió anclas anulables para las propuestas de gobernanza mediante la migración de metadatos v16, hizo atómica la expansión de migraciones de SQLite y mejoró la conformidad, el estado de reproducción y la selección del seguimiento de pares.

  • Rechazó el primer bloque de una cadena intermedia después de una reversión al origen, evitando que el nodo aceptara un reinicio de cadena no válido.

  • Configuró Koios con tiempos de espera explícitos de conexión, TLS, encabezado de respuesta y cliente, para que las solicitudes externas fallen dentro de límites definidos.

  • Almacenó en caché las sentencias preparadas de stake activo de recompensas con una retención limitada dentro de cada transacción, reduciendo la preparación repetida de sentencias sin conservarlas indefinidamente.

  • Aceptó outputs de Byron con valor cero y continuó rechazando los valores negativos con OutputNegativeByronError.

  • Resolvió la elección de claves VRF de Dijkstra en el slot capturado y conservó el comportamiento existente de Conway.

  • Aisló los accesorios de prueba de endpoints de BlockFetch para que el comportamiento de los endpoints permanezca independiente entre las pruebas.

  • Actualizó gouroboros a v0.205.2 y renovó el manejo relacionado de direcciones, el comportamiento de keepalive y el envío local de transacciones.

  • Renovó las configuraciones de red, las topologías y las instantáneas de mainnet, preprod y preview, además del registro de Musashi.

  • Agregó las cuentas de recompensa compartidas de Koios y notificó con precisión las discrepancias de cada pool.

  • Escaló los trabajadores opcionales de decodificación y validación del canal de bloques a GOMAXPROCS dentro del rango compatible de 2 a 8, y corrigió el manejo de la auditoría de continuación y el retroceso de recuperación.

  • Limitó la duración de los resúmenes de hard fork y notificó los errores de desbordamiento en lugar de permitir que los resúmenes superaran los límites compatibles.

  • Detectó de forma proactiva los hard forks clásicos basados en quórum y mantuvo los horizontes sucesores anclados a la punta activa de la cadena.

  • Amplió la observabilidad de SQL con histogramas de duración de consultas y evitó que las recopilaciones de métricas de disco bloquearan las escrituras de SQLite.

  • Expuso /health, /healthz y /readyz en un listener dedicado y configurable, con integración de comprobaciones de estado de Docker y Mithril.

  • Pospuso únicamente la comprobación de plausibilidad de KES del certificado operativo durante el arranque cuando el historial confirmado queda por detrás del reloj de pared, y mantuvo su aplicación durante el tiempo de ejecución.

  • Deshabilitó las credenciales de checkout persistentes en CI y exigió autenticación explícita para publicar benchmarks.

  • Relajó únicamente la comprobación de la versión 9 del protocolo Conway para la delegación de votos de un DRep no registrado.

  • Elevó wal_autocheckpoint de SQLite a 10000 páginas y añadió métricas para las operaciones SQL, la actividad de WAL y el uso de disco.

  • Sincronizó la imagen de contenedor de cardano-configs con sus archivos de configuración integrados.

  • Paralelizó la decodificación confiable de bloques de Mithril en lotes ordenados.

  • Añadió almacenamiento en caché para las operaciones INSERT de UTxO de insertUtxoModel y las búsquedas de identificadores de activos en SQLite y PostgreSQL, mientras conservó el comportamiento RETURNING de MySQL mediante un manejo consciente del dialecto. El benchmark BenchmarkInsertUtxoModel informó aproximadamente entre 15–30% menos ns/op para la ruta con caché que para la ruta heredada de una sola operación, pero este resultado se aplica únicamente a ese benchmark y no establece una garantía de rendimiento universal.

  • Mejoró la selección de cadena con un periodo de enfriamiento de cambio de vuelta de 2-second, conservó los lotes de descarga de bloques activos durante las bifurcaciones ampliadas por reinicios y volvió a sincronizarse después de fallos de reinicio irrecuperables.

  • Consolidó las actualizaciones del stake activo de recompensas para que cada credencial de stake única se actualice una sola vez por transacción.

  • Sustituyó el autenticador de la fase 2 de DMQ local por gouroboros MessageAuthenticator, eliminó dmq.Authenticator y NewAuthenticator, y reservó la conexión del nodo para una actualización futura.

  • Documentó en el README las mediciones de arranque del modo de API de Mithril específicas de cada entorno para Preprod y Preview, e identificó los valores como líneas base de planificación y no como garantías de capacidad.

  • Validó los payloads de direcciones de puntero Shelley durante el análisis de UTxO y rechazó los punteros malformados.

  • Amplió la cobertura determinista de regresión de descarga de Leios para probar los límites de los tiempos de espera.

  • Actualizó los scripts de Antithesis para obtener hashes de claves de direcciones de stake con cardano-cli latest stake-address key-hash.

  • Controló el inicio de los listeners de API, limitó los monitores de contexto y evitó que el estado del ciclo de vida persistiera entre reinicios.

  • Ancló la codificación de encabezados de forja y la firma KES a una punta estable de la cadena cuando estuvo disponible, y rechazó los slots candidatos que no eran de génesis y no eran posteriores a la punta activa.

  • Elevó maxLovelaceSupply del génesis de prueba, añadió validación previa, corrigió la propiedad de claves y la compatibilidad con Bash, y trasladó las imágenes de MinIO a Quay.

  • Reutilizó las sentencias preparadas delimitadas por transacción para las escrituras de transacciones por lotes de la API y usó el manejo LastInsertId de MySQL.

  • Reservó capacidad de descarga de Leios antes de publicar las declaraciones, separó las declaraciones de manifiesto y de transacción, y liberó correctamente las reservas.

  • Aplicó las tarifas mínimas implícitas de transacciones Byron mediante la política activa de tarifas de Byron e informó FeeTooLowByronError cuando una transacción quedó por debajo del mínimo.


Doc Holiday logo

Docs authored by Doc Holiday

Editar página

Última actualización: