SAFE Network новини - 19.3.2020

SAFE Network новини - 19.3.2020

Накратко

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

  • Пуснахме версия 2 на Бейби Флеминг. :tada: Тази актуализация се състои от нова версия на safe_vault (v0.22.0), която премахва PARSEC за клиентски заявки.
  • Пуснахме SAFE CLI v0.10.0, която включва (наред с други подобрения) нова команда files tree.
  • Пуснахме нов пакет RC MaidSafe.SafeApp NuGet, който поддържа заявки с различен обхват и работи с Бейби Флеминг мрежата.

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

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

Днес пускаме втората версия на Бейби Флеминг, известна още като Трезори Фаза 2a :tada:

Както беше подробно описано в новините от миналата седмица, проблемите с производителността при първата версия на Бейби Флеминг се дължаха основно на всички клиентски заявки при харченето на Safecoin чрез PARSEC за постигане на консенсус, преди да се обработи допълнително заявката. Версия 2, която пускаме днес, премахването PARSEC от потока за обработка на заявка на клиента.

Разбира се, все още ще трябва да постигнем консенсус в този поток и там ще използваме BLS - разпределеното генериране на ключове, за да облекчим натоварването върху PARSEC. Повече за това в раздела BLS - Разпределено генериране на ключове - по-долу. Засега обаче има смисъл да премахнем това ограничение на производителността ви позволим да тествате Бейби Флеминг.

Как да обновите до версия 2 на Бейби Флеминг?

Тази актуализация се състои от нова версия на safe_vault - v0.22.0.

С помощта на CLI можете да инсталирате тази нова версия с помощта на командата safe vault install. Вижте CLI ръководството за пълни инструкции за инсталиране на трезора, както и за инструкции как да пуснете собствена секция от трезори на компютъра си.

Известни проблеми

При качване на данни може да възникнат периодични грешки (AccessDenied или NetDataError - Failed to PUT Sequenced Append Only Data описани тук). Наясно сме с това и разследваме.

Кога MaidSafe ще пусне споделена Секция?

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

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

SAFE API

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

Пуснахме нова версия на safe-api (v0.10.0), както и нов safe-cli (v0.10.0), който включва всички функции, които сме внедрили след излизането на Бейби Флеминг. Актуализирахме Ръководството за потребителя за CLI с инструкции за новата files tree команда.

Тази нова версия на safe-api е първата версия, която излага API-то си като async, което е важна стъпка към пълната поддръжка на асинхронни заявки от тези API-та. Както бе споменато в предишните новини, вътрешно те все още не са асинхронни и това ще бъде следващата ни стъпка в това отношение.

През последните няколко седмици мобилните библиотеки на safe-ffi бяха деактивирани. Проблемът беше свързан с мобилната поддръжка за някои от външните контейнери на Rust. Тази седмица решихме проблема с изграждането на safe-ffi в отделен клон (baby-fleming-mobile). След като имаме стабилни версии на външните контейнери, които работят правилно със собствените си библиотеки, ще обединим кода с главното хранилище. Тези актуализирани библиотеки ще ни помогнат да подкрепим пускането на мобилните приложения за мрежата с една секция.

Финализирахме основен набор от показатели, които да се изпълняват в Бейби Флеминг мрежата. Тези тестове са просто за качване на данни в мрежата (файлове с размер 0.5, 1, 2 и 4 мегабайта). Тестовете бъдат X пъти (търсейки разумен размер на извадката, надяваме се поне ~ 50 пъти), макар че това ще зависи от напредъка за подобряването на качването на данни като цяло. За тези, които се интересуват от това (или да допринесат за повече тестове), можете да проверите PR черновата, която добавя -t или–test аргумент на любимия на всички safe vault run-baby-fleming -t за автоматично стартиране на мрежата, рестартира удостоверителя и създава тестов акаунт за CLI-то. (Забележете, за да работи това се нуждае както от safe командата, така и от authd, да бъдат инсталирани на стандартните им места).

SAFE Network програма

Тази седмица работихме върху някои малки подобрения на SAFE Network програмата, актуализирайки зависимостта от Node.js, за да се подготвим за съвместимо издание с Бейби Флеминг и поправихме теста на E2E.

Актуализацията на Node.js подчерта някои потенциални грешки там, така че разглеждаме и това. Но след като ги оправим, ще можем да я пуснем за да си поиграете с :baby:

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

План за Удостоверителя, План за браузъра

Тази седмица актуализирахме Удостоверителя, за да поддържаме Бейби Флеминг и тествахме програмата на двете платформи (Android, iOS).

Днес пуснахме и нов пакет RC MaidSafe.SafeApp NuGet, за да можем да актуализираме мобилния браузър и да поддържаме Бейби Флеминг. В момента вътрешно тестваме мобилния браузър и ще пуснем нови актуализирани версии и на двете мобилни приложения, след като сме доволни от тях.

SAFE App C#

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

Миналата седмица API за извличане (fetch) на Rust беше актуализирано, за да поддържа извличането на диапазон от байтове от файл, така че тази седмица актуализирахме C# API-тата за fetch и get_immutable_data за да поддържаме и заявки с обхват. Това ще позволи на разработчиците да извличат съдържанието между дадения начален и краен индекс. Пуснахме и нов RC MaidSafe.SafeApp NuGet пакет. Този нов пакет осигурява поддръжка за мрежата с една секция / Бейби Флеминг.

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

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

Обединихме и подобрена се доставка на съобщения в присъствието на изоставащи с работата трезори в PR (PR 2068). Друг голям напредък, който постигнахме включва обединяването на работата по опростяване на моментното състояние на машината: одобряването на Старейшини и Възрастни (PR 2071), както и BoostrappingPeer и JoiningPeer в едно (PR 2072). Те много опростяват състоянието на машината и в крайна сметка ще се стремим да го премахнем изцяло. Друго подобрение през тази седмица беше обединяването на идентификатора за регистрация PR (PR 2073). Това намалява нашия код и гарантира, че цялото влизане в контейнера за маршрутизиране идентифицира възела, за който е бил записът в журнала.

Също така започваме да мислим за провеждането на още няколко quic-p2p тестове, за да получим по-добри данни за неговата мащабируемост и потребности от ресурси. Очакваме той да обработва стотици (или дори хиляди!) връзки наведнъж и е важно да знаем лимитите и да ги планирате съответно, за да сме сигурни, че мрежовите системи няма да бъдат претоварени. Планираме да стартираме тези тестове след новата версия, която ще включва поддръжката на IGD и най-новите подобрения на внедряването на протокола QUIC от Quinn, основната мрежова библиотека, която използваме.

BLS - Разпределено генериране на ключове

Разчитайки на PARSEC, гръбначния стълб на мрежата, за всички видове консенсус може просто натоварим мрежата по начини, които обикновено не виждаме. Например, данните в SAFE мрежата могат да бъдат бързо променящи се и запитването/извличането на такива данни с консенсус от PARSEC ще отнеме известно време, за да бъдат извлечени. Тази продължителност може да е достатъчна, за да се актуализират данните до по-нова версия от изтеглената. Следователно, за да се сведе до минимум натоварването на PARSEC и да се постигне бърз консенсус за операции като запитване на споделени данни, портфейли с множество подписи и др., сме изправени пред изискването да прехвърлим част от консенсуса върху друг механизъм. Тук идва BLS-разпределеното генериране на ключове, криптографска схема за подписване, която позволява на субектите бързо да постигнат консенсус по даден обект чрез естеството на шестте му фази и принуждават 100% участие от съответните възли. Можете да прочетете повече за работата му и подробности тук и тук. Реализацията на доказателство на концепцията е в процес на работа от екипа, като първоначално ще тестваме със споделени данни от клиенти, въпреки че по-голямата цел е да го използваме за случаи като споменатите по-горе и ще бъде общ контейнер, който ще се използва за постигане на консенсус, без да се разчита напълно на PARSEC през цялото време.

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