Safe Network новини - 21.1.2021
Накратко
- Намерихме и обединихме заобиколно решение за проблем с „изоставането“, който се опитваше да остане нерешен.
- Публикувахме PR проект за разпределяне на наградите, който е близо до завършване.
- Някои неработещи тестове на клиентската мрежа, които ни пречиха да напреднем с тестването на корекцията за проблема със съобщенията „KeySection“ и „DataSection“ (последният проблем, блокиращ публична мрежа за тестове), вече са разрешени и тестването ще бъде възобновено.
- Обединихме PR-те на CI / CD във всеки от BRB контейнерите ни, което доведе до автоматизирано покритие на тестовете, създаването на версии и първите ни издания на BRB контейнери в crates.io.
- @JimCollinson предоставя поредната завладяваща актуализация за напредъка на Safe Network програмата и потребителското изживяване.
Safe клиент, възли и qp2p
Safe Network трансфери план на проекта
Safe клиент план на проекта
Safe Network възли план на проекта
Решаване на проблеми със закъснението
През последната седмица имаше много обстойни проучвания, опитващи се да открият източника на значителното изоставане, което изпитвахме, докато пускахме вътрешни тестови мрежи. И макар да не са изцяло „поправени“, вече имаме много по-добра идея и достатъчно просто решението вече е обединено към кода.
Същността на този проблем беше нещо, блокиращо обработката на клиентски заявки от възела. Това може да е свързано с някаква неоптимална паралелност на възела (която също разглеждаме за оправяне), но изглежда, че коренът на проблема произтича от отпаднали връзки, блокиращи способността на възлите да реагират, и затова те на практика чакат връзката да бъде напълно изоставена от долните слоеве - това изчакване е изоставането, което наблюдаваме.
Изглежда, че една проста промяна на времето за изчакване на възела (намалявайки го от 30 сек. на ~ 5 сек … в момента експериментираме, за да намерим оптимални числа) ще доведе до достатъчно деблокиране на възлите, за да можем отново да стартираме тестове на клиентите. Така че, докато проверяваме, за да видим дали има проблем в пула за свързване на qp2p
и преструктурираме sn_node
до известна степен, сега можем да продължим напред, като тестваме всичко още веднъж.
Разпределяне на наградите
По-рано споменахме текущата работа по разпределянето на наградите. Наградите се изплащат от старейшините в секция, като се използва разпределен AT2 актьор - (т.е. “участник актьор”) и натрупани подписи. Всеки път, когато има промяна в групата Старейшини, ключът на секцията се променя и разпределеният актьор преминава към новия ключ, като прехвърля всички токени към него. Има различен първоначален път в потока на прехвърляне на актьора на секцията (и всеки актьор с няколко собственика), в сравнение с актьорите с единичен собственик, където валидирането на прехвърлянето е предложено с мнозинство, преди да има проверка на копията.
Преходът от първия (генезис) възел, както и тестовете за това са завършени и потвърдени, сега работим върху следващите преходи.
Докато работихме по горното, установихме, че състоянието на Старейшините не е последователно между зависимите операции при такъв преход и затова тази седмица усъвършенствахме представянето и обработката на това състояние. Беше повдигнат PR проект за разпределяне на наградите, съдържащ всичката гореспомената работа, тъй като вече е пред завършване.
KeySection
и DataSection
проблем със съобщенията
В новините от миналата седмица споменахме, че проучваме премахването на възможната дублирана работа извършвана по съвкупното събиране на подписи от “sn_node” по време на обмен на съобщения между “KeySection” и “DataSection”. За тази цел има подготвен WIP PR за натрупване за премахване на подписи. Този PR преминава тестовете на sn_node
и продължаваме със sn_client
мрежови тестове, за да извършим допълнителна проверка. Въпреки това, поради друга работа по преструктуриране в sn_node
и sn_client
, извършвана паралелно, sn_client
мрежовите тестове са нарушени по други причини, така че работата по проверката трябва да бъде задържана за кратко.
Вярваме, че тази работа за премахване на дублирането ще се справи с проблем с „KeySection“ и „DataSection“ съобщенията, който наблюдавахме по време на вътрешните ни тестови мрежи в края на миналата година, нещо, което би трябвало да можем да проверим чрез „sn_client“ мрежовия тест. Понастоящем това е последното останало, за да можем да стартираме публична тестова мрежа, и поради тази причина не успяхме да напреднем и с вътрешните ни тестове.
Въпреки това, след като приключихме работата по преструктурирането в sn_node
и sn_client
, сега се връщаме към това с приоритет и се надяваме да можем да работим през тестовите случаи без усложнения.
API и CLI
След въвеждането на sn_messaging
контейнера, където вече са дефинирани всички типове клиентски съобщения, работихме върху извършването на необходимите промени в sn_api
и CLI, за да бъде всичко съвместимо отново с sn_node
и sn_routing
съобщенията. Това вече е завършено и всички промени са обединени в основните клонове на всички тези контейнери. Също така постигнахме известен напредък в опитите да преместим дефинициите на sn_routing
съобщението в sn_messaging
контейнера, въпреки че това все още е текуща задача с по-нисък приоритет от повечето други неща, по които работим.
Също така обединихме някои API подобрения, направени от @Scorch, в контейнера qjsonrpc
, което прави параметрите на пътя общи. Затова бихме искали да му благодарим за приноса.
BRB: Византийско надеждно излъчване
Вторник отбеляза още един важен момент, когато обединихме PR-те за CI / CD, което доведе до автоматизирано покритие на тестовете, създаване на версии и първите ни публикации на brb контейнери в crates.io.
Основно подобрение, което влезе в тази версия, е поддръжката за обикновенни типове актьори чрез rust черти. Това означава, че кодът вече е достатъчно гъвкав, за да поддържа повечето / всеки криптографски алгоритъм или библиотека с публичен ключ, без допълнителни промени в основните библиотеки. Поддръжката за ed25519 вече е включена, но ще разгледаме и добавянето на BLS поддръжка. Дори хардуерни устройства за подписване ще могат да бъдат добавени в бъдеще.
Допълнителните подобрения включват:
- CLI-то на brb_node_qp2p има някои корекции при екранно извеждане и нова команда за повторен опит в случай на изпуснати пакети.
- съхраняване на логове. Всички println повиквания са променени към подходящи функции за съхранение на логове.
Работа в процес на осъществяване:
- тестовите случаи се подобряват, за да показват резултати и да се премахнат всички заявки, които връщат panic() грешки
- добавят се коментари в документацията, за да се направи кодът по-използваем от други разработчици
И накрая, още няколко страхотни новини! Нашият CRDT специалист и големите мозъци зад brb контейнерите се съгласиха да удължат договора си с още 3 месеца, за да съдействат за по-нататъшната работа по интеграция.
Маршрутизиране
Тази седмица добавихме още една партида поправки за проблеми, разкрити със стрес тест инструмента. С тях, изглежда, че напредваме много по-добре. Все още имаме проблеми с форковете (разминавания във веригата на секция), които понякога се случват по време на много тежко разделяне. Този проблем ще бъде решен чрез интегриране на новия алгоритъм за членство, работа, която вече е в етап на планиране.
Също така добавихме и няколко малки промени. Първо се уверихме, че възлите никога не създават връзки с клиенти - вместо това, когато възел трябва да изпрати нещо на клиент, той използва повторно вече създадената от клиента връзка. Ако такава връзка не съществува, се съобщава за грешка. Това само по себе си всъщност не поправя нищо, но кара някои проблеми да се проявяват по по-очевиден начин, което опростява отстраняването на грешки. По подобен начин ние подобрихме обработката на грешки (с този PR в процес на проверка), така че грешките вече са по-конкретни и съдържат повече информация, за да опростим отстраняването им.
И накрая, разрешихме дългогодишен проблем с конвейера ни за непрекъсната интеграция, при който една задача ще продължи постоянно да се проваля. Въпреки че не беше критичен проблем, все пак ни пречеше да видим задоволителна зелена отметка преди обединяеане на PR. Оказва се, че сме били прекалено строги в начина, по който се отнасяме към предупрежденията на компилатора. Тази корекция беше пусната и за няколко от другите ни контейнери.
Safe Network програма и потребителско изживяване
Проследяване на функции / Екрани и потоци
Ако си спомните в новините за потребителското изживяване от ноември миналата година ви проведохме чрез предложените промени на лексикона на Safe Network, въвеждайки нова метафора за Safe заменяща Акаунт, токени заменящи Safecoin, и отхвърляне използването на термина Трезор (Vault).
Е, тези промени започнаха да навлизат в тестовия потребителски интерфейс, където те могат да започнат да се доказват в потребителското изживяване, а не само на хартия.
Ако влезете във Figma файла показващ Safe Network програмата, ще ги видите в действие, заедно с някои други подобрения.
Това е доста голям файл със стотици различни екрани и потоци, така че не винаги е лесно да се разбере всичко, което се случва. Ето няколко акцента:
Отключване на Safe Ви
Тук виждаме въвеждането на Safe метафората за данните на потребителя - заключването и отключването му - с някои визуални сигнали, които се надяваме да го подсилят.
Също така ще забележите, че менюто за действие е преместено до горната лента на приложението чрез традиционен хамбургер. И че вече е достъпно и в заключено състояние. Но повече за това по-късно.
Работа с токените
Заедно с края на термина Safecoin, промените в екрана на портфейла включват цяла секция Токени, подобрения в потребителския интерфейс и по-многофункционален бутон за действие Нова транзакция. Това е начин да започнете нова транзакция - улеснение спрямо това, което имахме преди - а също и друга входна точка, за да започнете да печелите токени.
Печелене на токени
С отпадането на термина Трезор, тук може да видите на практика как можем да използваме глагол като Печелене за да стартирате предлагането на ресурси на мрежата в замяна на Safe Network токени.
Този поток може да се стартира от редица точки, включително от раздела „Печалби“ на екрана „Токен“, от началния екран или от екрана с приложения и от самата помощна програма (както и от менюто за действия или въведена команда).
Няколко стъпки за конфигуриране на нещата и започваме.
Менюто за действия
Виждали сте части от това и преди, но ето цялото Меню за действия, наречено така, защото можете да го използвате за търсене и достъп до всички функции на приложението, както и за директно стартиране на команди.
Вече е достъпно горе вляво на приложението и тук можете да го видите както в заключено, така и в отключено състояние.
Едно малко напомняне за това как командите също могат да се търсят и стартират. Удобно.
Чувствайте се поканени да разгледате Figma файла, за да видите всички подробности, с множество отделни потоци, проучени и документирани.
Преводи:
Английски; Russian ; German ; Spanish ; French
- Официален сайт на Safe Network
- Обобщено представяне на Safe Network
- Safe Network Фундаменти
- Карта на проекта
- Подробна информация може да намерите както винаги във форума на международната общност: Safe Network Forum
- Ако имате въпроси може да ги зададете във Facebook групата на българската Safe общност: SAFEnetwork България | Facebook
- Ако искате да следите последните новини заповядайте във Facebook страницата на Safe Network България: Safe Network България