Обновление Safe Network 🇷🇺 8 декабря 2022 г

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

Пришло время тестовой сети! Да, ребята, пришло время стряхнуть пыль с этих терминалов и снова запустить эти клиенты, тестовые сети снова в городе. Мы не ожидаем, что это будет идеально, и есть несколько проблем, которые мы прорабатываем при общении между клиентами и старейшинами, но мы были бы очень признательны за вашу помощь в тестировании некоторых вещей, включая хранение данных и тайм-ауты. Чтобы избежать осложнений, мы пока убрали функцию разделения разделов, поэтому будем тестировать один большой раздел. @joshuef объясняет больше ниже.

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

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

@bochaco занимается проблемой подключения/повторного подключения клиента, из-за которой сообщения, похоже, теряются. Это может быть проблема quinn/qp2p, но требуется дальнейшее копание. Надеюсь, это будет исправлено для следующей тестовой сети.

Тем временем @roland работает над реализацией SectionTree, записи всех ключей разделов до генезиса, которая доказывает, что пользователи находятся на правильная сеть.

Внедрение консенсусного протокола ABBA также продолжается, и Мостафа и @davidrusu вносят последние изменения. После реализации следующим шагом будет интеграция VCBC с ABBA для достижения полного протокола консенсуса MVBA (Multi-Value Byzantine Agreement).

@oetyng привел в порядок несколько операций, в том числе то, как мы сообщаем о хранении у взрослых (PR, который также прокладывает путь к тому, чтобы узлы никогда не переполнялись). ), а @chriso изучает журналы узла пересылки для ELK, основного стека наблюдаемости, который мы используем для мониторинга того, что происходит на уровне узла.

Новая тестовая сеть

Как мы упоминали в последнем обновлении, мы какое-то время были в окопах, но теперь снова начинаем смотреть на вещи целостно. И мы хотим сделать это, максимально вовлекая сообщество.

Итак, у нас есть тестовая сеть из 25 узлов. Каждый узел имеет 50 ГБ пространства. Мы стремимся:

  1. Убедитесь, что мы не теряем данные, пока узлы не будут заполнены. (Мы работаем над тем, как поступать с полными узлами). До тех пор наши текущие тесты показывали, что данные довольно успешно сохраняются, пока мы не заполняем узлы. (Поэтому полные узлы ознаменуют конец этого запуска).
  2. Не соединять узлы. Мы ограничили это в самих узлах, чтобы удалить одну переменную тестовой сети. (Мы также знаем — и у нас есть ожидающее исправления — некоторые проблемы с автоэкспозицией после разделения, поэтому не хотим сейчас углубляться в них).
  3. Улучшите работу с определенными тайм-аутами. Старейшина->Для взрослых тайм-аут двунаправленной связи через 7 с. Клиент->Старейшина в 45-х годах. Мы хотим увидеть, насколько релевантны эти значения под нагрузкой.

Вовлечены

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

Таким образом, мы будем проверять только «безопасный» клиент и данные PUT/GET. Мы просим людей не загружать более 10 МБ за раз, чтобы посмотреть, как там обстоят дела.

К сожалению, мы еще не выпустили полную версию. (Мы меняем наш тестовый процесс, чтобы теперь проверять все PR, поступающие в main, в их собственной тестовой сети; как только это будет сделано, выпуски из main должны быть намного более плавными). Итак, мы создали его вручную и загрузили «безопасные» двоичные файлы сюда:

Примечание. macOS не запустит двоичный файл, поскольку не может проверить разработчика. Чтобы обойти это, запустите xattr -d com.apple.quarantine ./safe. Затем убедитесь, что его можно выполнить с помощью chmod +x ./safe. Затем CLI можно запустить с помощью ./safe.

Быть втянутым:

  • удалить ~/.safe
  • загрузите соответствующий безопасный bin из выпуска и сохраните его в /usr/local/bin на Mac/Linux или в %USERPROFILE%.\safe\cli в Windows.
    • Примечание для пользователей Windows - вы можете добавить указанный выше каталог bin в PATH, в качестве альтернативы вы можете использовать ./safe при запуске из каталога для всех выполняемых команд safe.
  • запустите safe --version, чтобы убедиться, что вы используете правильную версию (0.67.0 интерфейса командной строки).
  • запустите safe networks add wild-testnet https://sn-node.s3.eu-west-2.amazonaws.com/testnet_tool/main/network-contacts
  • safe networks switch wild-testnet

И тебе пора идти :tada: :beers:

Пример: загрузить файл

Самое простое, что мы можем сделать, это загрузить файл с помощью команды files put:

$ safe files put ./to-upload/file1.txt
FilesContainer created at: "safe://hyryyryynamznbfsgn7ccfquqmx6y8yzhq6tn7uzz775hrkyj4g8ipcy3ke6yeuy?v=h9jxxwwpy1cwf3pnb86ahkfk5ju8eb3miegnuehc99f5r5x83d9go"
+  ./to-upload/file1.txt  safe://hy8oycyyb7jfqswhktzn9ahhk1hnz53dhfnrfp6h34emgrmjzggro75eikpoy

Это создаст контейнер с одним файлом. Назначенные здесь URL-адреса safe:// относятся к контейнеру и файлу соответственно. Это означает, что к файлу можно обращаться, используя либо safe://hyryyryynamznbfsgn7ccfquqmx6y8yzhq6tn7uzz775hrkyj4g8ipcy3ke6yeuy/file1.txt, либо его прямой URL-адрес.

Подробнее о том, как загружать файлы, читайте в документах CLI.

Полезные сведения и отчеты о проблемах

Прямо сейчас уменьшите количество загрузок. < 10 МБ/файл.
Добавлено временное ограничение, и вы получите сообщение об ошибке, если превысите 10 МБ. В настоящее время ошибка неинформативна, но по размеру вы поймете, что это связано с превышением ограничения на размер временного файла.

Вы можете столкнуться с проблемами, связанными с Cmd Ack Validation timeout (наши тайм-ауты должны быть набраны лучше, см. выше), это означает, что сеть, вероятно, находится под нагрузкой, поэтому попробуйте еще раз через несколько минут. Ваши данные вполне могли быть сохранены, просто не так быстро, как мы ожидаем прямо сейчас.

Если вы постоянно видите проблемы с размещением данных или получением данных, у вас есть PUT. Пожалуйста, запустите вашу команду с префиксом RUST_LOG=sn_client (по крайней мере, на Ubuntu/Mac). Вывод там и MsgId, которые были отправлены/неудачны, будут ключом к отладке.


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


Сеть работает на основе немного менее надежной (с точки зрения подключения клиентов) тестовой сети, которая работала всю неделю. С сохранением данных там все в порядке, так что :crossed_fingers: надеюсь, это будет продолжаться и здесь (или ошибка будет выделена :muscle: )

По большей части это мусорные тестовые данные, но есть небольшой набор jpg-файлов, загруженных по следующим ссылкам xorurls для тех, кто хочет получить какие-то данные (например, safe cat safe://hygoygym7tsj5hhyyykd1aqpw3djxea6om6xku568ahm7hy7gfn6q5gy7xr > 1.jpg):

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

сейф://hygoygym7tsj5hhyyykd1aqpw3djxea6om6xku568ahm7hy7gfn6q5gy7xr
сейф://hygoygym19bdbzg6jakfzkmacxurpkbuphgsxi6af3aecugfqjfaq66shww
сейф://hygoygyq1xiofs8kx11jwkcguzuocd1xa5qp767bjjz39yrh44eo1mjkjch
сейф://hygoygypnrqirzo7r5w464mnda8s6sdpatyrco5pda1w8nh5appa3ycb98h
сейф://hygoygykajkeropyam6yihj9exdhn5o4b1pbjbeet4bazqo8m47ga3pw8mo
сейф://hy8ayqyjy9obx5kr5g9f1r95hshhfswt7yqh6cy9t34sap7zqid4ox7ucuo
сейф://hygoygyp8c1wy7ijrpnesz9cj7enf4ms9oxhmp5m4r4yw4pjcemgywekf9r
сейф://hygoygye13iznm1yxzpxp9seh6j8weh84c5ib3fq9mxozz4h6hb95o3uduo
сейф://hygoygycc11b4pmrcb97ro6ro3wxh3cfrgi7ctbiwyya8mkktq1j35ysmzh
сейф://hygoygykzkguckqygm985f5jrhcw87wiskbc97bottab47tq6fm9zm85f7r
сейф://hygoygyewnaj8o7za3qycckfy95o5j9gex6s3b8jygr9j48aiyzthc36ffo
сейф://hygoygykime3s7rup1ezeiqeqo1zy1o4bqmckewhriun889c64n4umxcyih
сейф://hygoygyc98c1ozh1cn9edxeworctuagt465zyybr61m8judfry4a4zycf8c
сейф://hygoygyqcq8bift7urnftiqxzn7d877ckwtk85haawg7oigm3bhn3r1dx7e
сейф://hygoygyk7dzmcqxm3q4np87unu6tb9d8qt44fowxgqrhjy1xs6xgt69hade
сейф://hygoygymq98z86j1oagpctmg7pnixz94ckekpgytu1jkb45du8xw49qrr4w
сейф://hygoygypoq7y31uedr7c6q6e3jaxhd94id3r8bwn7od3f79hgdj7xbqibjr
сейф://hygoygykw8iw7wt9o3c7w36hi5xc1coyjdmdfm6dima3y9ehefxipxkwg3w
сейф://hygoygyc67ozi6m9i9o8xq5wti7ysa4g6nodxetmdgw64g5pw1qmucheeac
сейф://hygoygyqsxzn4p6mjx7ggj98pqc4he53xk1c54kw3hq1967n4yga1nbo3iw
сейф://hygoygyxojetcr5553xfyjnfoh3ywge7grs8d7z66e8nf678stecagdkomw
сейф://hygoygyqf4au3yf7ouyi7imu1hty5qrsjppy1mj5uba5tahnxkmocys5g7h
сейф://hygoygyx41a9samc35ep6h7y6zwku5ess3377f8awtuwn44r1pc5w3ragky
сейф://hygoygyej97u6irwmgq1od4s8m6h8epbkgmmwqtghhhy1hbcsntizpjmh3c
сейф://hygoygypn9urw4mhoqfabnke71e8usekjeg8m54t1fkoeigdyr5srgqoia

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

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

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