SAFE Network новини - 27.2.2020

SAFE Network новини - 27.2.2020

Накратко

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

Обобщение

Наехме експерт по безконфликтни репликирани типове данни да прегледа SAFE мрежата и също така да помогнем за създаването на прототип на византийско CRDT решение, устойчиво на откази. Това би могло да ни позволи да боравим ефективно с едновременни данни, както и с офлайн работата и още много неща. Това също, което може би е по-важното, ще осигури по-нататъшното формализиране на типове данни с конкретни гаранции за коректността. Голяма част от данните ни са много близки до CRDT решението, но формално не е така. Това упражнение ще ни осигури поне по-голяма яснота относно правилността на мутациите на данните. Тази работа е планирана да започне на 5 март и се очаква да отнеме около 8 седмици. Ще споделим повече подробности с напредването на работата.

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

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

От наблюденията ни върху вътрешните тестови мрежи направихме много подобрения в маршрутизацията, PARSEC и SAFE Клиентските библиотеки, което ни приближава до началото Бейби Флеминг. С подобренията в обмяната на съобщенията (повече подробности в раздела „Маршрутизация“) наблюдаваме стабилизирано използване на процесора и паметта от трезорите и също така тестовете преминават успешно. Направихме някои подобрения в клиентските библиотеки, за да подобрим скоростта, като пропускаме частта, в която чакаме всички трезори да отговорят на GET заявките.

Първата версия на инструмента за стартиране на мрежата (за да може да се стартира локална мрежа Бейби Флеминг) също беше завършена и успешно тествана върху всички (Linux / macOS / Windows) платформи. Този инструмент покрива само най-основните изисквания за предстоящото издание и вече е интегриран в CLI, което означава, че няма да има нужда да го пускате отделно, може да го използвате с конкретни CLI команди (вижте по-долу за подробности) ,

SAFE API

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

Миналата седмица финализирахме подобрение, направено в CLI командата за синхронизиране на файлове ( files sync) , което добавя поддръжка за откриване на модифицирани файлове, дори когато размерът им не се промени. Това стана възможно благодарение на разработката ни по изчисляването на XOR-URL адреса на локалните файлове, без да е необходимо да ги качваме в мрежата, което ни позволява да правим това по много ефективен начин. Чрез просто сравняване на XOR-URL адресите на локалните файлове с тези, които вече са свързани с целевия FilesContainer, можем да открием кои файлове са променени и следователно да ги качим отново с операция за синхронизиране.

Успяхме да финализираме и обединим PR, за да имаме команди, свързани с трезорите в CLI и добавихме подробни инструкции към CLI Ръководството за потребителя, за това как да ги използвате за инсталиране на safe_vault и за стартиране на локална Бейби Флеминг мрежа, използвайки инструмента за стартиране на мрежата. Ако погледнете ръководството за потребителя, вече ще можете да разберете колко лесно ще бъде да стартирате локален Бейби Флеминг чрез CLI, след като го завършим и пуснем.

Тъй като подготвяме всички PR-и и контейнери за предстоящето излизане на Бейби Флеминг, текущото състояние на master клона на safe-api хранилището не е съвместимо с Трезорите версия v0.20.1, нито на локално ниво, нито със споделения трезор. Следователно изграждането на CLI / authd от главния клон не може да се използва с мрежа с един трезор и ще може да се използва само с Бейби Флеминг мрежата.

Също така започнахме да правим необходимите промени в safe-api-то, за да можем да поддържаме поточно съдържание, като позволимда извличането на файлове, предоставящи диапазон от байтове. Това ще трябва да бъде изложено от настолния SAFE браузър, за да може всяка уеб страница да предава видеоклипове или всякакъв друг вид съдържание по стандартния начин, т.е. чрез HTTP Range.

Етикети за данните, индексиране и оторизиране на маркери

RFC, RFC на маркерите, План на проекта

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

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

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

SAFE Network програма

Работихме усилено по отношение на UX разрешенията за файловете и данните, може да видите напредъка до този момент представен от @jimcollinson в този видеоклип:

Building the SAFE Network UX | Controlling Access to your Personal Data

Кажете ни какво мислите за това как всичко се оформя!

SAFE браузър (десктоп)

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

След някои класически болки в Windows-CI през изминалата седмица, решихме да да преобразуваме нашата система за непрекъсната интеграция (Continuous Integration - CI) в GitHub Actions. Това - донякъде шокиращо за работата на CI - беше доста приятна афера. GitHub Actions се оказват мощни, гъвкави и бързи. Най-накрая CI системата подписва всички наши излизащи продукти. (Преди това под Windows това трябваше да се прави ръчно). Тъй като това работи добре, решихме да преминем през тестове и да автоматизираме повечето от процеса на пускане на нови версии. Всички това изглежда работи по-бързо, отколкото беше под Travis CI.

Сега автоматично ще генерираме алфа / бета версии само от един маркер (изобщо няма да е необходима човешка намеса!). Което ще освободи доста от бюрото на Стивън.

Единственият проблем, който имахме в новия процес, беше подкарването на тестовете за macOS под GitHub Actions. Това се оказа трудно, тъй като изглежда, че е необходимо някакво потребителско взаимодействие, за да се приемат някои разрешения, и няма очевиден начин за автоматизиране (ако някой има опит с GHA E2E и има решение за това моля да ни уведоми!). Междувременно ще продължим да тестваме macOS e2e тестове под Travis CI.

SAFE браузър (мобилни устройства)

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

Днес пуснахме версия 0.3.1 на SAFE браузъра за мобилни устройства :tada:

Тази версия идва 2 седмици след изданието ни v0.3.0, поддържаща Вечната мрежа и включва няколко корекции и подобрения въз основа на обратната връзка, получена от тази версия. Например, поправихме веригата за удостоверяване под iOS, както и проблемът с претоварването на тъмната тема под iOS и добавихме логика на поддръжка за аудио стрийминг в Android.

За пълен списък на промените в това издание вижте списъка с промени тук или разгледайте колоната Done в Плана на проекта тук, където ще видите проблемите и PR-тата с v0.3.1 етикета.

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

SAFE Удостоверител (мобилни устройства)

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

За да придружим новия мобилен браузър, днес пуснахме и версия 0.2.1 на SAFE Удостоверителя за мибилни устройства :tada:

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

Отново за пълен списък на промените в това издание вижте списъка с промени тук 2 или разгледайте колоната Done в Плана на проекта тук, където ще видите проблемите и PR-тата с v0.2.1 етикета.

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

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

Маршрутизиране и quic-p2p

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

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

Продължаваме да работим върху quic-p2p подобрения, които се оформят добре. Открихме някои области за подобрение, като внимателно разгледахме логиката на зареждане: при няколко условия можеше да има случай, в който някои ненужни връзки се задържаха и консумираха ресурси, а логиката за обслужване на ехо въведе някои излишни закъснения (т.е. първоначалната връзка със SAFE мрежата отнема повече време, отколкото е необходимо). Сега преработваме тези модули и с всички тези промени quic-p2p трябва да стане още по-ефективен и изчистен.

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