Это машинный перевод. Оригинал на английском здесь: Update 27 October, 2022
Последние недели очень сильно отслаивали слои сети и обеспечивали стабильность того, что находится под ними. На этой неделе мы поговорим о том, как мы надеемся интегрировать эту работу и что это должно означать для нас в будущем.
Общий прогресс
Мостафа глубоко разбирается в механизмах консенсуса и в том, как мы можем применить их к некоторым работам Safe Network, включая вопросы членства, которые мы затрагиваем ниже.
@davidrusu и @dirvine тоже занимаются этим делом, прорабатывая крайние случаи и следя за тем, чтобы они разрешились с помощью запланированных нами механизмов.
@bochaco все еще работает над ошибками реализации обмена сообщениями и подключения вместе с @joshuef и @qi_ma. Рабочая ветвь, которую мы поддерживали перед main
, выглядит хорошо.
Затем возникает вопрос о том, что именно происходит при выполнении запроса GET. Что нужно подписать и какая минимальная информация должна быть отправлена с чанком, чтобы можно было идентифицировать взрослого, контролировать и наказывать в случае неудачи? @ansleme и @oetyng в основном смотрят на это сейчас.
А на фронте тестирования @chriso переделывает автономный runner для GitHub Actions CI/CD, чтобы упростить форк, который мы использовали.
Следующие шаги по обеспечению стабильности
В последнее время мы прилагаем все усилия, чтобы стабилизировать нижние уровни сети (как мы видели на прошлой неделе). Мы упростили управление подключением и удалили несколько слоев кода «повторных попыток» из слоев sn_client
и sn_node
, которые запутывали нечастые ошибки (которые становились все более частыми в ходе более продолжительной работы тестовой сети и многих тестов). Мы работали над этим на уровнях управления соединениями и хранения узлов, а также на уровне членства.
Поскольку мы сосредоточились на этой нестабильности, мы перешли к использованию более простой настройки CI. У него есть тесты, работающие последовательно, но работающие гораздо более последовательно, за исключением нескольких проблем, которые возникают на main
. Но это с гораздо более простой настройкой управления подключением и удалением многих слоев «повторить».
Мы еще не проверили это через отжим тестовой сети, так как мы все еще пытаемся устранить оставшиеся проблемы: зависание членства… (для этого тестируется исправление); иногда медленные тесты API, которые, по-видимому, связаны с рассинхронизацией членства; и очень случайные сбои теста DBC.
Мы надеемся очень скоро объединить нашу рабочую ветку с основной. Как только мы получим это, мы постараемся зафиксировать этот прирост стабильности с некоторыми дальнейшими улучшениями CI.
Дополнительные тесты
Мы добавим тесты для проверки всех путей для взрослых и пожилых людей (повторное включение сплит-тестов, балансировка данных при оттоке и т. д.), а также проверку всех без исключения взрослых, которые должны хранить данные хранят данные. В конечном итоге это должно позволить нам перейти к более простой настройке «счастливого пути» для клиентских коммуникаций (т. е. общение только с одним старшим… ожидание ACK перед попыткой проверки), что еще больше снизит нагрузку на сеть.
Как только мы это сделаем, мы постараемся провести все PR через скорректированный рабочий процесс CI. Мы будем упрощать тесты, чтобы изначально запускать их только на Linux-машинах (поскольку они самые быстрые). Полный набор запускается только после проверки PR (через BORS, нашего робота CI).
Мы надеемся, что это должно ускорить цикл обратной связи по нашим PR, так как BORS предоставит мясо CI и проверит его на всех платформах после того, как PR будет рассмотрен.
И хотя это само по себе не далеко от того, что мы имеем сейчас… CI должен быть более стабильным, более полезным (BORS управляет ожидающими PR и автоматически перебазирует; как мы, возможно, уже говорили об этом здесь ранее)… И… Затем мы добавим полную тестовую сеть дроплетов в поток BORS, что будет означать, что main
будет только содержать код, прошедший каждый тест, который у нас есть, на каждой платформе, во всех сетевых условиях!
А благодаря надежному, протестированному и готовому к выпуску main
мы будем намного лучше подготовлены для работы над улучшениями, тестами и новыми функциями, не упуская при этом возможности стабильности.
Полезные ссылки
Не стесняйтесь отвечать ниже со ссылками на переводы этого обновления для разработчиков, и модераторы добавят их сюда.
Как проект с открытым исходным кодом, мы всегда ждем отзывов, комментариев и предложений сообщества - так что не стесняйтесь, присоединяйтесь и давайте вместе создадим безопасную сеть!