Разработчикам¶
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.
История версий¶
Полная информация о выпуске и история версий Dash доступны по ссылке: