cryptofoundry

Contacter cryptofoundry

Dites-nous ce que vous voulez construire ou automatiser.

adamant

ADAMANT Node v0.10.0

al-onyxprotocolDepuis la fonderie ↗

ADAMANT blockchain node v0.10.0 est une mise à jour majeure en matière de maintenance et de fonctionnalités destinée aux opérateurs, délégués et développeurs de clients. Elle améliore les API destinées au messager, ajoute le transport pair-à-pair par WebSocket, renforce les outils de diagnostic et d’installation, met à jour les dépendances, et durcit l’admission des transactions à la limite P2P. cryptofoundry encourage les délégués et les opérateurs de nœuds à effectuer la mise à jour pour bénéficier de meilleures fiabilité, sécurité et compatibilité avec les clients récents. Cette version n’introduit pas de fourchette de consensus obligatoire pour les réseaux déjà synchronisés, le comportement du protocole basé sur la hauteur restant piloté par la configuration et rétrocompatible avant les hauteurs d’activation.

La version introduit un champ timestampMs pour les transactions, avec validation et gestion de réponse soumises à consensus. Elle ajoute un indicateur ?returnUnconfirmed=1 pour les transactions, discussions, états et salons de discussion, ainsi que des champs supplémentaires explicites pour les éléments non confirmés. Le paramètre includeDirectTransfers remplace l’ancien withoutDirectTransfers pour les discussions et salons. Le tri par défaut utilise désormais timestamp:desc, en privilégiant timestampMs pour l’ordonnancement basé sur le temps. L’analyse des requêtes a été corrigée pour prendre en charge les filtres de type types[] entre crochets dans les requêtes de l’API transaction. L’admission des timestamps passés est désormais limitée aux transactions de type discussion et état, tandis que les transferts autorisent une fenêtre plus large pour les portefeuilles hors ligne. L’accès public au point de terminaison de la liste de forging a été désactivé pour des raisons de sécurité.

La configuration des hauteurs d’activation du consensus pour fairSystem et spaceship a été ajoutée, avec un comportement conditionné à la hauteur. Les règles du protocole relatives à timestampMs sont conservées, en maintenant les millisecondes selon l’époque ADAMANT, le timestamp dérivé, et les tests aux limites d’activation. Les chaînes existantes continuent à fonctionner avec une relecture déterministe, bien que les opérateurs soient invités à effectuer la mise à jour avant les prochaines étapes d’activation.

Le renforcement de l’admission des timestamps P2P garantit que les vérifications des timestamps futurs et passés utilisées par l’API publique sont désormais également appliquées sur le chemin de diffusion P2P, comblant ainsi une faille d’empoisonnement du pool où des transactions avec des timestamps très futurs pouvaient contourner publish() via le relais entre pairs. Les chemins de relecture et de synchronisation verify() restent inchangés et ne constituent pas une rupture de consensus. La vérification native Ed25519 est désormais gérée via sodium-native, et les configurations du cache et du limiteur de requêtes ont été améliorées.

Les améliorations réseau et performances incluent le transport pair-à-pair par WebSocket entre nœuds, avec rotation des connexions et priorisation des pairs, ainsi qu’une journalisation WebSocket améliorée. La robustesse de la synchronisation des blocs empêche l’accumulation de blocs obsolètes pendant la synchronisation. Des optimisations SQL ont été appliquées aux salons de discussion, et le pool de transactions a été réécrit à l’aide de Map, avec une suppression et un indexage améliorés. Les métadonnées des blocs et des transactions persistent désormais et exposent la hauteur et blockTimestamp.

Les opérations et outils du nœud ont été modernisés avec des scripts d’installation pour Ubuntu/Debian et CentOS/RHEL 8–10, prenant en charge Node.js 22/24/26, la gestion de PostgreSQL, un amorçage basé sur wget, ainsi que des invites et une journalisation améliorées. Le script fix_node.sh a été mis à jour pour les procédures de récupération des opérateurs. Les remplacements de configuration sont désormais disponibles via l’interface CLI et des fichiers JSON, avec une validation des clés non sécurisées. Des scripts pour localnet ont été ajoutés pour start, stop, status et drop, ainsi qu’un exécuteur de scénarios en direct pour testnet et localnet. Des assistants pour l’amorçage de testnet, la maintenance de la liste par défaut des pairs, et le remplissage automatique des valeurs de configuration manquantes à partir de config.default.json au démarrage sont inclus. Une documentation sur l’arrêt gracieux et la sécurité des tables en mémoire a été fournie.

Les améliorations de l’expérience développeur incluent une journalisation structurée avec rotation, des niveaux en couleurs et des diagnostics de progression de synchronisation. Les directives de contribution ont été enrichies avec des scénarios de test en direct et des instructions de rapport. Les procédures pour mainteneurs et agents ont été documentées. La couverture des tests unitaires et API, ainsi que le flux de test pour développeurs, ont été améliorés. Le Wiki GitHub n’est plus utilisé comme source de documentation, et l’option de configuration verifyOnLoading a été supprimée.

Les opérateurs doivent mettre à niveau Node.js vers la version 22.13.0 ou ultérieure avant le déploiement. Il est recommandé d’utiliser les scripts officiels d’installation et de réparation provenant de cette version. Les opérateurs doivent consulter config.default.json pour découvrir les nouvelles options telles que wsNode, la journalisation et les hauteurs d’activation du consensus. Les nœuds doivent être arrêtés gracieusement à l’aide de Ctrl+C plutôt que kill -9. Après la mise à jour, les opérateurs doivent vérifier /api/node/status et la connectivité aux pairs via HTTP et WebSocket.

Changements cassants

Node.js 18 n’est plus pris en charge, une version d’exécution de 22.13.0 ou ultérieure est désormais requise. Les points de terminaison HTTP obsolètes ont été supprimés, notamment les routes contenant des phrases secrètes, les assistants de discussion inutilisés, /delegates/fee, /normalize et les gestionnaires hérités associés. Le champ count est désormais retourné comme un nombre sur tous les points de terminaison de liste concernés. Le filtre withoutDirectTransfers est déprécié au profit de includeDirectTransfers. La pile cryptographique a été migrée du wrapper sodium vers les liaisons natives sodium-native.