Caducidad de objetos basada en el tiempo
La versión v0.58.0 añade compatibilidad del lado del servidor para la caducidad de objetos basada en el tiempo, que complementa la implementación del lado del cliente introducida en SDK RC24. Ahora los objetos pueden caducar según marcas de tiempo Unix en lugar de épocas abstractas de NeoFS, lo que acerca el comportamiento de caducidad a la semántica convencional del almacenamiento. Los nodos de almacenamiento aplican los metadatos de marca de tiempo y los incorporan a la lógica de recolección de basura.
Refuerzo de la codificación de borrado
Se incorporan varias aclaraciones a las operaciones de codificación de borrado. Un campo dedicado ec_part_id sustituye el uso anterior de X-Headers para seleccionar partes de EC en las operaciones GET y HEAD, y la CLI incorpora una opción --ec-part correspondiente. Ahora los nodos de almacenamiento bloquean las solicitudes GET de EC ambiguas que establecen la opción payload_only sin especificar un índice de parte. Se ha añadido la restauración de partes de EC entre reglas para mejorar la gestión de la redundancia.
Los X-Headers están obsoletos en toda la pila y ya no se reenvían entre nodos de almacenamiento. Los integradores que usen la opción --xhdr de la CLI deben eliminarla.
Actualización de la seguridad de las sesiones
El cifrado de claves de sesión se ha actualizado a HPKE (cifrado híbrido de clave pública), un estándar de la IETF definido en RFC 9180. Ahora el almacenamiento de tokens de sesión está indexado por época de expiración, lo que mejora la eficiencia de la limpieza.
Los registros de sesión almacenados en la ruta de estado persistente migran automáticamente al nuevo formato indexado por época con cifrado HPKE al iniciarse. La migración es irreversible, lo que significa que las versiones anteriores del nodo no podrán leer los registros. Los operadores deben hacer una copia de seguridad de los datos de estado persistente antes de actualizar.
Eliminación de funcionalidades heredadas
La versión v0.58.0 elimina la compatibilidad con objetos FSTree comprimidos, la configuración de multiaddr en la CLI y el nodo, el método create del contrato de contenedor en el anillo interno y la salida de hash homomórfico del comando netinfo de la CLI. También se ha eliminado la compatibilidad con los eventos Created y Removed del contrato de contenedor en los nodos de almacenamiento, en consonancia con los cambios de neofs-contract v0.28.0.
Los operadores que tengan objetos comprimidos en FSTree deben usar la utilidad fstree-decompress de la versión v0.57.0 antes de actualizar, ya que la herramienta ya no está incluida. Las entradas multiaddr de la configuración del nodo deben sustituirse por URI simples.
Correcciones de errores y rendimiento
La versión corrige errores de pánico en la gestión de AccountingService.Balance, la restauración del contador de la caché de escritura al iniciarse y la migración de metabase de neofs-lancet. También se ha resuelto un bloqueo de la recolección de basura causado por objetos caducados protegidos por LOCKs almacenados en otros fragmentos. Ahora las operaciones GET y HEAD recorren los nodos estrictamente por peso antes de recurrir al almacenamiento local, y el policer usa una cola en memoria para eliminar objetos redundantes y reducir las escrituras en metabase.
Las notas completas de la versión están disponibles en el siguiente enlace:
https://github.com/nspcc-dev/neofs-node/releases/tag/v0.58.0
