Разработчикам

Dash Core опубликовали углублённую Инструкцию для разработчиков , чтобы помочь разработчикам разобраться в базовом коде Dash, а также в качестве справочного материала для более опытных разработчиков. С помощью этой инструкции можно быстро и эффективно внедрить сторонние приложение в экосистему Dash. Эту инструкцию можно дополнить, запостив на Github обсуждение или опрос. Документы доступны по адресу: https://dash-docs.github.io/en/

Команда Dash Core также поддерживает Дорожную карту Dash, которая устанавливает основные этапы выполнения промежуточных задач для будущих выпусков Dash и включает конкретные технические детали, описывающие, как команда разработчиков планирует реализовывать каждую задачу. Дорожная карта Dash дополнена Предложениями по улучшению Dash, в которых содержатся подробные технические пояснения предлагаемых изменений к самому протоколу Dash.

В оставшихся разделах, приведённых ниже, описаны практические шаги для выполнения общих задач разработки в Dash.

Спорки

Многоэтапное разветвление, известное как “spork”, является уникальным механизмом для Dash, используемым для безопасного развёртывания новых функций в сети с помощью переменных сетевого уровня с целью избежания рисков непреднамеренного разворачивания сети во время обновлений. Спорк также может использоваться для отключения определённых функций, если обнаружена уязвимость безопасности - см. руководство здесь по краткому введению в спорки. В этой документации описывается значение каждого существующего в сети спорка, и то, как проверить их соответствующие статусы.

Функции спорков

Спорки устанавливаются с использованием целочисленных значений. Многие спорки могут быть установлены на определённую опорную метку времени (количество секунд, прошедших с 1 января 1970 года) для указания времени, в которое они будут активны. Метки времени активированных спорков устанавливаются на 0 (секунды до активации). Эта функция часто используется для установки даты активации спорка в отдалённом будущем, если он установлен в отключенный режим до изменения. В настоящее время в сети существуют следующие спорки и они выполняют функции, описанные ниже:

SPORK_2_INSTANTSEND_ENABLED
Управляет возможностью клиентов Dash использовать опцию InstantSend.
SPORK_3_INSTANTSEND_BLOCK_FILTERING
Если активирован, Мастерноды будут отклонять блоки, содержащие транзакции, конфликтующие с заблокированными, но неподтверждёнными транзакциями InstantSend.
SPORK_5_INSTANTSEND_MAX_VALUE
Контролирует соблюдение максимального значения в Dash, которое может быть включено в транзакцию InstantSend.
SPORK_6_NEW_SIGS
Обеспечивает новый формат подписи для специальных сетевых сообщений Dash, введённых в версии Dash 12.3. Дополнительную информацию см. здесь и здесь.
SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT
Если активирован, майнеры должны заплатить 50% от вознаграждения за блок текущей Мастерноде, которая находится в режиме ожидания выбора или же блок будет считаться недействительным.
SPORK_9_SUPERBLOCKS_ENABLED
Если активирован, суперблоки проверяются и выдаются для оплаты победивших предложений.
SPORK_10_MASTERNODE_PAY_UPDATED_NODES
Контролирует, считаются ли Мастерноды, запущенные на более старой версии протокола подходящими для оплаты. Может использоваться для стимулирования обновления Мастернод.
SPORK_12_RECONSIDER_BLOCKS
Принудительно запускает изменение указанного количества блоков для восстановления из-за непреднамеренных сетевых разветвлений.
SPORK_13_OLD_SUPERBLOCK_FLAG
Устаревший. Начиная с блока 614820 данная функция отсутствует в сети.
SPORK_14_REQUIRE_SENTINEL_FLAG
Переключает способность Мастернод со статусом иметь право на совершение платежа, если их статус WATCHDOG_EXPIRED, то есть Хранитель работает неправильно.
SPORK_15_DETERMINISTIC_MNS_ENABLED
Отслеживает, требуются ли детерминированные мастерноды. При активации, старая логика списков мастернод больше не работает, а не обновившие ПО мастерноды теряют право на выплаты.
SPORK_16_INSTANTSEND_AUTOLOCKS
Разрешает автоматическую блокировку транзакций для транзакций с заданным количеством вводов, а также убирает старую комиссию за InstantSend. Позволяет любой ноде, не только отправляющей, запрашивать блокировку транзакции.
SPORK_17_QUORUM_DKG_ENABLED
Enables the DKG process to create LLMQ quorums. This spork will be turned on once 80% masternodes are upgraded to v0.14, which will enable DKG and DKG-based PoSe.
SPORK_19_CHAINLOCKS_ENABLED
Enables ChainLocks, a mechanism of preventing the risk to payments introduced by blockchain reorganization events. ChainLocks are described in DIP0008 ChainLocks.
SPORK_20_INSTANTSEND_LLMQ_BASED
When enabled, legacy InstantSend is superseded by LLMQ-based InstantSend, as described in DIP0010 LLMQ-based InstantSend.

Просмотр статуса спорков

Команды “spork show” и “spork active”, запущенные в окне отладки (или из окна “dash-cli” в Мастерноде) позволяют взаимодействовать со спорками. Окно отладки можно открыть, выбрав Tools > Debug console.

../_images/dashcore-sporks.png

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

История версий

Полная информация о выпуске и история версий Dash доступны по ссылке: