Sporks#

Un fork à plusieurs étapes, connu informellement sous le nom de « spork », est un mécanisme unique à Dash qui est utilisé pour déployer de manière sûre des nouvelles fonctionnalités du réseau, à travers des variables au niveau du réseau, permettant ainsi d’éviter le risque de forks non souhaités du réseau pendant les mises à jour. Il peut aussi être utilisé pour désactiver certaines fonctionnalités si une faille de sécurité est découverte — voir ici une brève introduction aux sporks. La présente documentation explique le sens de chaque spork actuellement existant sur le réseau, et comment vérifier leur état respectif.

Fonctionnalités de spork#

Les sporks sont configurés avec des valeurs entières. Beaucoup de sporks peuvent être configurés pour une époque « datetime » donnée (nombre de secondes écoulées depuis le 1er janvier 1970) afin d’indiquer la date et l’heure auxquelles ils deviendront actifs. Les sporks activés sont configurés sur 0 (secondes avant l’activation). Cette fonction est souvent utilisée pour configurer l’activation d’un spork si loin dans le futur qu’il est, en pratique, désactivé jusqu’à nouvel ordre. Les sporks suivants sont actuellement actifs sur le réseau et permettent les fonctions décrites ci-dessous :

SPORK_2_INSTANTSEND_ENABLED

Dirige la capacité des clients Dash à utiliser la fonctionnalité InstantSend. InstantSend est décrit dans DIP0010 LLMQ-based InstantSend.

SPORK_3_INSTANTSEND_BLOCK_FILTERING

Lorsqu’il est activé, les masternodes rejettent les blocs contenant des transactions en conflit avec des transactions InstantSend verrouillées mais non confirmées.

SPORK_9_SUPERBLOCKS_ENABLED

Lorsqu’il est activé, les « superblocs » sont vérifiés puis générés pour payer les propositions budgétaires gagnantes.

SPORK_17_QUORUM_DKG_ENABLED

Active la procédure DKG pour créer les quorums LLMQ. Ce spork sera activé lorsque 80% des masternodes auront effectué la mise à jour 0.14, ce qui activera la preuve de service (PoSe) DKG et basée sur DKG.

SPORK_19_CHAINLOCKS_ENABLED

Active ChainLocks, un mécanisme d’élimination des risques de paiement que constituent les réorganisations de blockchain. ChainLocks sont décrits dans la DIP0008 ChainLocks.

SPORK_21_QUORUM_ALL_CONNECTED

Active les connexions entre tous les masternodes selon un quorum, pour optimiser la procédure de restauration de signature.

SPORK_23_QUORUM_POSE

Contraint les masternodes à des exigences de preuve de service, pour garantir une version minimale de protocole et maintenir des ports ouverts.

Affichage de l’état de spork#

The spork show and spork active commands issued in the debug window (or from dash-cli on a masternode) allow you to interact with sporks. You can open the debug window by selecting Window > Console.

../../../_images/dashcore-sporks.png

affichage de spork et sortie active de spork dans la console de débogage du portefeuille logiciel Dash Core#