SAFE Network новини 🇧🇬 16.7.2020

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

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

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

Моля вижте публикацията за нея и се присъединете, всички са добре дошли.

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

SAFE API

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

Днес пуснахме нови версии на safe-api, safe-cli, safe-authd, safe-ffi и jsonrpc-quic, всички в подкрепа на днешните нови трезори от версията за домашен тест :tada:

Вижте списъка с промени за акцентите в новите функции и корекции на грешки, които са в новите издания и разбира се, вижте подробното Ръководство за потребителя на CLI за инструкции стъпка по стъпка как да използвате всички нови и съществуващи функции.

Започнахме да проучваме възможни подобрения в дизайна на SAFE File API-то.

По-специално, скорошен изследователски документ (и видео вижте 35:30 мин) привлече вниманието ни, който може да доведе до драматично подобрение на ефективността, да помогне за опростяване на API-то ни и решаване на предизвикателства за съвместно редактиране. Документът е озаглавен Високо достъпна операция за преместване на репликирани дървовидни и разпределени файлови системи и описва подробно официално доказан тип данни на CRDT Tree, който е подходящ за използване за файловата система и с последвала евентуално последователност, решава дългогодишен проблем с операциите при преместване, който засяга дори Dropbox и Google Drive, когато се извършват едновременни актуализации. Подходящ е и за работа офлайн.

Основната идея за дизайна ни е да добавим Tree като SAFE тип данни и да внедрим FileTree като специализация, точно както FileContainer е специализация на Sequence. Важната разлика е, че всяка директория и файл се съхраняват поотделно в „дървото“, вместо всички сериализирани заедно като плоска JSON карта в един запис Sequence. Това прави актуализациите и извличанията много по-ефективни за всяка нетривиална структура на директория.

По-нататък бихме искали да включим елементи на Safe.NetworkDrive за бърз локален достъп и използване офлайн, както и интеграция на собствена файлова система чрез FUSE.

За да бъде ясно, идеята е, че SAFE приложенията могат да имат достъп до файловите API-та директно, ако желаят, но не-SAFE приложенията все още могат да взаимодействат със SAFE файлове чрез локално монтиране. Това би означавало, че инструменти като rsync могат да се използват лесно, експлорери на файлове и т.н.

За момента това остава, че разглеждаме идеи и дизайн на високо ниво. Има много неща за решаване. Първото предизвикателство би било прилагането на алгоритъма CRDT-Tree в Rust. Понастоящем съществува само под формата на формална логика на Isabelle/HOL. Ако някой от членовете на общността владее Isabelle/HOL и може да помогне да го преведе на Rust или дори псевдо-код, това може да помогне за ускоряване на нещата.

Успоредно с това се опитваме да разкрием FFI API-тата на Удостоверителя от safe-ffi контейнера. Това ще обедини нашите API-та за всички платформи. През последните няколко седмици се сблъскахме с проблем с FFI API-тата, когато се опитвахме да се свържем с реалната мрежа, докато тестовите API-та работеха добре. Тази седмица решихме този проблем и вече можем да продължим с последния кръг на тестване и преглед.

SAFE App C#

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

Както споменахме в раздела за SAFE API, разрешаването на проблемите с връзките в safe-ffi направи възможно тестването на новите API-та за удостоверяване в API-то на C#. Това означава, че през следващите седмици ще пуснем нова версия на NuGet пакета, който ще съдържа всички нови API-та, включително API-то за последователност на данни и API-то за удостоверяване. След пускането на този пакет ще бъде лесно да актуализирате приложенията за удостоверяване и SAFE мобилния браузър, за да работят с най-новия трезор.

Тези скорошни промени вече се оказаха много полезни и за първи път можем лесно да настроим нашия CI за изпълнение на тестовете спрямо реална мрежа :tada: До сега трябваше да стартираме ръчно тези тестове преди да пуснем нова версия, докато само на CI тестовете бяха в състояние да стартират.

SAFE Браузър / SAFE Network програма

Доскоро Браузърът и SAFE Network програмата бяха донякъде пренебрегвани, докато акцентът беше върху различните тестови мрежи и разработването на AT2. Но след напредъка с най-новите трезори и основните промени в SAFE API-то, вече работим върху нови версии и за двете, които да са съвместими с най-новия трезор и тестовата мрежа.

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

CRDT

Тази минала седмица продължихме с проучванията около Контрола на достъпа за нашите CRDT типове данни. В момента разглеждаме два различни подхода, първият, който позволява да се прилагат операции, дори ако те зависят от по-стара версия на Политиката, и втори подход, при който такива операции не се приемат, или дори се отменят, ако нова Политика ги направи невалидни.

И двата подхода имат свои специфични неща и последствия, които все още се опитваме да разберем напълно, не само от гледна точка на внедряването, но и от гледна точка на потребителското изживяване.

И в двата случая трябва да сме сигурни, че следим тази информация за зависимостта (причинно-следствената връзка) между данните и операциите на политиката и затова започнахме малко преструктуриране в настоящата Sequence CRDT реализацията, за да сме сигурни, че може да побере предстоящите промени, независимо от избрания подход.

Трансфери

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

Тази седмица видяхме, че преструктурирането на мрежовите съобщения се успокои донякъде, след допълнителната итерация. С основните промени вече добавени в safe-nd и приложени в трезорите, върнахме safe-client-libs обратно на преден план и направихме някои подобрения при обработката на съобщения там сега, когато увеличихме спецификата на мрежовите съобщения. Освен това това позволи да се реализира повече или по-малко пълния поток от възнаграждения в трезорите. В момента продължаваме с почистването на някои модели за вътрешни съобщения там.

В SCL сме настроили нещата, за да позволят правилното обработване на мрежовите събития (като валидиране на искане за плащане с AT2), пълния поток на заявките (през който всички наши съобщения минаваха преди, дори ако това не беше необходимо) и накрая поставихме основите на получаването на грешки от мрежата. Всъщност обработката на такива грешки вероятно ще бъде по-скоро решение на ниво приложение, което разработчиците да вземат.

Сега фокусът е върху SCL + трезорите да бъдат тествани тези промени.

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

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

Като част от работата за подобряване на качеството на кода, започнахме да разделяме няколко блока с код на маршрутизация в отделни контейнери. Първия контейнер, който разделихме тази седмица, е safe-network-signature-accumulator, който е посветен на общо агрегиране на BLS подписи за SAFE мрежата. Ще се разделят повече кодови блокове, когато това стане стабилно, за да се намали сложността на логиката на маршрутизиране. Слагането в ред на това е нещо, което смятаме, че е от съществено значение за стартирането, тъй като всеки малък модул може да бъде внимателно тестван и документиран с по-голяма яснота, отколкото когато е смесен с друг код.

Както бе споменато в новините от миналата седмица, първата задача за премахване на използването на parsec, осигуряваща промените на SharedState да са одобрени от секцията, беше обединена тази седмица , Това ни дава възможност да продължим със задачата за основна промяна на даването на права на трезорите. Поради родителския отпуск на Адам (огромни поздравления за него :tada:), работата е заменена от PR 2160, който беше обединен днес. Вече сме стъпка по-близо до внедряването на гласуване въз основа на съобщения, което замества текущото гласуване, базирано на парсек.


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