Saltar al contenido

Notas de la versión - v0.204.2

Título: Mejorar la gestión de pares y la validación de protocolos

Versión: v0.204.2

La versión 0.204.2 mejora el manejo de respuestas de LocalStateQuery, refuerza la validación de CBOR y Point, hace seguro el formato de conexiones con direcciones incompletas y evita que las confirmaciones de transacciones no válidas avancen el estado.

  • Amplió el manejo de respuestas de LocalStateQuery: Las aplicaciones pueden sobrescribir el tiempo de espera de lectura de segmentos del muxer con ouroboros.WithMuxerSegmentReadTimeout o muxer.NewWithSegmentReadTimeout; un valor <= 0 desactiva el límite de tiempo. También pueden sobrescribir el límite de reensamblado predeterminado de 16 MB con ProtocolConfig.MaxReadBufferSize o localstatequery.WithMaxReadBufferSize. La implementación vacía segmentos en cola de forma oportunista, limita el crecimiento del búfer, observa el apagado y lee los datos de la era actual sin una condición de carrera. Los pares de confianza que responden lentamente pueden admitir respuestas de larga duración o de varios segmentos grandes sin desconexiones prematuras.

  • Actualizó la codificación de constructores generales de Plutus: Los constructores generales ahora usan la etiqueta CBOR 102 con [constructor_number, fields]. El decodificador rechaza la etiqueta heredada 101 y los números de constructor que superan el rango uint de la plataforma, al tiempo que conserva las alternativas compactas. Las aplicaciones deben volver a codificar los constructores con la etiqueta 101 como etiqueta 102.

  • Reforzó la validación de Cardano Point: El decodificador acepta únicamente matrices definidas que contengan cero o dos elementos. Los valores de dos elementos deben contener una posición uint64 y un hash de exactamente 32 bytes. El decodificador rechaza los datos finales, las matrices indefinidas, los valores etiquetados y las entradas con formato incorrecto sin cambiar el valor de Point cuando falla la validación.

  • Hizo seguro el formato de las conexiones: ConnectionId.String() ahora representa una dirección local o remota ausente como <nil> y conserva el formato local<->remote. Un identificador de conexión parcialmente rellenado ahora se formatea sin provocar un pánico.

  • Evitó la inflación de confirmaciones de transacciones: El protocolo rechaza las respuestas ReplyTxIds que contienen más identificadores de los solicitados con protocol.ErrProtocolViolationRequestExceeded antes de avanzar ackCount. Las respuestas vacías, exactas y parciales siguen siendo compatibles.

RedCompatible
mainnet
preprod-testnet
preview-testnet
musashi

Versión: v0.204.2

Comparar: v0.204.1…v0.204.2


Doc Holiday logo

Docs authored by Doc Holiday

Editar página

Última actualización: