Апдейт разработки DCG #2
Апдейт на основе стрима DCG, который был проведен 23 Января 2024
Держи руку на пульсе Dash ➯ Подпишись | Читать прошлый апдейт
Примечание: официальный апдейт можно посмотреть на YouTube, это неофициальный его текстовый вариант, основанный на информации, которая была предоставлена в видео.
Команда Platform разработки
Давайте быстро подведем итоги спринта:
Игорь и Константин работали над выводом средств и наконец-то завершили его разработку.
Иван и Лукаш проводили нагрузочные тесты для оценки производительности платформы.
Пол продолжил оттачивать стратегии и перешел из команды исследования в команду разработчиков.
Иван, Игорь и Сэм продолжают решать ряд различных проблем с Drive ABCI.
Евгений активно участвует в совершенствовании платформы, в частности, в области текстового пользовательского интерфейса (TUI).
В этом спринте Platform команда сотрудничала с Константином из Core команды, чтобы повысить стабильность взаимодействия между Drive и Core. В Core произошли изменения в формировании кворумов в сети Reg Test, а также DCG столкнулся с некоторыми проблемами, которые временно остановили тестирование.
Команда реализовала новую функцию, при которой идентификационные кредиты сгорают на стороне платформы, когда пользователи выводят их на свой кошелек в Core чейне. Этот спринт стал важной вехой, поскольку теперь у DCG есть рабочий кейс, где все три компонента - TenderDash, Core и Drive - беспрепятственно взаимодействуют. Процесс включает в себя пополнение личности на стороне платформы и вывод средств на стороне бэкэнда.
Сэм выразил благодарность Игорю и всем, кто внес свой вклад, особенно Константину, Одиссеасу, Лукашу и другим за это значительное достижение. Успешная реализация сложных процессов, от пороговых подписей до механизмов консенсуса, приносит невероятное удовлетворение. Стоит отметить, что это первый случай, когда снятие средств работает, что знаменует собой значительный шаг вперед. Приятно видеть результаты усилий, начатых год назад.
DCG планирует интегрировать все в текстовый пользовательский интерфейс для более наглядной демонстрации. Но еще должны быть приняты действия как со стороны TenderDash, так и со стороны Drive, и DCG продолжит доработку в течение следующих двух недель.
Во время этого спринта Иван тесно сотрудничал с Лукашом в области нагрузочного тестирования платформы. Они активно использовали сети devnet для проведения комплексного тестирования. Команда внедрила несколько исправлений на стороне DAPI, чтобы справиться с различными ситуациями, когда TenderDash может отвечать различными ошибками или не отвечать вообще, особенно при перегрузке или достижении лимита RPC-соединений. Это гарантирует, что мы больше не столкнемся с внутренними ошибками Drive.
В настоящее время команда занимается тонкой настройкой параметров системы, отказываясь от нескольких PR. Основное внимание уделяется тайм-аутам, размерам очередей и другим параметрам системы для оптимизации её общей производительности. Текущие усилия направлены на поиск правильного баланса этих величин.
Было выявлено несколько проблем и путей для будущих улучшений на стороне TenderDash. Сообщения протокола ABCI, которыми обмениваются Drive и TenderDash, были скорректированы для увеличения пропускной способности и определения приоритетности критических для консенсуса сообщений. Это гарантирует, что система даже при высокой нагрузке на сеть всегда будет производить блоки, что является важным аспектом для стабильности.
Кроме того, была решена проблема, связанная с P2P-коммуникациями Mempool, путем введения ограничения скорости, чтобы ноды не спамили друг друга чрезмерными транзакциями.
Были выявлены и удалены ненужные PR для TenderDash, такие как таймауты фиксации, которые не использовались в новой системе. Основное внимание было уделено настройке P2P-каналов для приоритезации сообщений о консенсусе для бесперебойной добычи блоков.
Лукас обнаружил и исправил ошибку, связанную с блокировкой блоков и подготовкой предложений, из-за которой участники, предлагающие одну и ту же высоту, некорректно регистрировали блок.
DCG улучшила функцию поверки транзакци (Check TX), внедрив тайм-ауты для обеспечения эффективной проверки и обработки транзакций. Эта функция крайне важна для предотвращения потенциальных в очередях P2P, при трансляции транзакции в сеть.
Главная цель - обеспечить стабильность платформы даже при высокой нагрузке. Команда проводила тестирование со скоростью около 500 транзакций в секунду со стороны клиента. Некоторые проблемы все еще есть, DCG стремится к достижению полной стабильности. Важно обеспечить непрерывную обработку MLE и добычу блоков, даже если платформа не сможет принимать новые транзакции.
Пол продолжил работу над тестированием стратегий. Он успешно реализовал все операции с идентификаторами, включая добавление ключей, деактивацию ключей, снятие средств и переводы.
Пол завершил работу над логикой инициализации идентификации, которая позволяет пользователям регистрировать identity в начале работы стратегии. В настоящее время он работает над возможностью регистрации нескольких identity в одном блоке, на данный момент возможно создание не более одного identity в одном блоке. Он решает проблему, при которой попытка зарегистрировать несколько identity в одном блоке приводит к тому, что они используют одни и те же UTXO для доказательства блокировки активов.
Также он уделил время улучшению UI/UX. На экране стратегии было слишком много опций, поэтому Пол разделил их на разные экраны, чтобы улучшить пользовательский опыт. Пользователи могут создавать, выбирать или удалять стратегии. Еще TUI теперь показывает необходимую информацию, предоставляя пользователям четкие данные.
В TUI пользователи могут переходить к стратегиям, создавать новые и задавать различные параметры для контрактов, их обновления, identity и других операций. Когда пользователи запускают стратегию, задача выполняется, и они могут следить за ходом выполнения в логах.
DCG планирует реализовать более сложные стратегии, чтобы тщательно протестировать функциональность платформы с помощью текстового пользовательского интерфейса.
За последние две недели Сэм помог нескольким командам решить возникшие мелкие проблемы. Эта работа была необходима для поддержания бесперебойной работы различных компонентов. Сэм также закончил с решением проблемы синхронизации Core, связанных с ChainLocks.
Пулреквест находится на рассмотрении. В настоящее время мы ожидаем результатов тестов для обеспечения бесшовной интеграции обновлений синхронизации ядра.
Ключевые аспекты недавней работы Сэма:
Он реализовал решения для устранения потенциальных пробелов в обновлениях Core ChainLocks. При переходе от одного блока к другому процесс прост, однако сложности возникают, когда из-за разрыва возникает неопределенность в том, следует ли проверять высоту Core ChainLock текущим кворумом или предыдущим.
Функция 'submit chain lock' в Core была улучшена. Обновленная версия теперь предоставляет важную информацию, например, текущую высоту наилучшего ChainLock. Это улучшение позволяет эффективно проверять, нужно ли ждать, пока Core догонит, особенно когда ChainLock проверен, но еще не известен Core. Эти усовершенствования решают важные проблемы и упрощают весь процесс.
Текстовый пользовательский интерфейс (TUI) платформы теперь отражает действия на платформе, обеспечивая беспрепятственный пользовательский опыт. Также были внесены некоторые улучшения в пользовательский интерфейс для улучшения общего рабочего процесса.
На экране кошелька, где отображается наш кошелек Dash и зарегистрированная identity, теперь можно легко добавить идентификационные ключи, нажав "K" и выбрав назначение и тип ключа. Добавленный ключ появится внизу, а ревизия идентификатора будет автоматически увеличена, чтобы отразить обновления, сделанные на стороне платформы. Этот процесс подкреплен доказательством, гарантирующим точность информации.
Кроме того, команда внедрила функцию пополнения баланса identity. Инициирование пополнения баланса (с помощью символа "T") на идентификаторе плавно обновляет баланс. После пополнения баланса на экране TUI отображается обновленный баланс, и, как и при добавлении ключей, эта операция сопровождается подтверждением для проверки. Процесс эффективен и надежен.
DCG решила проблемы с пополнением баланса. Евгений отметил, что переход состояния создания документа находится в стадии разработки, но он функционирует. Он активно изучает вопросы надежности. Наконец, несмотря на статус "На рассмотрении", продемонстрированные возможности уже были тщательно протестированы и готовы к утверждению.
На этой неделе DCG успешно обновила DashMate до совместимости с Core v20.1. Они преодолели трудности, схожие с теми, что возникали во время проблем с выводом средств. Обновления взаимосвязаны и способствуют созданию более целостной системы. Одним из заметных улучшений является введение минимальной суммы для assetlock при пополнении счета и создании переходов. Переходы между состояниями теперь будут отклонены, если сумма окажется меньше указанного значения.
В настоящее время команда рассматривает улучшение, запрещающее создание контрактов с пустой схемой документа, что обеспечит более осмысленный и структурированный подход.
Кроме того, в ходе спринта команда решила некоторые проблемы, в том числе оптимизировала хранение состояния для ABCI Drive. Это исправление обеспечивает эффективное чтение и извлечение информации о версии протокола из состояния.
Контракты с системными данными, такие как DPNS, DashPay и вознаграждения Masternode, теперь поддерживают обновление версий. Это позволяет в будущем вносить изменения или дополнения в эти контракты без нарушения их функциональности.
Команда Core разработки
DCG успешно выпустила версию 20.0.4, в которой были внесены изменения в способ подписи бинарных файлов Windows для решения проблем с антивирусными программами. Кроме того, команда заказала сертификат, выпущенный центром сертификации, и следующая версия возможно будет доступна уже с этим новым сертификатом.
Разработка версии v20.1 продолжается. Она считается минорной версией с большим количеством бэкпортов Bitcoin, но при этом содержит несколько интересных функций. Команда активно поддерживает Platform команду и решает любые проблемы или представляет изменения, необходимые со стороны Core.
Около 67 % сети обновились до версии 20.0.4
Это список интегрированных пулреквестов за последние две недели. Большинство из них - бэкпорты. Константин предложил посвятить январь бэкпортам, чтобы ускорить процесс и сократить разрыв с биткойном, и команда активно работает над этой инициативой.
Команда Mobile разработки
В области мобильной разработки в последнем спринте было несколько задач, которые пришлось перенести. Однако команда успешно исследовала транзакции блокировки активов из v20 и внедрила лаконичное и эффективное решение. Они также добились прогресса в объединении модификаций кошелька Dash в Dash Pay и корректировке API Uphold.
Владимир вернулся из отпуска и продолжил свою работу над библиотеками Rust. Последний спринт в мобильной разработке включал интеграцию СoinJoin в Dash Sync на iOS. Команда выполнила такие важные задачи, как доработка селекторов монет, управление памятью и проведение комплексных тестов. Изменения Uphold API также были реализованы в версии для iOS.
Финальные корректировки для v20, в частности связанные с расчетами API CrowdNode, находятся на последних стадиях рассмотрения.
Команда готовится к альфа-тестированию CoinJoin. Этот этап включает в себя завершение фундаментальных задач и тщательную подготовку. Если вы хотите принять участие в тестировании на Android или iOS, подпишитесь на @Dash_ru_channel и следите за новостями.
Last updated