Спорки#
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.
Функции спорков#
Спорки устанавливаются с использованием целочисленных значений. Многие спорки могут быть установлены на определённую опорную метку времени (количество секунд, прошедших с 1 января 1970 года) для указания времени, в которое они будут активны. Метки времени активированных спорков устанавливаются на 0 (секунды до активации). Эта функция часто используется для установки даты активации спорка в отдалённом будущем, если он установлен в отключенный режим до изменения. В настоящее время в сети существуют следующие спорки и они выполняют функции, описанные ниже:
Изменено в версии 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
Определяет возможность использования клиентами Dash функциональности InstantSend. InstantSend описан в DIP0010 LLMQ-based InstantSend.
- SPORK_3_INSTANTSEND_BLOCK_FILTERING
Если активирован, Мастерноды будут отклонять блоки, содержащие транзакции, конфликтующие с заблокированными, но неподтверждёнными транзакциями InstantSend.
- SPORK_9_SUPERBLOCKS_ENABLED
Если активирован, суперблоки проверяются и выдаются для оплаты победивших предложений.
- SPORK_17_QUORUM_DKG_ENABLED
Включает процесс DKG для создания кворумов LLMQ. Этот spork будет включен после обновления 80% мастернод до версии 0.14, что позволит использовать DKG и PoSe на основе DKG.
- SPORK_19_CHAINLOCKS_ENABLED
Включает ChainLocks 1, механизм предотвращения риска для платежей, возникающего при реорганизации блокчейна. ChainLocks описаны в разделе DIP0008 ChainLocks.
- SPORK_21_QUORUM_ALL_CONNECTED
Активирует соединения между всеми мастернодами в кворуме для оптимизации процесса восстановления подписи.
- SPORK_23_QUORUM_POSE
Обеспечивает выполнение требований Proof of Service к мастернодам по поддержке минимальной версии протокола и поддержанию открытых портов.
- SPORK_24_TEST_EHF
Supports enhanced hard fork (EHF) testing.
Просмотр статуса спорков#
Команды spork show
и spork active
, подаваемые в окне отладки (или из dash-cli
на мастерноде), позволяют взаимодействовать со спиками. Открыть окно отладки можно, выбрав Window > Console.