home.social

#projectexpanse — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #projectexpanse, aggregated by home.social.

  1. # Yggdrasil Desktop: децентралізована мережа повинна бути доступною не лише для тих, хто вміє працювати з терміналом

    **Project Expanse × Yggdrasil Desktop**

    Є одна проблема, яка регулярно супроводжує хороші технологічні проєкти: інфраструктура вже існує, протокол працює, технічні можливості є, але поріг входження залишається надто високим для звичайного користувача.

    Децентралізовані мережі не повинні бути клубом людей, які знають напам'ять синтаксис конфігураційних файлів, уміють запускати служби через командний рядок і можуть самостійно розбиратися з мережевими помилками.

    Технологія має працювати для людини, а не вимагати, щоб людина постійно пристосовувалася до технології.

    Саме з цієї проблеми починається Project Expanse × Yggdrasil Desktop.

    ## Не ще один мережевий протокол

    Yggdrasil — це реалізація децентралізованої IPv6-мережі, побудованої на принципах маршрутизації поверх наявних мережевих з'єднань.

    Її цінність не в тому, щоб створити черговий централізований сервіс, а в тому, щоб забезпечити можливість мережевої взаємодії без необхідності покладатися на традиційну централізовану інфраструктуру маршрутизації.

    Але є проблема.

    Встановити програму — ще не означає підключитися до мережі. Запустити демон — ще не означає отримати працездатне з'єднання. Побачити список пірів — ще не означає зрозуміти, що насправді відбувається з мережевим трафіком.

    Для досвідченого адміністратора це звичайна робота. Для більшості користувачів — зайвий бар'єр.

    Yggdrasil Desktop має прибрати частину цього бар'єра.

    Не переписуючи Yggdrasil. Не створюючи власний протокол. Не будуючи ще одну закриту екосистему.

    Мета — створити повноцінний графічний центр взаємодії з уже наявною мережевою реалізацією.

    ## Connect. Explore. Manage.

    Архітектура проєкту будується навколо трьох взаємопов'язаних напрямків.

    **Connect — підключення.**

    Виявлення встановленого Yggdrasil, налаштування вузла, встановлення з'єднання та перевірка фактичної працездатності мережі.

    Користувач повинен отримати зрозумілу відповідь: чи працює його вузол, чи встановлені з'єднання, чи є доступна мережева активність.

    **Explore — дослідження.**

    Інформація про безпосередньо підключені вузли, активні сесії, доступні мережеві маршрути та інші параметри, які може бачити конкретний вузол.

    Тут важлива одна принципова річ: локальна видимість не дорівнює повній карті мережі. Інтерфейс не повинен створювати ілюзію глобального спостереження за Yggdrasil.

    **Manage — керування.**

    Керування локальним вузлом, підключеннями та конфігурацією з чітким розмежуванням звичайних і привілейованих операцій.

    Це не просто три вкладки інтерфейсу. Це послідовність переходу від першого знайомства з мережею до повноцінного адміністрування власного вузла.

    ## Чому ми починаємо з Windows

    Першою цільовою платформою визначено Windows.

    Причина практична: якщо децентралізована інфраструктура претендує на ширше використання, вона повинна мати нормальний інструментарій для наймасовішого середовища настільних комп'ютерів.

    Не можна вимагати від кожного користувача Linux, ручного налаштування системних служб або постійної роботи з CLI.

    Водночас Windows — не найпростіше середовище для інтеграції.

    Yggdrasil встановлюється як системна служба, яка може працювати з привілеями LocalSystem. Доступ до конфігурації також пов'язаний із системними правами.

    Тому рішення не повинно постійно запускати весь графічний застосунок від імені адміністратора.

    Звичайний користувач має отримувати інформацію про стан мережі без зайвих привілеїв. Операції, які змінюють системний стан, повинні мати окремий, контрольований механізм авторизації.

    Це не косметична вимога. Це частина архітектури безпеки.

    ## Перший технічний результат

    Проєкт уже вийшов за межі самої концепції.

    У репозиторії реалізовано перший Go-компонент `internal/adminapi`.

    Він працює з чотирма базовими командами офіційного Admin API:

    - `list` — визначення доступних команд демона;
    - `getSelf` — отримання інформації про власний вузол;
    - `getPeers` — отримання стану безпосередніх підключень;
    - `getSessions` — отримання інформації про активні мережеві сесії.

    Важливо, що це не просто спроба прочитати текстовий вивід сторонньої утиліти.

    Компонент використовує структурований JSON-обмін, типізовані дані, обмеження часу очікування, контроль розміру повідомлень і перевірку локального endpoint.

    Перший набір модульних тестів пройшов локально на Linux, включно з перевіркою race detector та `go vet`.

    Це вже інженерна основа майбутнього застосунку.

    Але не будемо підміняти одне поняття іншим: повноцінного графічного застосунку, перевіреної Windows-інтеграції та інсталятора поки немає. Наступний етап — довести працездатність цієї архітектури в реальному Windows-середовищі.

    ## Безпека важливіша за зручність за будь-яку ціну

    Окремої уваги заслуговує Admin API.

    У поточній реалізації Yggdrasil він не має власної автентифікації. Саме тому його не можна виставляти в локальну мережу або відкривати через зовнішній мережевий інтерфейс.

    Інтерфейс керування повинен працювати виключно з локальним адміністративним endpoint.

    Також потрібно правильно розділяти тимчасові зміни стану вузла та зміни, які зберігаються в конфігурації.

    Додати пір для поточного запуску — не те саме, що зберегти його після перезавантаження системи.

    Змінити конфігурацію — не те саме, що просто натиснути кнопку в інтерфейсі.

    Ідентичність вузла, приватні ключі та параметри підключень не повинні потрапляти в журнали, діагностичні звіти або телеметрію.

    Ми не хочемо отримати зручну програму ціною створення ще однієї вразливої точки доступу до системи.

    ## Це лише початок більшої інфраструктури

    Для Project Expanse Yggdrasil Desktop цікавий не тільки як окремий Windows-застосунок.

    Це потенційний перший компонент ширшої системи взаємодії з децентралізованими мережами.

    У майбутньому можна розглядати інтеграцію з userspace-реалізаціями, альтернативними мережевими стекaми, інструментами діагностики та іншими мережевими середовищами.

    Однак тут важливо не змішувати roadmap із поточною реалізацією.

    Підтримка стандартного системного демона Yggdrasil і запуск мережевого стека в userspace — різні архітектурні завдання. Вони можуть доповнювати одне одного, але не повинні штучно об'єднуватися в один механізм.

    Так само не варто передчасно перетворювати Desktop на універсальний MultiNet Gateway.

    Спочатку необхідно довести, що базова система працює надійно.

    Потім розширювати її можливості.

    ## Не потрібно винаходити мережу заново

    Одна з найважливіших інженерних позицій проєкту — відмова від створення власного форка мережевого протоколу.

    Ми використовуємо наявну реалізацію Yggdrasil і прагнемо побудувати навколо неї підтримуваний інструментарій.

    Це означає сумісність із розвитком upstream, відсутність непотрібного дублювання функцій та можливість поступового розширення архітектури.

    Є вже наявні графічні клієнти. Ми не претендуємо на першість у створенні GUI для Yggdrasil.

    Наше завдання — інший інженерний стандарт: структурована інтеграція, контроль привілеїв, зрозуміла діагностика, коректне відображення стану мережі та передбачувана поведінка застосунку.

    ## Інфраструктура має належати людям, які нею користуються

    Децентралізація не закінчується на відсутності центрального сервера.

    Вона починається там, де людина отримує реальну можливість самостійно створювати, підтримувати та використовувати мережеві зв'язки без необхідності бути професійним мережевим адміністратором.

    Тому графічний інтерфейс — не другорядна прикраса технічного проєкту.

    Це один із механізмів демократизації доступу до інфраструктури.

    Project Expanse × Yggdrasil Desktop рухається саме в цьому напрямку.

    Перший орієнтир простий:

    **Install → Connect → Verify.**

    Встановити. Підключитися. Переконатися, що мережа справді працює.

    Без магії. Без маркетингових обіцянок. Без необхідності читати документацію на кожному кроці.

    Децентралізована мережа повинна бути доступною не лише тим, хто її будує.

    ---

    **Проєкт:** [Project Expanse × Yggdrasil Desktop](github.com/bellingcatosint/ygg)

    **Технічний аудит:** [Technical Audit](github.com/bellingcatosint/ygg)

    **Примітка:** проєкт перебуває на ранній стадії реалізації. Описані перспективні функції не слід сприймати як уже випущені можливості.

    #Yggdrasil #ProjectExpanse #Decentralization #MeshNetworking #OpenSource #Privacy #FOSS #Networking

Share on Mastodon

Enter the server where you have an account.