Спорки#

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.

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

Результат выполнения команд “spork show” и “spork active” доступен в консоли отладки Dash Core#