Аналіз дизайну GAS для Aptos-ланцюга: детальний опис першого плану GAS на мові MOVE

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

Перший дизайн GAS MOVE мови: Аналіз розрахунку GAS зборів у блокчейні Aptos

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

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

Процес

Процес проектування GAS у блокчейні Aptos включає:

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

Принцип

Принципи проектування GAS Aptos включають:

  1. Операційні витрати безпосередньо пов'язані з доступними ресурсами мережі, після поліпшення технології витрати на GAS повинні зменшитися.
  2. GAS встановлюється через у блокчейні, може бути безшовно налаштований
  3. GAS може запобігти DoS-атакам на фіксовані ресурси мережі, потребує швидкого коригування в залежності від ситуації в мережі.
  4. Ціна GAS відображає бачення доступності блокчейну для всіх.
  5. Заохочення робити правильний вибір у дизайні, наприклад, віддавати перевагу безпеці, модульності тощо.

Обчислення GAS

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

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

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

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

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

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

GAS план

базова конфігурація

У плані GAS включено кілька складових, які не пов'язані з окремою операцією, такі як розмір транзакції та максимальна кількість одиниць GAS.

обсяг торгівлі

Спочатку встановлено на 32KB, потім за запитом спільноти відкориговано на 64KB. Дуже великі обсяги транзакцій можуть підвищити витрати на пропускну здатність мережі, що може вплинути на продуктивність.

найбільша одиниця GAS

Визначає максимальну кількість операцій, які можуть бути виконані в одній транзакції, встановлену на 1,000,000. Це безпосередньо впливає на тривалість виконання транзакції, занадто високе встановлення може негативно вплинути на продуктивність у блокчейні.

виконати

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

зберігання

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

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

читати, створювати та писати

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

За кожну транзакцію потрібно сплачувати лише одну плату за багаторазове читання/запис одного й того ж ресурсу.

Стабільна вартість одиниці GAS

Кожна операція та сама транзакція потребує фіксованої одиничної вартості щодо витрат на зберігання та виконання, що допомагає підтримувати стабільність GAS-плану. Aptos представляє одиниці GAS з точністю близько 3 знаків, наприклад, вартість транзакції переказу становить приблизно 700 одиниць GAS.

Участь громади

Aptos заохочує членів спільноти:

  1. Знайти недоліки в плані GAS
  2. Брати участь у обговореннях у спільноті, висловлювати занепокоєння
  3. Голосування за пропозиції щодо управління GAS

Коригування витрат на GAS

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

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

Як перша життєздатна рамка GAS для MOVE, майбутні напрямки роботи включають:

  1. Знизити витрати на виконання
  2. Реалізація багатовимірного обчислення GAS, що дозволяє користувачам визначати окремий бюджет для виконання та зберігання.
  3. Пом'якшення проблеми об'ємного стану, дослідження концепції 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.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
AirdropHuntressvip
· 20год тому
Обережно, дизайн газу завжди має підводні камені.
Переглянути оригіналвідповісти на0
CryptoTarotReadervip
· 20год тому
Гаманець瑟瑟发抖.jpg
Переглянути оригіналвідповісти на0
DegenGamblervip
· 20год тому
газ нарешті почав приносити результати
Переглянути оригіналвідповісти на0
  • Закріпити