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

Dash Core has published an extensive Developer Guide to help new developers get started with the Dash code base, and as a reference for experienced developers. This guide can be leveraged to quickly and efficiently integrate external applications with the Dash ecosystem. Anyone can contribute to the guide by submitting an issue or pull request on GitHub. The documentation is available at: https://dash-docs.github.io/en/

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

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

Спорки

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

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

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

SPORK_2_INSTANTSEND_ENABLED
Управляет возможностью клиентов Dash использовать опцию InstandSend.
SPORK_3_INSTANTSEND_BLOCK_FILTERING
Если активирован, Мастерноды будут отклонять блоки, содержащие транзакции, конфликтующие с заблокированными, но неподтверждёнными транзакциями InstandSend.
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
Controls whether deterministic masternodes are required. When activated, the legacy masternode list logic will no longer run and non-updated masternodes will not be eligible for payment.
SPORK_16_INSTANTSEND_AUTOLOCKS
Enables automatic transaction locking for transactions with less than a specified number of inputs, and removes the legacy InstantSend fee. Allows any node to request the transaction lock, not just the sending node.

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

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

../_images/dashcore-sporks.png

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

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

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