Safe Network новини 🇧🇬 10.3.2022

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

Въпреки че не искаме манипулиращи възли да прецакват мрежата, правилата, които се прилагат в момента, се равняват на „една грешка и изхвърчате“, поради което скорошните тестове бяха краткотрайни: всеки път, когато изхвърлим възел, данните, които съхранява, трябва да бъдат преместени, причинявайки наводнения от парчета местещи се данни и съобщения, които в крайна сметка водят до разпад на мрежата.

Това не е съвсем неочаквано, тъй като много оптимизации тепърва ще бъдат въведени, както обясняваме по-долу, но няма по-добър заместител на тестовете в реалния свят, за да покажем къде трябва да се съсредоточим - благодарности от сърце :heart: към всички, които се включиха в тестовете. Понякога може да ни се струва, че се връщаме назад, но не се страхувайте! Всичко това е част от плана.

Общ напредък

@Jimcollinson, @heather_burns и @andrew.james работят върху документацията, изисквана от швейцарските власти при създаването на новата фондация там. Добрата новина е, че всичко е изключително изпълнимо и няма очевидни пречки, което потвърждава избора ни на тази държава. Документацията ни е подадена за учредяване на фондацията и скоро ще започнем работа по регистрацията ни в швейцарските финансови власти.

@Anselme работи по предаването на секции и консенсус – как избираме кои Възрастни ще бъдат повишени в Старейшини при разделяне и как разрешаваме ситуацията, когато Възрастен, който се присъединява към секция, е по-възрастен от по-възрастните. Трябва да гарантираме, че Старейшините се споразумяват за същия набор от кандидати, когато се извършва предаването, така че е необходим консенсус. @Davidrusu вече почти завърши интегрирането на алгоритъма за консенсус, така че сме готови да го интегрираме.

Освен че финализира модела на изтегляне и тестовете за живост (вижте по-долу), @Yogesh създаде локално табло за управление, използвайки ELK и Filebeat, така че можем по-лесно да анализира логовете. Резултатите досега са добри и сега той работи, за да го направи по-стабилен и да гарантира, че улавя всички показатели, от които се нуждае.

Възлите са тук, за да ви помогнат – така че спрете да ги претоварвате

И така, защо мрежата е по-малко стабилна в момента? Отговорът е, че мерките, въведени за тестване на дисфункционално поведение, в момента са всичко или нищо: преди те бяха изключени, така че от „нищо“, сега те са включени на „всички“. По същество убиваме възли за дребни нарушения, което означава прекомерен отлив и преместване на данни. Затова ще отменим наказанията и ще въведем други проверки.

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

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

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

Репликация на данни

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

Когато даден възел излезе офлайн, трябва да прехвърлим неговите данни към други възли. В миналото данните се прехвърляха от един възел към другия, под контрола на Старейшини.

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

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

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

Това гарантира, че Възрастните изтеглят само данни, които са предназначени да съхраняват и са отговорни за това. Ако вече разполагат с данните, потокът се прекъсва в кръга на уведомителните съобщения. Данните се изпращат само когато се изисква репликация - вместо текущите съобщения тип “изпрати и забрави”, които приемат капацитета на мрежата за даденост.

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

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


Преводи:

:uk: English :ru: Russian ; :de: German ; :es: Spanish ; :fr: French

  • Подробна информация може да намерите както винаги във форума на международната общност: Safe Network Forum
  • Ако имате въпроси може да ги зададете във Facebook групата на българската Safe общност: Redirecting...
  • Ако искате да следите последните новини заповядайте във Facebook страницата на Safe Network България: Safe Network България