SafeNetwork открий новия интернет

Секции

Първата стъпка в разбирането на архитектурата на SAFE мрежата е да се да се хвърли един кратък поглед върху хеш-таблиците на разпределение (distributed hash tables /DHTs).

За да намерите данни върху децентрализирана разпределена мрежа имате нужда от карта. Хеш-таблиците за разпределение (DHT) изпълняват тази функция като предоставят издирваща услуга за локализиране на данни. Данните се съхраняват според уникална особеност – техният хеш. Той е същият както и неговият мрежови адрес. SAFE мрежата се дели на Секции с малки групи възли (Трезори) отговорни за управлението на данните в една Секция. Колкото повече възли има в мрежата, толкова повече Секции ще има, и толкова по-устойчива става на сривове или атаки.

Петър Маймунков (да, Българин!) и Давид Мазирес пускат на пазара разпределителната хеш таблица Kademlia през 2002 година. Идеята е, че възлите в мрежата покриват основния мрежов слой с различна система на възлова идентификация. Така че възелът (в този случай Трезор) може да има IP адрес 96.251.182.97, докато той използва 17846cb8a4b53c9e44c616d2415a15984283eee975a1dac8f488dd91d0aed1cd като уникален 256-битов адрес в XOR пространството.

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

MaidSafe излезе с подобрение на Kademlia чрез разделяне на целия обсег от 256-битови адреси в т.нар. ‘Disjoint Sections’ /Разединени Секции/, или Секции накратко. В цялото 256-битово адресно пространство има 2256 -1 възможни адреса, което е изключително голям брой, който трябва да се управлява, но може да бъде разделено на по-малки Секции на база на адреса, като всяка Секция се управлява от малка група от Трезори.

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

Секция – подгрупа на всички адреси на мрежата. Данните, съхранявани на всяка Секция биват контролирани от специална група възли (Трезори).

Размер на групата – параметър, определящ минималния брой възли, които могат да контролират една Секция.

Bootstrapping /самозареждане/ – стартиране на SAFE мрежата чрез свързване на минимален брой възли заедно. Самозареждането също така се използва за въвеждане на нов възел (Трезор) присъединил се към мрежата.

Bootstrap сървъри – малък брой сървъри, управлявани от MaidSafe върху които се свързват новите Трезори (чрез proxy) когато се присъединят към мрежата. Техните IP адреси са предварително зададени в софтуера на Трезора.

Хеш функция – функцията, използвана, за да картографира данни от произволен размер до данни с фиксиран размер (например 256-битов низ от знаци) се нарича хеш. Всяка промяна в оригиналните данни ще даде резултат в абсолютно различен хеш. SAFE използва SHA-3 хеш функция.

Датачейн (Datachain) – записване на членството в Секциите и мрежовите събития, които се държат от всеки Трезор в тази секция.
При присъединяване или връщане в SAFE мрежата, един Трезор не може просто да избере свой собствен XOR адрес. Вместо това, то трябва да изчака Секцията да го избере и да го направи част от мрежата. Когато това се случи, Трезора получава маршрутизираща таблица от Секцията и научава диапазона на адресите на данните, за които тя е отговорна.

Данните, съхранявани на SAFE мрежата първо се разделят на късове, хешират се и след това се кодират. Тези късове се прокарват през хеширащ алгоритъм, за да достигнат до създаването на уникален 256-битов код или хеш за всеки един къс. Само късовете, които са абсолютно идентични ще имат същата хеш стойност. Този хеш служи като XOR адрес в мрежата, където тези късове ще бъдат съхранявани, което от своя страна определя групата на Трезорите, които ще го управляват.

И така късовете с хешове, които са в рамките на определен диапазонов адрес (да речем от 000010… до 000011…) ще бъдат защитени и съхранени от групата на Трезорите, които управляват тази определена Секция. Членството в тази група ще се промени с времето тъй като непрекъснато има възли, които се разкачват или се свързват отново към мрежата. Когато мрежата е самозареждаща се, минимум осем Трезора са отговорни за целия 256-битов обсег на адреса (2256 -1 адреси). При присъединяването на повече Трезори, групата ще се раздели на две. И ако тези нови групи привлекат нови Трезори, те също ще доведат до повтаряне на този процес. Затова с 1 000 групи, пространството на адресите се разделя на 1 000 Секции. С 100 000 групи, то се разделя на 100 000 Секции, и т.н.

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

Всяка Секция (обсег от XOR адреси) се управлява от група от Трезори. Най-надеждните Трезори в групата се наричат „Старейшини” /Elders/. Старейшините имат право на глас и комуникират със старейшините в съседните Секции.

Ако групата от Трезори управляващи определена Секция, нараснат значително повече от средното (усредненият модел е около 12 Трезора), по принцип тя ще се раздели на две по-малки групи, като всяка от тях управлява по-малък Сектор (диапазон от адреси). Обикновено това се случва преди членството в групата да надвиши 22 Трезора. По същия начин, ако Трезори напускат групата и броят им спадне под зададено ниво, което е определено като параметър за размер на групата, тогава Секцията ще се подтикне да търси сливане с подобна група (някоя, която се управлява от близък Сектор). Понастоящем, размерът на групата е 8.