February 2, 2024

Проблема галасливого сусіда Dapp

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

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

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

Ви знаходите рішення: ви розбиваєте кожен сервер на декілька "віртуальних" серверів. Кожен віртуальний сервер матиме свій власний набір ресурсів, і кожен розробник зможе орендувати віртуальний сервер для запуску свого додатку. Таким чином, ви зможете ефективно використовувати свої фізичні сервери і пропонувати свої послуги ширшому колу клієнтів з різними потребами в ресурсах.

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

Але є підступ: що, якщо додаток одного розробника почне забирати ресурси і використовувати більше, ніж йому належить? Раптом інші віртуальні сервери на тому ж самому боксі матимуть менше ресурсів, щоб розділити між собою - їхня продуктивність погіршиться.

...але якщо хтось забирає ресурси, всі інші страждають

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

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

Але є одна категорія випадків, де проблема "галасливого сусіда" жива і здорова: додатки на блокчейні.

Dapps - галасливі сусіди

Існує кілька способів уявити собі блокчейн. З одного боку, блокчейн - це розподілена мережа з багатьох серверів, які працюють разом, щоб підтримувати спільний реєстр транзакцій.

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

Саме так: блокчейн - це ідеальна "багатокористувацька" інфраструктура.

На одному блокчейні можуть працювати сотні тисяч додатків (смарт-контрактів), які конкурують за обмежені ресурси. А оскільки ці ресурси розподіляються через ринок, більша конкуренція безпосередньо призводить до зростання витрат.

Зазвичай вважається, що "швидкі" і "дешеві" транзакції є внутрішньою властивістю базового блокчейну. Але це неправильно: ці властивості також визначаються використанням ланцюжка - і можуть швидко змінюватися в міру зміни використання.

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

Цей приклад стосується не тільки Ethereum! Всі популярні ланцюжки рано чи пізно стикаються з цією проблемою - це свідчення того, наскільки успішно ланцюжок створює попит на блокчейн. Це проблема монолітних блокчейнів в цілому. Галасливі сусіди завжди можуть зіпсувати вам день, що призведе до погіршення UX і високих витрат.

Вводьте виділені роллапи

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

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

Навіть краще: виділені роллапи можна налаштувати відповідно до конкретних потреб кожного додатка. Хочете мінімізувати операційні витрати? Ви можете зупинитися на менш дорогому ланцюжку. Потрібні тонни обчислювальної потужності? Запустіть згортання на потужнішому сервері і збільште ліміт газу. Або, можливо, вам потрібно опуститися нижче EVM і додати нові примітиви нижчого рівня, такі як операції з кривими BLS, ZK-дружні хеш-функції або більш ефективні утиліти для управління пам'яттю.

Caldera: спеціальна платформа для роллапів

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

Такі розробники, як zkHoldem, Syndr та Curio вже використовують Caldera для запуску швидких, безпечних блокчейнів та додатків без шкоди для продуктивності та функціональності.

Якщо ви розробник, зв'яжіться з нами! Ми з радістю поговоримо про те, чому спеціальний блокчейн може мати сенс для вашого додатку.