Последните седмици до голяма степен показаха слоевете на мрежата и гарантираха, че това, което се намира отдолу, е стабилно. Тази седмица ще говорим за това как се надяваме да интегрираме тази работа и какво трябва да означава това за нас в бъдеще.
Общ напредък
Мостафа задълба в механизмите за консенсус и как бихме могли да ги приложим към някои действия на Safe Network, включително проблемите с членството, които засягаме по-долу.
@davidrusu и @dirvine също работят през крайните случаи и се уверяват, че те са решими с планираните ни механизми.
@bochaco все още работи върху внедряването на съобщения и грешките в свързаността, заедно с @joshuef и @qi_ma. Работният клон, който поддържаме пред main
, изглежда добре.
След това остава въпроса какво точно се случва, когато се направи GET заявка. Какво трябва да бъде подписано и каква минимална информация трябва да бъде изпратена с парчето, за да може Възрастният да бъде идентифициран, наблюдаван и наказан, ако не успее? @ansleme и @oetyng гледат най-вече това сега.
И на фронта на тестването @chriso пренастройва самостоятелно хостваната ни машина за GitHub Actions CI/CD, за да опрости форка, който използваме.
Следващи стъпки за стабилност
Напоследък работим усилено да стабилизираме долните слоеве на мрежата (както видяхме миналата седмица). Опростихме управлението на връзката и премахнахме няколко слоя код за „повторен опит“ от слоевете sn_client
и sn_node
, които прикриваха редки бъгове (които зачестиха в хода на по-дълго работеща тестова мрежа и много тестове). Работим върху това в слоевете за управление на връзката и съхранение върху възлите, както и в членството.
След като се съсредоточихме върху тази нестабилност, преминахме към използване на по-проста настройка на CI. Това позволи на тестовете да работят последователно и много по-стабилно, но предизвика няколко проблема, които изникнаха в main
. Но това е с много по-проста настройка за управление на връзката и голяма част от премахнатия слой за „повторен опит“.
Все още не сме пуснали това през тестовата мрежа, тъй като все още се опитваме да отсечем оставащите проблеми: Членството спира… (тества се корекция за това); от време на време има бавни тестове на API - които изглежда са свързани с несинхронизиране на членството; и много редки неуспешни DBC тестове.
Надяваме се много скоро да обединим нашия работен клон в main
. След като го имаме, ще се стремим да заключим тези печалби в стабилността с някои допълнителни CI подобрения.
Още тестове
Ще добавим тестове, за да проверим всички пътища за Възрастни и Старейшини (повторно активиране на разделени тестове, балансиране на данни при разделяне и т.н.) и ще проверим всеки Възрастен, който трябва да съхранява данни, дали наистина съхранява данни. Това в крайна сметка трябва да ни позволи да преминем към по-проста настройка за клиентски комуникации (т.е. комуникация само с един Старейшина… изчакване на ACK преди опит за проверка), което допълнително ще намали натоварването на мрежата.
След като имаме това, ще се стремим да принудим всички PR да преминат през коригиран работен процес на CI. Първоначално ще рационализираме тестовете да се изпълняват само на Linux машини (тъй като те са най-бързи). С пълния пакет, работещ само когато PR е прегледан (чрез BORS, нашия CI робот).
Надяваме се, че това трябва да ускори цикъла на обратна връзка за нашите PR, като BORS предоставя CI същността и тестване във всички платформи, след като PR–а бъде прегледан.
И докато това само по себе си не е на милион мили от това, което имаме сега… CI трябва да бъде по-стабилен, по-полезен (BORS управлява чакащите PR и пребазира автоматично; както може би сме говорили тук преди)… И… След това ще добавим пълна тестова мрежа от машини към потока BORS, което ще означава, че main
ще съдържа само код, който е преминал всеки тест, който имаме, на всяка платформа, при всички мрежови условия!
И с надежден main
, тестван и готов за пускане, ще бъдем много по-добре поставени да работим върху подобрения, бенчмаркове и нови функции, без да се подхлъзваме по отношение на стабилността.
Преводи:
English Russian ; German ; Spanish ; French
- Официален сайт на Safe Network
- Обобщено представяне на Safe Network
- Safe Network Фундаменти
- Карта на проекта
- Подробна информация може да намерите както винаги във форума на международната общност: Safe Network Forum
- Ако имате въпроси може да ги зададете във Facebook групата на българската Safe общност: Redirecting...
- Ако искате да следите последните новини заповядайте във Facebook страницата на Safe Network България: Safe Network България