SAFE Network новини 🇧🇬 25.6.2020

Накратко

Ето някои от основните неща тази седмица:

  • @jimcollinson представя още един завладяващ поглед върху напредъка на потребителското изживяване чрез SAFE Network програмата.
  • Поддръжката на Symlink и Sequence CRDT PR-ите са обединени в кодовата база на safe-api-то.
  • Към Ръководство за потребителя на CLI е добавен нов раздел , описващ как новите командите safe seq могат да се използват за съхранение на данни от тип Public Public Sequence. Тези нови команди ще бъдат част от предстоящото издание на SAFE CLI.
  • Работата по SAFE Клиентските библиотеки и AT2 за SAFE Трезорите продължава с добри темпове, като остават само няколко липсващи парчета към мозайката.
  • Извлякохме пространствения модул XOR от Маршрутизирането в отделен контейнер, което позволява използването му от другите части на проекта.

Трезори – Фаза 2

План на проекта

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

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

SAFE Network потребителско изживяване на програмата

SAFE Network програма: екрани, потоци и проследяване на настройките (Figma)

За нас е удоволствие да споделим с вас цяла поредеци от екрани, потоци и документация.
Голяма част от това сте виждали и преди, но през изминалите месеци направихме стотици промени, настройки, уточнения и повторения.

Пуснахме всичко в един Figma файл, в който да се заровите, заедно с Опция за проследяване на Функции - така че да може да сте в крак с целия процес. Все още има някои екрани, които предстои да публикуваме, а други все още предстои да бъдат напълно документирани, но това е жив файл, който ще публикуваме ежеседмично.

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

Моля, не се колебайте да задавате въпроси, за което и да е от тях тук или директно в коментарите към файла Figma, ако така ви е по-лесно, когато сте го отворили.

SAFE API

План на проекта

Поддръжка на Symlink беше добавена в кодовата база тази седмица, след като реши проблем, който се появи при тестване в края на миналата седмица.

След това започна работата по внедряване на „glob ()“, който работи в FilesContainer. Това е експериментална функция, която позволява съвпадение на модел (напр. * .Txt) при разрешаване на SafeUrl. Това може да бъде полезно за филтриране на резултати, когато се използват safe-cli команди, като например files ls или files get.

Няколко API и CLI команди за CRDT Sequence бяха добавени тази седмица и са готови за предстоящата версия на CLI. Тези нови команди позволяват на потребителите да съхраняват Публична Последователност в мрежата и да добавят елементи към нея с помощта на своя XOR-URL. Можете да разгледате новия раздел, добавен към Ръководството на потребителя за , описващ как тези нови safe seq команди могат да се използват за съхранение на данни от тип Публична Последователност.

Като част от внедряването на API-то за последователността и командите, използването на AppendOnlyData е премахнато и сега FilesContainers и NRS Map Containers се съхраняват в мрежата като съдържание тип Public Sequence. Това не засяга нито една CLI команда или API-та, тъй като е просто вътрешна промяна в превключването на реализацията от един тип данни към този нов.

CRDT

През изминалата седмица финализирахме всички PR-и в пълния стек за първата версия на CRDT Sequence, като в същото време премахнахме типа AppendOnlyData.

Както се очакваше миналата седмица, последните стъпки за постигането на всичко това бяха за окончателното почистване на кода на safe-client-libs и safe-api контейнерите, както и за създаване на тестове за нашия тестов набор от CI. Също тествахме всичкото това E2E, използвайки нашия CLI тестов пакет в Бейби Флеминг секцията и всичките ни функционални тестове преминават.

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

Някои от следващите стъпки са свързани с възможността да прикачим AT2 плащане към CRDT операция и върху това започваме работа сега. Друга висяща задача е да трансформираме сегашния тип данни MutableData в нов CRDT Map, което според нас може да бъде направено, след като имаме първата версия на CRDT Sequence, пусната и щателно тествана от общността.

Трансфери

SAFE Трансфери План на проекта
SAFE Клиентски библиотеки План на проекта
SAFE Трезор План на проекта

Тази седмица бяхме напълно фокусирани върху работата по интеграцията между AT2 SAFE Клиентските библиотеки и SAFE Трезорите. С действие „Симулирани изплащания“, както беше споменато в предишните новини, и двата модула вече са готови за AT2 само с още няколко липсващи части (избиране на ефективни маршрути за плащания, възстановяване на суми и др.), които тепърва ще бъдат написани, заедно с тестването за интегриране. Почти всички потоци, които се занимават с Пари (Качване/Промени), бяха актуализирани, за да работят с основния AT2 механизъм.

Оценяваме възможностите за плащане за данни, които определят, наред с други неща, как секциите използват safe-transfer. Във връзка с това напредваме и с фермерството. Написахме тестове за проверка на BFT свойствата за натрупване на награди. Натрупването на награди е проектирано така, че да позволи възнаграждаването на минимална единица работа, както и да остави на горните слоеве от мрежата да решат какво считат за “работа”.

И накрая, правим съответните актуализации в SAFE Клиентските библиотеки за тези последни промени в процеса по Качване/Промени. След като ги имаме ще проверим всичко спрямо актуализираните Трезори.

Маршрутизиране

План на проекта

Тази седмица обединихме функцията споделени подписи за състоянието, която обсъждахме в предишни седмични новини. След това се обърнахме към още едно изискване от екипа на Трезорите - оказва се, че понякога е необходимо трезорът да манипулира BLS подписите по начин, който не се поддържа пряко от API-то за маршрутизиране. Решихме, че вместо да правим API-то по-сложно и потенциално объркано, ще позволим на трезора да извършва тези манипулации директно. Но за да избегнем дублирането на потенциално нетривиална логика между Трезорите и Маршрутизирането, решихме, че ще изложим някои BLS помощници на ниско ниво извън Маршрутизирането. По-специално, въведохме Generic Acnatulator Acnatulator, който обработва подробностите по събирането на BLS подписите, валидирайки ги и комбинирайки ги в пълен подпис PR е създаден и в момента се преглежда.

Работата по замяната на DKG напредва добре. Основен проблем при работа с DKG при разделяния е решен в този PR - обяснено накратко - ще позволим на новите Старейшини да гласуват за новата DKG. В момента PR-а се преглежда и оценява спрямо най-новия клон на Флеминг (поради последните промени там, това ще отнеме малко време).

We also extracted the XOR space module out of Routing into its own separate crate , because it’s actually useful for other parts of the project. This crate defines the XorName structure which is a 256-bit long number serving as a unique identifier of nodes and data on the network. It also defines the XOR metric (distance between two names) which plays an important role in message routing. Finally, it provides the Prefix structure which forms the core of the disjoint sections concept.

Освен това извадихме пространствения модул XOR от Маршрутизирането в отделен контейнер, тъй като всъщност е полезен и за други части на проекта. Този контейнер определя структурата на XorName, който е 256-битово дълго число, което служи като уникален идентификатор на Трезори и данни в мрежата. Той също така определя показателя XOR (разстояние между две имена), който играе важна роля в маршрутизирането на съобщенията. И накрая, той осигурява структурата на Prefix, която представлява ядрото на концепцията за Секциите.


  • Подробна информация може да намерите както винаги във форума на международната общност: SAFE Network Forum
  • Ако имате въпроси може да ги зададете във Facebook групата на българската SAFE общност: https://www.facebook.com/groups/SafeNetworkBulgaria/
  • Ако искате да следите последните новини заповядайте във Facebook страницата на SAFE Network България: https://www.facebook.com/SafeNetworkBulgaria/