Zeitbasierter Ablauf von Objekten

v0.58.0 ergänzt die serverseitige Unterstützung für den zeitbasierten Ablauf von Objekten und erweitert damit die clientseitige Implementierung, die mit SDK RC24 eingeführt wurde. Objekte können nun anhand von Unix-Zeitstempeln statt abstrakter NeoFS-Epochen ablaufen, wodurch das Ablaufverhalten den üblichen Speichersemantiken näherkommt. Speicherknoten setzen die Zeitstempelmetadaten durch und beziehen sie in die Garbage-Collection-Logik ein.

Verbesserungen bei der Erasure Coding

Für Erasure-Coding-Vorgänge gibt es mehrere Klarstellungen. Ein eigenes Feld ec_part_id ersetzt die bisherige Verwendung von X-Headers zur Auswahl von EC-Teilen bei GET- und HEAD-Vorgängen. Dazu passend erhält die CLI das Flag --ec-part. Speicherknoten blockieren nun mehrdeutige EC-GET-Anfragen, bei denen das Flag payload_only gesetzt ist, ohne einen Teileindex anzugeben. Die Wiederherstellung von EC-Teilen über Regeln hinweg wurde ergänzt, um das Redundanzmanagement zu verbessern.

X-Headers sind im gesamten Stack veraltet und werden nicht mehr zwischen Speicherknoten weitergeleitet. Integratoren, die das CLI-Flag --xhdr verwenden, sollten es entfernen.

Sicherheitsupgrade für Sitzungen

Die Verschlüsselung von Sitzungsschlüsseln wurde auf HPKE (Hybrid Public Key Encryption) aktualisiert, einen IETF-Standard, der in RFC 9180 festgelegt ist. Sitzungstoken werden nun nach Ablauf-Epoche indiziert gespeichert, was die Effizienz der Bereinigung verbessert.

Sitzungsdatensätze, die im persistenten Zustandspfad gespeichert sind, werden beim Start automatisch in das neue, nach Epochen indizierte Format mit HPKE-Verschlüsselung migriert. Die Migration ist unumkehrbar, das heißt, ältere Knotenversionen können die Datensätze danach nicht mehr lesen. Betreiber sollten vor dem Upgrade die Daten des persistenten Zustands sichern.

Entfernung veralteter Funktionen

v0.58.0 entfernt die Unterstützung für komprimierte FSTree-Objekte, die Multiaddr-Konfiguration in CLI und Knoten, die Methode create des Container-Contracts im Inner Ring sowie die Ausgabe des homomorphen Hashings durch den CLI-Befehl netinfo. Auch die Unterstützung für die Container-Contract-Ereignisse Created und Removed wurde aus den Speicherknoten entfernt, entsprechend den Änderungen in neofs-contract v0.28.0.

Betreiber, die komprimierte Objekte in FSTree gespeichert haben, müssen vor dem Upgrade das Dienstprogramm fstree-decompress aus v0.57.0 verwenden, da es nicht mehr enthalten ist. Multiaddr-Einträge in der Knotenkonfiguration sollten durch einfache URIs ersetzt werden.

Fehlerbehebungen und Leistung

Die Version behebt Panics bei der Verarbeitung von AccountingService.Balance, die Wiederherstellung des Write-Cache-Zählers beim Start und die Metabase-Migration von neofs-lancet. Ein durch abgelaufene Objekte verursachter Stillstand der Garbage Collection wurde behoben. Diese Objekte waren durch LOCKs geschützt, die auf anderen Shards gespeichert waren. GET- und HEAD-Vorgänge durchlaufen Knoten nun strikt nach Gewicht, bevor auf den lokalen Speicher zurückgegriffen wird. Außerdem verwendet der Policer eine In-Memory-Warteschlange zur Entfernung redundanter Objekte, um Metabase-Schreibvorgänge zu reduzieren.

Die vollständigen Versionshinweise finden Sie unter dem folgenden Link:
https://github.com/nspcc-dev/neofs-node/releases/tag/v0.58.0