Enforcements are controlled by sporks. "spork" is a mechanism to disable/enable certain functionality through network-level variables. The following spork values currently exist in network
- SPORK_2_INSTANTX
- SPORK_3_INSTANTX_BLOCK_FILTERING
- SPORK_5_MAX_VALUE
- SPORK_7_MASTERNODE_SCANNING
- SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT
- SPORK_9_MASTERNODE_BUDGET_ENFORCEMENT
- SPORK_10_MASTERNODE_DONT_PAY_OLD_NODES
- SPORK_11_RESET_BUDGET
- SPORK_12_RECONSIDER_BLOCKS
- SPORK_13_ENABLE_SUPERBLOCKS
- SPORK_14_SYSTEMNODE_PAYMENT_ENFORCEMENT
- SPORK_15_SYSTEMNODE_DONT_PAY_OLD_NODES
- SPORK_16_SYSTEMNODE_DISCONNECT_OLD_NODES
To avoid the risk of unintended network fork during upgrades the following spork variables need to be turned off
- SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT
- SPORK_9_MASTERNODE_BUDGET_ENFORCEMENT
- SPORK_10_MASTERNODE_DONT_PAY_OLD_NODES
- SPORK_14_SYSTEMNODE_PAYMENT_ENFORCEMENT
- SPORK_15_SYSTEMNODE_DONT_PAY_OLD_NODES
- SPORK_16_SYSTEMNODE_DISCONNECT_OLD_NODES
To be able to change spork values one need to have spork private key. The key need to be added in crown.conf with the following format
sporkkey=SPORK_KEY
To turn enforcement off the following command need to be used
spork <SPORK_KEY> 4070908800
<br>
The number is a timestamp equivalent to 2099-01-01
To turn enforcement on the value of spork key need to be 1.
spork <SPORK_KEY> 1
Example:
spork SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT 1 (on)
<br>
spork SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT 4070908800 (off)
<br>
To check spork status the following commands are possible
spork show (Displays spork values)
<br>
spork active (Displays the current state of spork keys)