Як система ACDS всередині Walrus рятує нас від чекання та зайвих витрат
Днями я сидів за столом і намагався завантажити величезний файл у децентралізовану мережу, коли зрозумів, що зовсім не уявляю, як насправді працює Walrus. Знаєте, як це буває, коли ви просто припускаєте, що ваші дані плавають десь у хмарі, як щасливий маленький привид всередині системи Walrus.
Але коли починаєш розбиратися в нутрощах чогось на кшталт асинхронного повного зберігання даних, розумієш, що Walrus більше схожий на гру в зіпсований телефон з високими ставками. Раніше я думав, що коли я зберігаю файл у Walrus, він просто потрапляє на сервер і залишається там, поки він мені знову не знадобиться. У світі, де ми використовуємо ACDS, це навіть близько не схоже на правду, тому що Walrus заздалегідь припускає, що все піде не за планом. Система очікує, що деякі вузли зберігання просто зникнуть, а інші можуть навіть спробувати збрехати вам про те, що саме зберігає Walrus. "Система передбачає, що люди будуть створювати труднощі або просто виходити з ладу." Це перша жорстока правда, яку мені довелося прийняти щодо того, як Walrus обробляє мої дані за допомогою цих протоколів. У такій схемі той, хто записує, бере блок даних і намагається засунути його в мережу вузлів Walrus, де третина з них може поводитися некоректно. Якщо автор чесний, він дає маленьку частинку даних кожному вузлу Walrus, щоб зрештою з'явилося достатньо частин для відновлення цілого. Я дізнався, що це називається повнотою запису, що є просто мудрою назвою для правила: якщо я зроблю свою частину, Walrus з часом мене підстрахує. Дивно те, що мережа Walrus є асинхронною, а це означає, що вона не чекає, поки всі дадуть відповідь одночасно. Повідомлення можуть затримуватися, а вузли можуть гальмувати, але Walrus продовжує працювати, не чекаючи ідеального моменту для кожного кроку. "Очікування ідеальної мережі це чудовий спосіб назавжди втратити свої дані." Я зрозумів, що зазвичай у нас є два способи зробити це, і обидва вони по-своєму кепські для такої системи, як Walrus. Перший спосіб це повна реплікація, коли ви просто даєте кожному окремому вузлу Walrus повну копію вашого всього файлу. Це просто і це працює, але це неймовірно дорого і повільно для Walrus, бо ви надсилаєте один і той самий файл знову і знову. Уявіть, що ви намагаєтеся поділитися фільмом з десятьма друзями, надсилаючи десять окремих фізичних жорстких дисків кожному постачальнику послуг Walrus. Це коштує цілий статок і триває вічність, особливо якщо Walrus має постійно перевіряти, чи всі вони насправді отримали посилку. Потім є другий спосіб, який називається кодуванням та розподілом, який Walrus використовує, щоб здаватися розумнішим, попри певні незручності. Замість того, щоб надсилати весь файл усім підряд, Walrus розбиває його на дрібні шматочки й додає кілька додаткових частин для ремонту. Поки ви можете знайти достатньо таких шматочків пізніше, Walrus може відновити оригінальний файл, навіть якщо деякі частини загублені. "Економія місця на початку зазвичай означає додаткову оплату зусиллями пізніше." Я з’ясував, що якщо вузол Walrus пропускає свій шматочок під час першого раунду, йому часто доводиться завантажувати весь оригінальний файл. Це схоже на необхідність купувати цілий набір меблів ІКЕА лише тому, що Walrus загубив один конкретний гвинтик під час переїзду. Проєкт ACDS намагається виправити цю дивну неефективність, щоб Walrus не завантажувався через те, що всі завантажують усе підряд. Він використовує штуки під назвою зобов'язання, які схожі на цифрові відбитки пальців, що доводять справжність даних у Walrus. Коли я читаю файл із Walrus, я хочу знати, що те, що я отримую, є справжнім оригіналом, а не якимось сміттям від вузла. "Послідовне читання можливе лише тоді, коли правила жорсткіші за людей." Якщо ми обоє захочемо прочитати один і той самий файл із Walrus, система гарантує, що ми або обоє отримаємо правильний файл, або нічого. Це запобігає ситуації, коли я думаю, що файл Walrus у порядку, а ви в цей час дивитеся на повний безлад чи помилку. Валідність це інше велике правило, яке означає, що якщо я успішно щось зберіг у Walrus, ви повинні мати можливість це знайти. Це здається здоровим глуздом, але в такій мережі як Walrus зробити це гарантією насправді є величезним технічним досягненням. Я почав думати про те, як це все відчувається для користувача Walrus, який просто хоче, щоб його фото та документи нікуди не зникали. Ми весь час стикаємося з плинністю, коли вузли Walrus виходять із мережі, а нові приходять, і система має адаптуватися до цього. Це постійний цикл кодування та перевірки, який відбувається всередині Walrus, поки я просто натискаю кнопку збереження у своєму додатку. "Найкраща технологія це та, що працює, поки ви зайняті тим, що ігноруєте її." Я зрозумів, що ACDS це в основному сітка безпеки, яка ловить мої дані, коли мережа Walrus починає поводитися як хаотичне збіговисько. Мова йде не лише про зберігання, а про те, щоб Walrus був дійсно надійним, навіть коли навколишній світ зовсім не такий. Я ціную те, що хтось подумав про дивну поведінку випадкових серверів, щоб мені не довелося турбуватися про можливі збої Walrus. Мені стає трохи спокійніше від думки, що мої дані розбиті на тисячу шматочків і охороняються математикою Walrus. Зрештою, я просто хочу знати, що коли я піду шукати свої речі у Walrus, вони справді будуть там чекати на мене.