Sporks#
A multi-phased fork, colloquially known as a «spork», is a mechanism unique to Dash used to safely deploy new features to the network through network-level variables to avoid the risk of unintended network forking during upgrades. It can also be used to disable certain features if a security vulnerability is discovered - see the features page for a brief introduction to sporks.
Enforcement of spork-controlled code can be activated remotely by members of the core development team signing a network message using a relevant private key. Should problems arise, the code can be deactivated in the same manner, without the need for a network-wide rollback or client update. This documentation describes the meaning of each spork currently existing on the network, and how to check their respective statuses.
Funzioni degli spork#
Gli spork vengono impostati utilizzando valori interi. Molti spork possono essere impostati su una particolare data datetime (numero di secondi trascorsi dal 1 gennaio 1970), per specificare l’ora in cui saranno attivi. Gli spork abilitati sono impostati su 0 (secondi fino all’attivazione). Questa funzione viene spesso utilizzata per impostare una data di abilitazione dello spork così lontano nel futuro da essere effettivamente disabilitato fino a quando non viene modificata. I seguenti spork esistono attualmente sulla rete e servono funzioni come quelle descritte di seguito:
Cambiato nella versione v21.0.0: Mainnet spork values were hardened by immutably setting them. Sporks continue to be valuable for testing on other networks; however, on mainnet, the risks of maintaining them now outweigh the benefits of retaining them.
- SPORK_2_INSTANTSEND_ENABLED
Regola la capacità dei client Dash di utilizzare la funzionalità InstantSend. InstantSend è descritto in DIP0010 LLMQ-based InstantSend.
- SPORK_3_INSTANTSEND_BLOCK_FILTERING
Se abilitato, i masternode rifiuteranno i blocchi contenenti transazioni in conflitto con transazioni InstantSend bloccate ma non confermate.
- SPORK_9_SUPERBLOCKS_ENABLED
Se abilitato, i superblocchi vengono verificati ed emessi per pagare i vincitori della proposta.
- SPORK_17_QUORUM_DKG_ENABLED
Abilita il processo DKG per creare quorum LLMQ <https://github.com/dashpay/dips/blob/master/dip-0006.md> _. Questo spork verrà attivato una volta che l’80% dei masternode sarà aggiornato alla v0.14, che abiliterà DKG e PoSe basato su DKG.
- SPORK_19_CHAINLOCKS_ENABLED
Abilita: ref: ChainLocks <chainlocks>, un meccanismo di prevenzione del rischio sui pagamenti dovuto ad eventi di riorganizzazione blockchain. I ChainLocks sono descritti in DIP0008 ChainLocks <https://github.com/dashpay/dips/blob/master/dip-0008.md> __.
- SPORK_21_QUORUM_ALL_CONNECTED
Abilita le connessioni tra tutti i masternodes in un quorum per ottimizzare il processo di ripristino della firma.
- SPORK_23_QUORUM_POSE
Applica i requisiti Proof of Service per i masternodes per supportare una versione minima del protocollo e mantenere le porte aperte.
- SPORK_24_TEST_EHF
Supports enhanced hard fork (EHF) testing.
Visualizzazione status dello spork#
I comandi spork show e spork active emessi nella finestra di debug (o da dash-cli su un masternode) ti permettono di interagire con sporks. Puoi aprire la finestra di debug selezionando Finestra > Console.
spork show e spork active output nella console di debug di Dash Core#