Notas de la versión: v0.70.9
v0.70.9
Sección titulada «v0.70.9»Título: Mejorar el cálculo del stake, la seguridad de la API y la fiabilidad del nodo
Fecha: Not provided
Versión: v0.70.9
Versión publicada: v0.70.9
Esta versión mejora el cálculo del stake delegado, el envío de transacciones, la seguridad de despliegue de las API, la paridad con Koios, la validación del libro mayor y la recuperación de los nodos Dingo y de los consumidores de la biblioteca.
Compatibilidad de red recomendada ⚠️
Sección titulada «Compatibilidad de red recomendada ⚠️»| Network | Compatible |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
Aspectos destacados
Sección titulada «Aspectos destacados»-
Mejoró el cálculo de los UTxO con direcciones pointer para los payloads de dirección de tipos 4 y 5 al conservar las posiciones de los certificados mediante la migración v13, resolver el stake entre las eras Shelley y Babbage con gestión de desregistros e incluir el stake pointer en los snapshots históricos y activos y en los cálculos de Mark. La ingesta de gaps de Mithril ahora transporta los depósitos de certificados, corrigiendo el stake delegado y los umbrales de liderazgo de pools subestimados. Las bases de datos existentes requieren resincronización o reconstrucción para rellenar
utxo_pointer; las interfaces de metadatos ahora exponencertDepositsmedianteTransactionStore.SetGapBlockTransactiony las entradas pointer medianteStakeSnapshotStore.GetPointerStakeInputsForPools. -
Corrigió el manejo de TxSubmission al asociar las respuestas con los hashes de transacción, rechazar cuerpos desconocidos o duplicados y devolver las transacciones validadas al orden solicitado antes de admitirlas en el mempool, de modo que las respuestas reordenadas de los pares conserven el orden de dependencias y FIFO.
-
Verificó mediante CI y
make config-parityque las configuraciones de red Cardano integradas coincidan con las configuraciones incluidas en las imágenes de contenedor, con comprobaciones programadas para detectar divergencias upstream. -
Eliminó la autenticación bearer de las API públicas de Blockfrost, Mesh y UTxO-RPC, así como
--api-bind-addr,APIBindAddry la configuración de autenticación de las API. Estas API ahora utilizan--bind-addr, cuyo valor predeterminado es0.0.0.0; TLS sigue disponible de forma opcional y el texto remoto sin cifrar de Midnight ya no requiere su antigua autorización explícita. Este cambio incompatible requiere que los despliegues que dependían de la autenticación integrada utilicen una dirección de enlace privada o una pasarela externa, con TLS configurado según sea necesario. -
Añadió configuración para hosts Koios v1 personalizados mediante
koiosParity.baseUrl,DINGO_KOIOS_PARITY_BASE_URL,--koios-parity-base-url,KOIOS_URLy--koios-url, con opciones para HTTP inseguro, validación de URL, ocultación de credenciales e invalidación de la procedencia de la caché. -
Refinó la aplicación del libro mayor de Leios para que las referencias de endosadores de mejor esfuerzo no bloqueen cuando la aplicación no las lee. Las esperas necesarias ahora comparten una ventana limitada, las esperas CIP utilizan una fase de gracia limitada, las recuperaciones obligatorias reservan concurrencia y las métricas de espera de Prometheus clasifican los resultados como llegados, agotados, cancelados o no disponibles.
-
Conservó el depósito retenido por cada registro de pool y reembolsó ese importe durante
POOLREAP. La migración v12 completa los registros heredados y permite reiniciar de forma segura las adiciones de columnas interrumpidas; los depósitos desconocidos permanecen comoNULLy utilizan el respaldo heredadodeposit_amount. -
Aclaró los resultados de paridad de Koios al clasificar como
reference_lag, en lugar de divergencia definitiva, las diferencias de recompensas pendientes en una posición de la cadena, y alineó las comparaciones de cuentas y pools. -
Corrigió la codificación de enteros Plutus negativos grandes en UTxO-RPC mediante la etiqueta CBOR 3 y la magnitud
(-1-n), sin modificar los valores de entrada. -
Reforzó la validación del libro mayor y del forging para que falle de forma segura: exigió la criptografía de cabeceras históricas salvo en slots cubiertos por Mithril, activó por defecto la autovalidación de bloques forjados, rechazó modelos de costes Plutus ausentes o vacíos y configuraciones genesis KES no válidas, mantuvo la validación de fase 2 cuando corresponde durante el procesamiento histórico, comprobó el magic de protocolo Byron y exigió el tamaño exacto del cuerpo de los bloques.
-
Alineó los plazos de recuperación de Leios con un único temporizador anclado en el llamador y reutilizó la cancelación del padre cuando su plazo es igual o anterior al plazo hijo, evitando clasificar incorrectamente los enfriamientos de pares.
-
Hizo atómica la publicación de las reversiones de la cadena y del libro mayor, validó los puntos de slot cero que contienen hashes y asignó una identidad de fallo grave específica a los fallos de reversión del libro mayor posteriores a una truncación.
-
Estabilizó el inicio y la reconstrucción del indexador Midnight al compartir la configuración, utilizar el tip persistido actual del libro mayor y conservar la primera causa de apagado fatal.
-
Actualizó la dependencia
plutigoa v0.6.1 para que los elementos integrados BLS multiescalares de PlutusV4 rechacen de forma coherente los escalares no válidos fuera de rango, igual quecardano-node. -
Conservó
reward_account_outputen el modo CORE de paridad Koios sin el límite de limpieza normal, incluso después de restauraciones y truncaciones activas, evitando fallos permanentes en la comparación de cuentas. Los datos podados anteriormente no se completan de nuevo. -
Aclaró el comportamiento de EventBus al documentar la entrega inline y ordenada, y recomendó una barrera de carril ordenado para las pruebas deterministas.
-
Resolvió las referencias a productores en la auditoría de continuación de Leios, informó de las referencias pendientes como inconcluyentes en lugar de ausentes, limitó la planificación y añadió métricas de resultados.
-
Limitó las pruebas del planificador y del reloj de slots mediante confirmación de estado y esperas acotadas en lugar de ventanas de tiempo real frágiles; este cambio solo afecta a las pruebas.
-
Aisló las pruebas de métricas de bloques por hash en subprocesos para evitar carreras en contadores compartidos; este cambio solo afecta a las pruebas.
-
Reservó espacio de disco limitado para las bases de datos de prueba respaldadas por Badger con el fin de mejorar la fiabilidad de CI; este cambio solo afecta a las pruebas.
-
Calculó la primera época comparable de paridad Koios a partir del límite de bootstrap de Mithril, acotó el backlog y las comprobaciones de paridad, y falló de forma segura ante límites registrados malformados.
-
Documentó y probó que los depósitos de pool desconocidos permanecen como
NULLy utilizan el respaldo heredado para reembolsos. -
Relajó la durabilidad de SQLite para las bases de datos de prueba de migraciones desechables con el fin de reducir el tiempo de CI; este cambio solo afecta a las pruebas.
-
Impidió carreras de bloqueo de directorios Badger durante la restauración al permitir que la limpieza de blobs termine aunque se cancele el contexto de restauración, hasta completar el apagado del proveedor.
-
Conservó las comprobaciones de inmutabilidad al eliminar de las pruebas la restauración del estado ChainSync compartido; este cambio solo afecta a las pruebas.
-
Añadió compatibilidad con puntos específicos en LocalStateQuery mediante
AcquireSpecificPoint, validando los puntos solicitados en la cadena actual y usándolos enGetPoolDistr2/PoolStakeDistribution,GetCurrentProtocolParamsdentro de la época del tip activo yGetEpochNo. Los puntos de bifurcación inválidos devuelvenErrPointNotOnChain, el historial no disponible o no compatible devuelveErrHistoricalStateUnavailable,GetUTxOWholepermanece limitado al estado actual y el estado adquirido se libera al cerrar las conexiones. -
Mejoró el descubrimiento de pares del libro mayor al excluir los nombres de host de relay malformados de las listas y snapshots, sin dejar de aceptar direcciones IP y nombres DNS válidos.
-
Separó la presión esperada de las canalizaciones y la cancelación de trabajadores durante el apagado de los fallos inesperados en las métricas Prometheus y los registros
DEBUG, para distinguir mejor las condiciones normales. -
Señaló como informativa la ausencia del modelo de costes sintético de PlutusV2 en los resultados de paridad de Koios, mientras mantiene como fallos las discrepancias reales de modelos y las demás versiones de lenguaje.
-
Amplió LocalStateQuery con puntos fijados para reconstruir históricamente
GetStakeDistribution,GetCurrentPParamsyGetUTxOByTxInusando el estado correspondiente al slot. Las consultas fallan de forma segura conErrHistoricalStateUnavailablecuando el historial no está disponible y aplican los límites agregados de scripts de referencia durante la admisión y el forging. -
Sincronizó los reintentos de las pruebas del ciclo de vida del espejo cloud con el escaneo de inicio mediante una marca de sondeo; este cambio solo afecta a las pruebas.
-
Reforzó el comportamiento de consenso de PlutusV2 durante la ausencia del modelo de costes sintético al rechazar transacciones PlutusV2 en Babbage, Conway y Dijkstra con
ErrNoCostModelForPlutusV2. Las transacciones aceptadas o estimadas anteriormente durante ese intervalo pueden fallar ahora en la validación. -
Limitó la asignación de mapas CBOR de longitud definida al tamaño de entrada restante y rechaza los recuentos de entradas que no pueden caber antes de asignar memoria, sin cambiar los mapas de longitud indefinida.
-
Acotó por tamaño y tiempo los cuerpos de solicitud de envío y evaluación de transacciones de Blockfrost, con un tiempo de espera de lectura del listener de 60 segundos y un límite predeterminado de 15 segundos por cuerpo. Los cuerpos no válidos o truncados siguen devolviendo respuestas HTTP 400.
-
Expuso la finalización del cierre asíncrono de Badger mediante
BlobStoreBadger.Closed(), para que los consumidores esperen a que se liberen los bloqueos del directorio y eviten carreras del ciclo de vida en Windows.
Registro completo de cambios: v0.70.8…v0.70.9
Docs authored by Doc Holiday