Safe Network новини 🇧🇬 28.9.2023

Тази седмица разглеждахме резултатите от тестовата мрежа и работихме върху корекции на грешки. Първото нещо, което трябва да се отбележи, е, че за да се улесни отстраняването на грешки, тестовата мрежа беше умишлено непримирима, като частите данни трябваше да бъдат репликирана към всичките осем близки групови възли, за да се считат за валидни. Благодарение на това се разкриха някои странности около липсващите парчета, върху което @qi_ma и @joshuef работят.

Изтеглянето на големи файлове понякога се проваляше поради липса на една или повече части от изтеглянето. Благодарим на всички, които съобщиха за това. Една от причините, които подозираме за този проблем, е свързана с кеширането. Когато извличаме запис от Kademlia, имаме няколко възможности за избор. Quorum::One означава, че вземаме първия отговор, който получим, Quorum::All означава, че изчакваме всички отговори да дойдат и проверяваме дали съвпадат. Тъй като парчетата са самопроверяеми (съдържанието е адресирано), един отговор трябва да е достатъчен, тъй като можем да проверим неговата валидност на място.

Изглежда обаче, че кеширането на Kademlia, което трябва да кешира парчета в по-близки възли, когато използва Quorum::One, не работи по начина, по който си мислехме… Изглежда, че само гарантира, че един възел държи данните (обратното на гарантирането, че данните отиват до всички притежатели на данни, въпреки че изискваме само едно обратно копие). Така че засега деактивираме това и се връщаме към Quorum::All, за да видим как ще се справим.

Неправилните разходи за съхранение са друга възможна причина за липсващи парчета. Понякога клиентът изисква разходи за съхранение към възли, различни от тези, които в крайна сметка съхраняват парчетата данни. Това води до това, че на възлите за съхранение не се плаща. Виждаме и някои грешки в репликацията, така че разглеждаме и тях. (Това може да е свързано с работата по Quorum/ кеширането по-горе!)

За да си улесним живота, направихме така, че ако една част не успее да се изтегли, целият процес спира със съобщение за грешка „MissingChunk“, вместо да чака до края. Също така подобряваме логовете, за да отстраняваме грешки при всяка партида качвания и изтегляния. И тъй като лог файловете предоставят ценна информация за отстраняване на грешки, сега регистрираме изход от клиенти и възли по подразбиране. Логовете са доста подробни, така че имайте предвид, че малките нодове вероятно ще се запълнят по-бързо.

И добавихме твърдо кодирани партньори за първоначално зареждане в кода на възела и клиента, така че вече няма нужда да задавате променливата SN_PEERS.

„Размерът на пакета“ и „едновременността“ изглежда имат някакъв ефект, като по-големите размери на пакета значително ускоряват изтеглянията, а по-големите настройки за паралелност, до 40 или повече, правят същото. Сега експериментираме с ефектите върху производителността от намаляването на размера на Близка Група от 8 на 5, което трябва да доведе до по-бързи изтегляния и по-малко използване на паметта.

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

Банкноти (CashNotes)

CashNotes е новото име за DBC, което по-добре отразява начина, по който действително се извършват плащанията. Основният код за него не е променен.

По същество те са локално представяне на токени в портфейла. Те могат да бъдат изразходвани в мрежата в замяна на нови със същата стойност (обща входна/изходна стойност на tx) от получателите.

CashNotes се създават в транзакции и се присвояват на извлечени публични ключове. Изведените ключове се създават от публичния ключ на получателя плюс произволен индекс. За всяка транзакция се използва различен извлечен ключ, което прави всеки CashNote уникален и не може да бъде свързан с оригиналния публичен ключ на собственика.

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

Общ напредък

@joshuef и @qi_ma бяха основните членове на екипа, участващи в разглеждането на неправилните разходи за съхранение, неуспешна репликация и липсващи парчета. Джош повдигна PR за бързо проваляне веднага щом парчета липсват по време на изтегляне и временно премахване на кеширането на Kademlia и превключване обратно към Quorum::All, за да разрешим проблема с липсващите части.

Освен че помага при отстраняването на грешки, Qi продължава да проучва libp2p кеширането, за да го разбере по-добре, и проучи GossipSub pub/sub внедряването, върху което @bochaco също работи. Това сега е на етап на тестване и те проследяват как съобщенията се разпространяват между възлите. Има още малко работа по това. @bochaco също работи върху известията за награди във възела.

@Anselme почисти неизползван код в хранилището на sn_transfers, минимизира риска за сигурността, като направи модулите частни, и пренаписа бенчмаркове, използвайки API-та на високо ниво за прехвърляне, за да се справи с тази промяна.

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

@Chriso добави поддръжка за двоични файлове с версии в инструмента за автоматизирано разгръщане на тестова мрежа и работи върху това да стартира заедно с някои добри подобрения на safe потребителското изживяване.

@roland също работи върху корекции в отговор на откритията на тестовата мрежа, а @dirvine намали размера на Близката група от 8 на 5, за да подобри производителността. Дейвид също е обмисля допълнително механизъм за защитено надграждане за Safe.


Преводи:

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

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