Midnight Node 2.1.0 RC2 corrige les coûts du bridge et l'amorçage des nœuds
La dernière version candidate publie un runtime vérifiable, corrige des opérations de bridge sous évaluées et corrige une défaillance d'amorçage affectant les nouveaux nœuds Preview et Devnet. Elle reste une préversion pour Devnet et QANet.
By SongMarketCap
Midnight a publié Node 2.1.0 RC2 le 17 septembre, supprimant deux obstacles techniques qui avaient empêché la branche 2.1 d'avancer vers une version finale.
Cette mise à jour n'introduit aucun nouveau comportement de protocole, mais change la manière dont le runtime est vérifié, la façon dont les charges de travail du bridge sont mesurées et la manière dont les nouveaux nœuds se connectent à Preview et Devnet.
Midnight publie un runtime vérifiable
Midnight Node 2.1.0 RC2 est le premier candidat de la branche 2.1 à inclure un fichier WASM de runtime déterministe et un condensé srtool associé documentant sa production.
Le WASM du runtime contient la logique exécutée par les nœuds Midnight. Une construction déterministe permet aux opérateurs et aux participants à la gouvernance de confirmer que l'artefact publié correspond au code source.
RC1 n'incluait pas d'artefact WASM distinct. La gouvernance ne disposait donc pas d'un fichier reproductible de manière indépendante pouvant être référencé lors de l'autorisation d'une mise à niveau via une action set_code.
RC2 fournit désormais le fichier de runtime, les hachages cryptographiques et la provenance de construction nécessaires à la vérification. Une action de gouvernance coordonnée reste requise pour activer le runtime, mais l'artefact technique nécessaire est désormais disponible.
Cette version contient cinq commits supplémentaires par rapport à RC1. Elle ne modifie pas la spécification du protocole et n'introduit pas de nouvelles fonctionnalités visibles pour l'utilisateur, maintenant un périmètre centré sur la préparation de la version finale.
Midnight corrige les coûts du bridge Cardano
De nouveaux tests de performance ont révélé que les fonctions de pallet_c2m_bridge et pallet_partner_chains_bridge avaient reçu environ la moitié de leur coût réel d'exécution sur le matériel validateur de référence.
Les pondérations précédentes avaient été générées sur un poste de développement plutôt que sur la machine de référence dédiée aux benchmarks de Midnight. Après répétition des tests sur le matériel de référence, les pondérations mesurées pour les opérations du bridge ont augmenté entre 1.92 et 2.51 fois.
Cette mise à jour ne rend pas les opérations plus coûteuses en calcul. Elle fournit au runtime une mesure plus précise des ressources qui étaient déjà consommées.
L'une des fonctions concernées, handle_transfers, est exécutée comme partie obligatoire d'un bloc. Un appel obligatoire sous évalué peut pousser le traitement du bloc au delà de sa limite de ressources prévue, car l'opération ne peut pas être différée lorsque la capacité restante a été consommée.
Les composants corrigés comprennent le bridge Cardano vers Midnight et l'infrastructure d'observation Cardano associée à cNIGHT. Ces systèmes relient l'activité NIGHT basée sur Cardano à la chaîne Midnight. Une tarification des ressources plus précise aligne la capacité du bridge sur le coût mesuré du traitement des opérations liées à NIGHT sur le matériel des validateurs.
La correction de Genesis rétablit l'amorçage des nouveaux nœuds
RC2 remplace également les spécifications de chaîne packagées et les artefacts de genesis pour Preview et Devnet.
Un nœud lancé depuis un disque vide avec les fichiers antérieurs pouvait calculer un hachage de genesis incorrect. Les bootnodes existants l'identifieraient comme appartenant à une autre chaîne et rejetteraient la connexion, laissant le nœud affecté au bloc zéro sans pairs.
Le défaut n'affecte pas les nœuds déjà connectés et synchronisés, car leurs données de genesis valides sont stockées localement. Les opérateurs ayant de nouvelles installations affectées doivent supprimer le chemin de base existant et relancer l'amorçage en utilisant les fichiers inclus avec RC2.
Les nœuds déjà synchronisés n'exigent ni réinitialisation, ni resynchronisation, ni réindexation. Il n'existe pas non plus de chemin de mise à niveau direct pris en charge depuis RC1 ou la bêta antérieure, car ces versions étaient des candidats de développement et non des bases de déploiement. La voie prise en charge reste un hard fork coordonné depuis le runtime 1.0.300.
Midnight 2.0 n'a jamais atteint une version finale, faisant de 2.1.0 la première version achevée prévue de la nouvelle branche majeure après Node 1.0.1. RC2 n'est pas une version finale mainnet, mais la gouvernance dispose désormais d'un artefact de runtime vérifiable, les appels du bridge utilisent des coûts d'exécution mesurés et les nouveaux nœuds Preview et Devnet peuvent s'amorcer avec les données de genesis utilisées par les réseaux actifs.