ADAMANT Blockchain-Node v0.10.2 ist ein Release für Zuverlässigkeit, Wiederherstellung und API-Funktionen für Node-Betreiber, Delegierte, Explorer, Messenger und Service-Entwickler. Es hilft Nodes, sich von blockierten Synchronisierungen und unterbrochenen Herunterfahrvorgängen zu erholen, erweitert den REST- und Socket.IO-Datenzugriff, korrigiert Delegate-API-Regressionen, verbessert Abfragen großer Datenbanken und aktualisiert Abhängigkeiten sowie Betreiberleitfäden. Ein Upgrade wird für verbesserte Zuverlässigkeit, Wiederherstellungszeit, Sicherheitswartung und API-Funktionen empfohlen, ist jedoch für die Netzwerkkompatibilität nicht zwingend erforderlich. Dieses Release führt keinen Konsens-Fork ein und ändert nichts an der Block- oder Transaktionsserialisierung, Signaturen, Delegate-Reihenfolge, Belohnungen, Gebühren, Aktivierungshöhen, Slot-Timing oder deterministischem Replay.
Die API-Aktualisierungen umfassen eine neue Top-Accounts-API mit deterministischer Reihenfolge, Paginierung, isDelegate-Filterung, Antwort-Metadaten und Count-only-Anfragen. Die Korrektheit des Delegate-Rangs wird wiederhergestellt, und die Delegate-Voters-API wird korrigiert, um ein Durchfallen auf alle Accounts zu verhindern, während eine Adresslisten-Filterung hinzugefügt wird. Die Konsenssichtbarkeit wird verbessert, indem der effektive Konsens-Aktivierungsplan und der vollständige Blockbelohnungs-Meilensteinplan über Status-APIs bereitgestellt werden. Delegate-geprägte Beträge werden zu Antworten hinzugefügt, die Next-Forger-Projektion wird an Rundengrenzen stabilisiert, und die Blockfilterung unterstützt korrekt Abfragen mit null Transaktionen.
Die Client-WebSocket-API fügt optionale kompakte newBlock-Ereignisse sowie balances/change-Ereignisse für balance, unconfirmedBalance oder beides hinzu. Block-, Transaktions- und Balance-Abonnements werden jetzt indiziert, um das Durchsuchen nicht verwandter Clients zu verhindern. Betroffene Account-Lesevorgänge werden um Block-Apply/Rollback herum gebündelt, und Veröffentlichungsfehler werden von der Konsenszustandsmutation isoliert. Die Zustellung bleibt Best-Effort und nicht dauerhaft, daher sollten Clients Abonnements nach dem Wiederverbinden wiederherstellen und kritische Zustände über REST abgleichen.
Protokoll- und Konsensregeln bleiben unverändert, obwohl der effektive Aktivierungsplan und der aktive Konsens-Codename jetzt über öffentliche Status-APIs beobachtbar sind. Der Next-Forger-Fix korrigiert nur eine zuvor falsche öffentliche API-Projektion an Rundengrenzen. Keine Konsensregeln, Aktivierungshöhen, Transaktions- oder Block-Bytes, IDs, Signaturen, Belohnungen, Gebühren, Rundenabwicklung oder Replay-Verhalten ändern sich in diesem Release.
Zuverlässigkeits- und Wiederherstellungsverbesserungen umfassen einen Sync-Watchdog, der Synchronisierungsläufe erkennt, die fünf Minuten lang keinen Blockhöhenfortschritt machen, den blockierten Lauf sicher abbricht und eine automatische Wiederherstellung ermöglicht. PostgreSQL-Ablehnungen werden jetzt durch die Blockverifizierung und das Laden propagiert, anstatt Callback-Ketten still zu parken. Persistierte Memtable-Checkpoints mit drei rotierenden, SHA-256-verifizierten Slots werden für abgeleitete Zustände hinzugefügt. Die Wiederherstellung ist fail-closed und stellt nur Checkpoints wieder her, die alle Prüfungen bestehen, und fällt auf einen vollständigen deterministischen Neuaufbau zurück, wenn die Verifizierung fehlschlägt. Kanonische Blöcke und deterministisches Replay bleiben die Quelle der Wahrheit.
Sicherheitsupdates umfassen Abhängigkeitsaktualisierungen innerhalb der aktuellen Major-Versionen und die Entfernung einer ungenutzten direkten npm-Laufzeitabhängigkeit. Ein enges kompatibles grunt-zu-js-yaml-Override wird hinzugefügt, wodurch der auditierte Abhängigkeitsgraph auf null moderate, hohe oder kritische Befunde reduziert wird. Keine Signatur-, Mnemonic-, Transaktionsvalidierungs-, Peer-Handshake- oder kryptografischen Protokollverhaltensänderungen werden eingeführt.
Netzwerk-, Datenbank- und Performance-Verbesserungen umfassen einen partiellen Balance-Index für deterministische Top-Account-Abfragen. Der Blocks-Generator-Hash-Index wird durch einen zusammengesetzten B-Tree-Index ersetzt, um Full-Table-Scans für unbekannte Generatoren zu vermeiden. Indizierte Socket.IO-Abonnements und gebündelte Final-State-Lesevorgänge reduzieren unnötige Client-Scans und Account-Abfragen, und rotierende Checkpoint-Speicher ermöglichen eine schnellere Wiederherstellung aus inkonsistenten abgeleiteten Zuständen.
Für Node-Betrieb und Tooling werden persistierte Memory-State-Checkpoints standardmäßig aktiviert, während der Full-Rebuild-Fallback für ungültige oder veraltete Checkpoints beibehalten wird. Graceful Shutdown wird klargestellt und erfordert ein Warten auf das Ablaufen der aktiven Verarbeitung und eine „Cleaned up successfully“-Meldung vor dem Neustart. Der native pg-native- und libpq-Node-ABI-Rebuild-Pfad wird dokumentiert, und die Node.js-Anforderung bleibt bei 22.13.0 oder neuer.
Verbesserungen der Entwicklererfahrung erweitern die Testabdeckung für Synchronisierungswiederherstellung, Checkpoints, Accounts, Delegierte, Blöcke, Status-APIs und Socket.IO-Flows. Das README wird neu strukturiert, und Begleitdokumentation sowie OpenAPI-Änderungen werden für die aktualisierten APIs abgestimmt.
Betreiber, die auf dieses Release upgraden, sollten Node.js 22.13.0 oder neuer verwenden und die Datenbank sichern. Stoppen Sie den Node ordnungsgemäß und warten Sie auf die „Cleaned up successfully“-Meldung, bevor Sie v0.10.2 bereitstellen. Der erste Start benötigt zusätzliche Zeit und Speicherplatz, um alle Migrationen abzuschließen, Checkpoint-Speicher zu erstellen und neue Indizes aufzubauen. Überprüfen Sie nach dem Start den Node-Status, den Synchronisierungsfortschritt, die Live-Blockverarbeitung und alle REST- oder Socket.IO-Funktionen, die von Ihren Services genutzt werden.
Breaking changes
Es gibt keine Protokoll-, Konsens-, Wire-Format- oder API-Vertrags-breaking-Änderungen in v0.10.2. Neue REST-Felder und Socket.IO-Abonnements sind additiv und abwärtskompatibel. Der Legacy-topAccounts-Konfigurationsschalter wird entfernt, und der GET /api/accounts/top-Endpunkt wird jetzt konsistent auf jedem Node registriert. Das Release fügt vorwärtsgerichtete Datenbankmigrationen hinzu, was bedeutet, dass der erste Start nach dem Upgrade zusätzliche Zeit und Speicherplatz benötigen kann, um Checkpoint-Speicher und Account-/Block-Indizes zu erstellen.