Обновление Safe Network 🇷🇺 14 июля 2022 г

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

В отворения код няма тайни. Както някои от вас забелязаха, старият конфигурационен файл за свързване вече не е, заменен от PrefixMap. Е, какво става? @roland е тук, за да обясни повече.

Друго нещо, което се насочва към изхода, е неподдържаният и бъгав sledDB. Но ти също знаеше това вече. @yogesh обяснява какво го замества и защо поне засега избягваме опцията за база данни.

Общ напредък

Целият екип е ангажиран с опростяването на кода чрез премахване на ненужната многопоточност. Ще ви насочим към публикацията на @joshuef тук, за да обясним защо. Добрата новина е, че премахването на тази грешка вече е много положително по отношение на производителността.

@bzee разработи нов инструмент, който ни позволява да инспектираме парче и да видим къде се съхранява в мрежата и при кой възрастен. Надяваме се скоро да предоставим това на общността за тестване.

Също така по отношение на наблюдаемостта @joshuef рови в heaptrack, който профилира използването на паметта. Паметта като цяло сега е много по-добра, но все още има случайни пикове.

@bochaco и @chriso напредват с DBC интеграцията и се надяваме следващата итерация да е готова за тестване в общността много скоро - много ви благодарим за помощта с това досега, момчета :bowing_man:

И @heather_burns отново е в медиите, като този път говори за Draconian в Обединеното кралство (и сега, за щастие, отложен или дори изоставен) законопроект за онлайн безопасност.

PrefixMap

Заменихме стария конфигурационен файл с PrefixMap, отчасти като опростяване на кодовата база, отчасти за оптимизиране на връзките и съобщенията. Конфигурацията съдържа IP адреси и портове на възли, към които да се свържете, плюс генезисния ключ на мрежата. PrefixMap съдържа всичко по-горе плюс доставчика на права за раздел (SAP), който предоставя списък на всички текущи старейшини в раздел и текущия ключ на раздел. Освен това, тъй като генезисният ключ може да бъде доказуемо свързан с разделителния ключ в SAP, клиентът може да провери, че е на правилното място, в правилната мрежа и всичко е актуално (чрез анти-ентропия).

Това също така позволява на клиента веднага да се свърже с най-близките старейшини, така че можем да избегнем натискането на всички старейшини в дадена секция за всяка заявка.

За нови възли, присъединяващи се към мрежата, PrefixMap предоставя общ преглед на топологията на мрежата, която може да актуализира, ако трябва отново да прескочи няколко междинни стъпки.

@roland обяснява предисторията.

Конфигурационният файл, който съдържа ключа за генезис на мрежата и някои начални IP адреси, беше начинът, по който се свързвахме с всяка публична/частна тестова мрежа. Но в същото време поддържахме и PrefixMap, структура, която съдържаше най-новите SAP на секциите, за които знаем. Тъй като SAP съдържат IP адресите на всички старейшини, можем да използваме това за стартиране към мрежата вместо това.

Това е предимство пред конфигурационния файл, защото ние не забиваме фиксирания набор от възли, използвани за стартиране към мрежата. Вместо това можем да направим запитване към PrefixMap, за да получим най-близките SAP до дадено XOR-име и да ги използваме за стартиране в мрежата. Това балансира натоварването при стартиране.

Също така планираме скоро да преместим SectionChain в PrefixMap, което ще разреши някои проблеми в клиента, който в момента трябва да премине през процеса на актуализиране на анти-ентропия (AE), за да се гарантира, че е актуален, което може да добави до огромно количество AE съобщения. Това е в процес на работа.

Как това променя Comnets?

Тези промени не трябва да засягат работата на локални и общностни тестови мрежи (Comnets), въпреки че ще забележите няколко малки разлики.

  • Единственият нов процес е, че ще използваме PrefixMap за свързване към локални/публични тестови мрежи вместо файла node_connection_info.config.
  • Ние използваме Genesis Key на мрежата, за да наименуваме файловете PrefixMap, следователно те може да изглеждат така PublicKey(0123..4567)

Свързване към Comnet:

  • Уверете се, че нямате стария конфигурационен файл ~/.safe/cli/config.json и стари префиксни карти вътре в ~/.safe/prefix_maps/. Можете да изчистите цялата директория .safe с помощта на rm -r ~/.safe/
  • Можете да добавите Comnet към списъка си с мрежи, като предоставите URL/път на неговата PrefixMap, както е предоставено от всеки, който настройва Comnet (напр. curl https://<адрес на PrefixMap>).
    Използвайте следната CLI команда, за да направите това, networks add my_comnet "<path/url>"
  • След това можете да превключите към добавената мрежа, като използвате networks switch my_comnet

Изпълнение на локална тестова мрежа „baby-fleming“:

  • Уверете се, че нямате старите файлове, както е посочено по-горе.
  • От CLI инсталирайте най-новата версия на sn_node с помощта на командата node install
  • Използвайте killall sn_node, за да спрете всички работещи копия на sn_node
  • Стартирайте тестовата мрежа с помощта на node run-baby-fleming
  • Вече можете да използвате командата networks, за да видите всички мрежи, които са достъпни за вас, и да използвате networks switch network_name, за да превключвате между тях

Забележка: CLI използва директорията ~/.safe/prefix_maps/опитайте се да актуализирате списъка с мрежи и да изберете текущата мрежа, към която е свързан, следователно преименуването на файлове в тази директория може да доведе до нежелани резултати.

Отпадане на шейна

Последната част от процеса на премахване на шейната, съхраняването на регистри, вече е почти готова и бъгавата и неподдържана sledDB скоро ще бъде напълно заменена с нашето собствено вътрешно дисково хранилище. Както казахме миналата седмица, това е изпълнение, поддържано просто, без излишни функции, което се представя наравно с останалите алтернативи, като същевременно ни освобождава от външна зависимост на този етап. Нищо не ни пречи да разглеждаме други бази данни надолу по линията, когато имаме нужда от такава.

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


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

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

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