Обновление Safe Network 🇷🇺 8 сентябрь 2022 г

Это машинный перевод. Оригинал на английском здесь: Update 08 September, 2022

Вы настраиваете тестовую сеть, загружаете какие-то данные, что-то идет не так. Что произошло и где именно это произошло? Отследить, где возникают проблемы в сетях, — непростая задача, особенно в децентрализованных сетях, где каждый узел является отдельным. На этой неделе @davidrusu познакомит нас с statemaps, диагностическим инструментом, который точно показывает нам, в каком состоянии находится каждый узел в любой момент времени. Это взгляд Бога на сеть, который, несомненно, значительно облегчит исправление ошибок.

Как всегда спасибо всем, кто экспериментирует с локальными сетями и комнетами. Мы обоснованно убеждены, что некоторые проблемы с загрузкой больших файлов связаны с уровнем API, и сейчас мы их рассматриваем.

Общий прогресс

@bochaco продолжает совершенствовать процесс сообщения об ошибках, чтобы предоставлять клиентам более содержательные сообщения.

@anselme смотрит на AE и сплетни, а также на то, как одно может быть запасным вариантом для другого в случае сбоев связи.

Что касается документации, @jimcollinson завершает работу над основным техническим документом, требуемым швейцарским органом FINMA. Это скорее обзор, чем подробное техническое погружение, так что, вероятно, для большинства здесь нет ничего нового, но, тем не менее, галочки в тех юридических полях, которые готовы к запуску.

@Chriso и @bochaco выясняют, что происходит, когда DBC отправляется на переиздание, и при проверке этого процесса было обнаружено, что некоторые израсходованные доказательства были подписаны ключом раздела, о котором не знает раздел, обрабатывающий запрос на переиздание.

Карты состояний

В высококонкурентной системе может быть очень трудно увидеть, что происходит. Узлы невероятно быстро перемещаются по состояниям, и попытка сопоставить сообщения между узлами может показаться, что вы пытаетесь восстановить измельченный документ.

Statemaps позволяют воссоздать частичную картину того, что произошло в сети постфактум. Они оказались очень полезным инструментом для понимания того, на что ноды тратят свое время.

Мы настроили кодовую базу sn_node для регистрации входа в состояние и повторного выхода из него. Затем мы можем обработать эти журналы для создания карты состояний, подобной приведенной ниже:


Каждая строка соответствует узлу со временем на оси x. Прямоугольники в каждой строке соответствуют состоянию, в котором узел находился в течение этого интервала времени.

Каждому состоянию присваивается цвет:

Анализируя эту карту состояний, вы можете начать понимать, что здесь произошло, давайте обозначим различные фазы и поговорим о них.

  1. Мы видим, что карта начинается с 6 старейшин, голосующих за членство (лосось).
  2. После завершения членства они сразу же начинают DKG (оранжевый). Это должно быть намеком на то, что будет смена старейшин.
  3. Тем временем мы видим, что 7-й узел подключается к сети. Он получает обновление AntiEntropy (светло-голубой), сообщающее ему, что его приняли в сеть, а затем присоединяется к DKG (оранжевый). Это предполагает, что этот новый узел, который только что присоединился, повышается до статуса Старейшины, и именно поэтому первоначальные 6 Старейшин основали DKG.
  4. Теперь мы видим, что DKG остановился, это связано с тем, что DKG требует полного участия для завершения, все существующие 6 узлов внесли свои части, но им нужен 7-й узел, чтобы добавить свою долю для завершения ключа раздела.
  5. В конце концов 7-й узел догоняет, и DKG завершается. Следующим шагом будет проверка старых 6 старейшин, что новый ключ раздела действителен, и передача управления (темно-синий) новым 7 старейшинам.
  6. После завершения передачи мы видим всплеск антиэнтропии, посылаемой, предположительно, с новым SAP, показывая, что новые старейшины взяли под свой контроль секцию.

Мы разработали небольшой инструментарий для этих карт состояний, README безопасной сети содержит инструкции по созданию собственных карт.

Чтобы упростить разработку, мы также настроили CI для автоматического создания и загрузки карт состояний для каждого PR.

Мы надеемся, что эти карты покажутся вам поучительными, приятного просмотра!


Полезные ссылки

Не стесняйтесь отвечать ниже со ссылками на переводы этого обновления для разработчиков, и модераторы добавят их сюда.

Как проект с открытым исходным кодом, мы всегда ждем отзывов, комментариев и предложений сообщества - так что не стесняйтесь, присоединяйтесь и давайте вместе создадим безопасную сеть!