MOVE мова впроваджує механізм GAS: повний аналіз рішення щодо обліку ресурсів у блокчейні

robot
Генерація анотацій у процесі

Перший дизайн GAS для MOVE: аналіз методу обчислення витрат GAS у блокчейні

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

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

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

Процес реалізації

Щоб ефективно виконати, процеси у блокчейні включають:

  1. Визначення принципів дизайну
  2. Підготувати оцінювальну рамку, визначити ціну кожної виконуваної операції
  3. Створення системи вимірювання GAS та безпечної алгебри GAS для MOVE
  4. Імпортувати верхній GAS фрейм у блокчейн
  5. Надати фрейму GAS можливість зберігати інформацію
  6. Подальша оптимізація GAS рішення

Принципи проектування

  1. Операційні витрати повинні бути безпосередньо пов'язані з доступними ресурсами в мережі (такі як CPU, пам'ять, мережа, зберігання I/O та використання простору тощо). З удосконаленням технологій та процесів витрати GAS повинні відповідно знижуватися.

  2. GAS має бути налаштований через у блокчейні управління та може бути безшовно сконфігурований.

  3. GAS може запобігти DoS-атакам на фіксовані ресурси мережі та швидко коригуватися через управління відповідно до стану мережі.

  4. Ціна GAS повинна відображати бачення прискореного зростання та підтримки поширення у блокчейні.

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

Метод розрахунку GAS

Користувач повинен вказати два значення під час подання транзакції:

  • Максимальна кількість GAS: максимальна кількість одиниць GAS, яку користувач готовий заплатити за виконання транзакції.
  • Ціна одиниці GAS: обчислюється в восьмиричній системі для кожної одиниці GAS, 1 восьмиричне = 0.00000001 нативного токена.

Під час виконання угоди буде стягнуто:

  1. Фіксовані витрати: базові витрати плюс додаткові витрати на великі транзакції
  2. Витрати на виконання: використовуються для виконання MOVE інструкцій
  3. Витрати на читання: витрати на зчитування даних з постійного зберігання
  4. Вартість запису: витрати на запис даних у постійне сховище

Кінцевий комісійний збір = Загальна кількість спожитого GAS × Ціна за GAS

Наприклад, транзакція споживає 670 одиниць GAS, ціна GAS, вказана користувачем, становить 100 Octa/одиниця, тоді остаточні витрати складуть 670 × 100 = 67000 Octa = 0.00067 рідного токена.

Якщо під час виконання транзакції вичерпається GAS, відправник буде стягнуто максимальну суму GAS, і всі зміни будуть скасовані.

Детальний опис GAS方案

  1. Основні налаштування

План GAS містить деякі компоненти, які не залежать від окремих операцій, такі як розмір транзакції та максимальна кількість одиниць GAS.

  1. Масштаб交易

Більшість обсягів транзакцій на рівні тисяч байтів. Публікація модуля Move може досягати кількох тисяч байтів, а певна рамка становить приблизно 100 КБ. Обсяги користувацьких модулів зазвичай коливаються від 4 КБ до 40 КБ. Початковий обсяг транзакції встановлено на 32 КБ, а потім відповідно до відгуків спільноти було скориговано до 64 КБ, щоб спростити розробку застосунків.

Занадто великі транзакції можуть збільшити витрати на пропускну здатність мережі та можуть вплинути на продуктивність. Щоб збалансувати масштаб і доступність, пул пам'яті може ігнорувати занадто великі транзакції.

  1. Максимальна одиниця GAS

У GAS-плані максимальна одиниця GAS визначає максимальну кількість операцій, які можуть бути виконані в одній транзакції. Це відрізняється від максимальної кількості GAS, яку вказує користувач. Встановлення занадто високого значення може призвести до проблем з продуктивністю, таких як безкінечні цикли. На даний момент, навіть при максимальному масштабі оновлення системи, використано менше 90% від максимальної одиниці GAS (визначеної на рівні 1,000,000).

  1. Оцінка витрат на виконання

Команда використовує базову структуру та інструмент аналізу Valgrind для оцінки витрат на виконання, визначаючи відносну вартість MOVE-інструкцій та рідних функцій. З урахуванням кодових прикладів, що покращують надійність і безпеку системи, було визначено остаточну кількість машинних інструкцій для виконання.

  1. Витрати на зберігання

План зберігання GAS враховує пропускну спроможність доступу до даних, ємність IOPS та витрати на постійне зберігання. Доступ до будь-якого елементу стану пов'язаний з витратами, пов'язаними з перевіркою стану у блокчейні. Формула розрахунку витрат на зберігання GAS така:

Зберігання GAS-кошту = проектний кошт + ( байт-кошту × кількість байтів )

  1. Читання, створення та запис операцій
  • Читання: найпоширеніша операція, яка коригує витрати відповідно до IOPS диска та ємності пропускної здатності.
  • Створення: додавання нового елемента в сховище стану, з найвищою вартістю, відрегульованою відповідно до простору на диску мережі.
  • Запис: оновлення існуючого елемента, плата за байти така ж, як і при створенні.

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

участь у спільноті

Як громадський проект, учасники можуть:

  1. Вкажіть на недоліки в схемі GAS
  2. Висловлення занепокоєння та участь у обговоренні
  3. Голосування за відповідні пропозиції з управління

коригування вартості GAS

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

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

Майбутня робота

Як перша GAS-рамка мови MOVE, цей дизайн заклав основу для майбутньої роботи:

  1. Зниження витрат на виконання: шляхом покращення ефективності компілятора та віртуальної машини.

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

  3. Пом'якшення розширення стану: дослідження концепції TTL для кожного проекту, автоматичне видалення невідвідуваних статусних елементів по закінченню терміну TTL, щоб заохотити розробників очищати дані у блокчейні.

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
GateUser-3824aa38vip
· 07-06 09:00
Економте газ і все.
Переглянути оригіналвідповісти на0
CascadingDipBuyervip
· 07-06 08:56
бик啊 终于有人管газ了
Переглянути оригіналвідповісти на0
GigaBrainAnonvip
· 07-06 08:54
Цей газ занадто жорсткий, ціна така висока, що в мене м'які ноги.
Переглянути оригіналвідповісти на0
ZkSnarkervip
· 07-06 08:53
ну, технічно, ця модель газу — це просто zkvm з додатковими кроками
Переглянути оригіналвідповісти на0
RugpullAlertOfficervip
· 07-06 08:38
Що ще нового з'явилося, що може призвести до шахрайства?
Переглянути оригіналвідповісти на0
  • Закріпити