ADAMANT Blockchain-Node v0.10.0 ist ein wichtiges Wartungs- und Funktions-Update für Betreiber, Delegierte und Client-Entwickler. Es verbessert messenger-zentrierte APIs, fügt WebSocket-Peer-Transport hinzu, stärkt Diagnose- und Installationswerkzeuge, aktualisiert Abhängigkeiten und verbessert die Transaktionsannahme an der P2P-Grenze. Delegierte und Node-Betreiber werden von cryptofoundry aufgefordert, ein Upgrade durchzuführen, um Zuverlässigkeit, Sicherheit und Kompatibilität mit neueren Clients zu gewährleisten. Die Veröffentlichung führt keinen obligatorischen Konsens-Fork für bereits synchronisierte Netzwerke ein, da höhenabhängiges Protokollverhalten weiterhin konfigurationsgesteuert und rückwärtskompatibel vor Aktivierungshöhen bleibt.
Die Veröffentlichung führt ein timestampMs-Feld für Transaktionen mit konsensgesteuerter Validierung und Antwortbehandlung ein. Es wird ein ?returnUnconfirmed=1-Flag für Transaktionen, Chats, Status und Chatrooms hinzugefügt, zusammen mit zusätzlichen expliziten Feldern für unbestätigte Daten. Der Parameter includeDirectTransfers ersetzt das veraltete withoutDirectTransfers für Chats und Chatrooms. Die Standard-Sortierung verwendet nun timestamp:desc und priorisiert timestampMs für zeitbasierte Sortierung. Die Abfrageanalyse wurde behoben, um klammerbasierte types[]-Filter in Transaktions-API-Abfragen zu unterstützen. Die Annahme von Transaktionen mit Vergangenheits-Timestamp ist nun auf Chat- und Status-Transaktionen beschränkt, während Überweisungen ein breiteres Offline-Wallet-Fenster zulassen. Der öffentliche Zugriff auf den Forging-List-Endpunkt wurde aus Sicherheitsgründen deaktiviert.
Die Konfiguration von Konsens-Aktivierungshöhen für fairSystem und spaceship wurde mit höhenabhängigem Verhalten hinzugefügt. Die timestampMs-Protokollregeln bleiben erhalten, einschließlich ADAMANT-Epochen-Millisekunden, abgeleitetem timestamp und Tests an Aktivierungsgrenzen. Bestehende Ketten setzen deterministisches Replay fort, obwohl Betreiber vor zukünftigen Aktivierungsmilestones ein Upgrade durchführen sollten.
Die Verschärfung der P2P-Timestamp-Annahme stellt sicher, dass Zukunfts- und Vergangenheits-Timestamp-Prüfungen, die von der Public API verwendet werden, nun auch auf dem P2P-Gossip-Pfad erzwungen werden. Dadurch wird eine Schwachstelle geschlossen, bei der Transaktionen mit weit in der Zukunft liegenden Timestamps die publish()-Funktion über Peer-Relay umgehen konnten. Die verify()-Pfade für Replay und Sync bleiben unverändert und sind nicht konsensbrechend. Die native Ed25519-Verifizierung erfolgt nun über sodium-native, und Cache- sowie Request-Limiter-Konfigurationen wurden verbessert.
Zu den Netzwerk- und Leistungsverbesserungen gehören WebSocket-Peer-Transport zwischen Knoten mit Verbindungsrotation und Peer-Priorisierung sowie verbessertes WebSocket-Logging. Die Block-Sync-Robustheit verhindert Stau veralteter Blöcke während der Synchronisierung. SQL-Optimierungen wurden für Chatrooms vorgenommen, und der Transaktionspool wurde mit Map neu geschrieben, mit verbesserter Entfernung und Indizierung. Block- und Transaktionsmetadaten speichern und exponieren nun Höhe und blockTimestamp.
Die Knotenoperationen und Werkzeuge wurden modernisiert mit Installationsskripten für Ubuntu/Debian und CentOS/RHEL 8–10, die Node.js 22/24/26, PostgreSQL-Handhabung, wget-basiertes Bootstrap sowie verbesserte Eingabeaufforderungen und Protokollierung unterstützen. Das Skript fix_node.sh wurde für Wiederherstellungsabläufe von Betreibern aktualisiert. Konfigurationsüberschreibungen sind nun über CLI und JSON-Dateien mit unsicheren Schlüsselprüfungen verfügbar. Lokale Skripte für start, stop, status und drop wurden hinzugefügt, zusammen mit einem Live-Szenario-Testrunner für Testnet und Localnet. Hilfsmittel für Testnet-Bootstrap, Wartung der Standard-Peer-Liste und Auffüllen fehlender Konfigurationswerte aus config.default.json beim Start sind enthalten. Dokumentation zu graceful Shutdown und Mem-Tabellen-Sicherheit wurde bereitgestellt.
Verbesserungen der Entwicklererfahrung umfassen strukturiertes Logging mit Rotation, farbigen Stufen und Diagnose zur Synchronisationsfortschrittsanzeige. Die Beitragsrichtlinien wurden um Live-Testszenarien und Berichterstattung erweitert. Richtlinien für Maintainer- und Agenten-Abläufe wurden dokumentiert. Die Abdeckung von Unit- und API-Tests sowie der Entwickler-Testablauf wurden verbessert. Das GitHub Wiki wird nicht mehr als Dokumentationsquelle verwendet, und die verifyOnLoading-Konfigurationsoption wurde entfernt.
Betreiber sollten Node.js auf Version 22.13.0 oder neuer aktualisieren, bevor sie bereitstellen. Es wird empfohlen, die offiziellen Installations- und Reparatur-Skripte aus diesem Release-Tag zu verwenden. Betreiber sollten config.default.json auf neue Optionen wie wsNode, Logging und Konsens-Aktivierungshöhen überprüfen. Knoten sollten mit Ctrl+C und nicht mit kill -9 ordnungsgemäß heruntergefahren werden. Nach dem Upgrade sollten Betreiber /api/node/status und die Peer-Verbindungen über HTTP und WebSocket überprüfen.
Breaking changes
Node.js 18 wird nicht mehr unterstützt und erfordert eine Engine-Version von 22.13.0 oder neuer. Veraltete HTTP-Endpunkte wurden entfernt, darunter Passphrase-tragende Routen, ungenutzte Chat-Hilfsfunktionen, /delegates/fee, /normalize und verwandte Legacy-Handler. Das count-Feld wird nun als Zahl bei betroffenen Listen-Endpunkten zurückgegeben. Der Filter withoutDirectTransfers ist zugunsten von includeDirectTransfers veraltet. Der Kryptographie-Stack wurde vom sodium-Wrapper zu nativen sodium-native-Bindungen migriert.