Перше проектування GAS MOVE: аналіз методу розрахунку витрат GAS у блокчейні
Ранні версії мови MOVE не враховували механізм GAS, тому GAS-план, розроблений для одного з проектів у блокчейні, був названий "пригодою". Цей план описує принципи, процеси, методи обчислення та подальші коригування, а також запрошує спільноту висловлювати свої пропозиції.
GAS-метричні дані є основним концептом багатьох у блокчейні, що використовується для вимірювання обчислювальних та зберігаючих ресурсів, необхідних для виконання та зберігання транзакцій. GAS-план визначає вартість всіх виконань у блокчейні, що використовується для розрахунку витрат GAS під час виконання транзакцій.
процес
Процес реалізації GAS цього блокчейн-проєкту включає:
Визначення принципів
Підготовка оцінювальної рамки, визначення ціни для кожного виконання
Створити систему обліку GAS і безпечну алгебру GAS для MOVE
Імпортувати верхній GAS фрейм
Зробіть фреймворк GAS свідомим зберігання
Додаткове уточнення плану GAS
принцип
Принципи визначення проекту включають:
Витрати на операції повинні бути безпосередньо пов'язані з доступними ресурсами мережі та знижуватися зі зростанням технологічного прогресу.
GAS встановлюється через у блокчейні управління, може бути безшовно налаштовано
GAS може запобігти атакам DoS, може швидко налаштовуватися в залежності від стану мережі.
Ціна GAS відображає бачення прискореного зростання та підтримки популярності у блокчейні.
Заохочення до вибору, що сприяє безпеці, модульності тощо в дизайні
Розрахунок GAS
Користувач повинен вказати під час подання транзакції:
Максимальна кількість GAS: максимальна кількість одиниць GAS, яку ви готові витратити на виконання угоди.
Ціна GAS: обчислюється в вісімковій системі, 1 вісімковий = 0.00000001 рідного токена
Під час виконання угоди стягується:
Фіксовані витрати
Витрати на виконання
Зчитування витрат
Витрати на запис
Кінцева комісія за транзакцію = Загальна кількість спожитого GAS × Ціна за одиницю GAS
Наприклад, якщо транзакція споживає 670 одиниць GAS, а користувач вказує ціну GAS у 100 Octa/одиниця, то остаточна вартість становитиме 670 × 100 = 67000 Octa = 0.00067 рідного токена.
Якщо під час виконання транзакції закінчиться GAS, відправник буде стягувати плату відповідно до максимального обсягу GAS, всі зміни, внесені цією транзакцією, будуть відновлені.
створення GAS плану
1. Основні налаштування
План GAS містить компоненти, які не пов'язані з окремою операцією, такі як розмір транзакції та максимальна одиниця GAS.
2. Масштаб торгівлі
Більшість обсягів транзакцій на рівні кілобайтів, але публікація модуля MOVE може досягати кількох тисяч байтів. Спочатку обсяг транзакцій був встановлений на 32KB, а потім був скоригований до 64KB на основі відгуків громади.
Занадто великі транзакції можуть збільшити витрати на пропускну здатність мережі та можуть вплинути на продуктивність. Пул пам'яті, як правило, ігнорує транзакції більших розмірів, тому необхідно знайти баланс між максимальною масштабованістю та доступністю.
3. Максимальна одиниця GAS
Максимальна одиниця GAS, визначена в плані GAS, визначає максимальну кількість операцій, які можуть бути виконані в транзакції. Надто високі налаштування можуть призвести до негативного впливу на продуктивність, наприклад, до безкінечних циклів. За результатами тестування, навіть після максимального оновлення фрейму, не досягається 90% від встановленої максимальної одиниці GAS (1,000,000).
4. Виконання
Команда побудувала базову структуру та використала аналітичні інструменти для оцінки витрат на виконання, грубо оцінивши відносні витрати всіх інструкцій MOVE та рідних функцій. Врахувавши приклади коду, які підвищують надійність і безпеку системи, було отримано остаточну кількість машинних інструкцій для виконання.
5. Зберігання
Під час доступу до елементів статусу або даних книги, вузол надсилає запити на читання та запис до пристрою зберігання. Загальна кількість доступів до даних обмежена пропускною здатністю пристрою зберігання та ємністю IOPS. Команда врахувала ці витрати при проектуванні плану зберігання GAS.
Витрати на доступ і зберігання елементів стану пов'язані з витратами на перевірку структури даних, що стосується цілого стану у блокчейні. Формула для розрахунку витрат:
Зберігання GAS-кошту = проектний кошт + ( байт-кошту × кількість байтів )
читати, створювати та писати
Доступ до статусних елементів поділяється на три типи: читання, створення та запис.
Операції читання є найпоширенішими, і їх обмежує лише миттєва нестача ресурсів.
Операція створення додає новий елемент до сховища стану, вартість максимальна
Операція запису оновлює існуючий елемент, не створюючи додаткових витрат на структуру даних для автентифікації.
Витрати, пов'язані з зберіганням, оцінюються на основі кожної транзакції; за багаторазове читання та запис одних і тих же ресурсів стягується лише одна плата.
Команда визначила 6 параметрів GAS, що складають загальну вартість GAS:
per_item_read: згідно з калібруванням IOPs
per_byte_read: відповідно до калібрування пропускної здатності
per_item_create: згідно з коригуванням загальної мети проекту
per_byte_create: калібрувати відповідно до загального цільового розміру
per_item_write: Те саме, що і per_item_read
per_byte_write: Те саме, що per_byte_create
стабільна вартість одиниці GAS
Кожна операція та сама транзакція потребують фіксованої одиничної вартості відносно витрат на зберігання та виконання. Фіксована одинична вартість GAS допомагає підтримувати стабільність плану GAS і розривати зв'язок з ринковою вартістю нативних токенів.
Команда представляє одиниці GAS з точністю приблизно до 3 знаків, наприклад, вартість транзакції переказу становить близько 700 одиниць GAS.
участь у спільноті
Члени спільноти можуть:
Виявити недоліки в плані GAS
Виразити занепокоєння щодо плану GAS та взяти участь у обговоренні
Голосування за пропозиції щодо управління GAS
Як налаштувати вартість GAS?
План GAS як конфігурація зберігання у блокчейні може бути змінений через пропозиції з управління та безперешкодно додавати нові команди або функції.
План GAS спроектовано так, щоб бути масштабованим, дозволяючи оновлення через пропозиції з управління. З покращенням проекту та врахуванням відгуків користувачів параметри GAS можуть поступово налаштовуватися.
Складні зміни формули GAS вимагають оновлення програмного забезпечення вузлів, після масового впровадження нова версія повинна бути затверджена через пропозицію управління.
Майбутня робота
Як перша життєздатна GAS-рамка Move, цей проект закладає основу для майбутньої роботи:
Зниження витрат на виконання: покращення ефективності компілятора та віртуальної машини
Багатовимірний розрахунок GAS: дозволяє користувачам визначати окремий бюджет для виконання та зберігання
Пом'якшення об'ємного стану: дослідження концепції TTL для кожного проєкту, видалення неактивних станів проєкту після закінчення TTL
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
MOVE мова отримує перший дизайн GAS: детальний аналіз рішення для обліку ресурсів у блокчейні
Перше проектування GAS MOVE: аналіз методу розрахунку витрат GAS у блокчейні
Ранні версії мови MOVE не враховували механізм GAS, тому GAS-план, розроблений для одного з проектів у блокчейні, був названий "пригодою". Цей план описує принципи, процеси, методи обчислення та подальші коригування, а також запрошує спільноту висловлювати свої пропозиції.
GAS-метричні дані є основним концептом багатьох у блокчейні, що використовується для вимірювання обчислювальних та зберігаючих ресурсів, необхідних для виконання та зберігання транзакцій. GAS-план визначає вартість всіх виконань у блокчейні, що використовується для розрахунку витрат GAS під час виконання транзакцій.
процес
Процес реалізації GAS цього блокчейн-проєкту включає:
принцип
Принципи визначення проекту включають:
Розрахунок GAS
Користувач повинен вказати під час подання транзакції:
Під час виконання угоди стягується:
Кінцева комісія за транзакцію = Загальна кількість спожитого GAS × Ціна за одиницю GAS
Наприклад, якщо транзакція споживає 670 одиниць GAS, а користувач вказує ціну GAS у 100 Octa/одиниця, то остаточна вартість становитиме 670 × 100 = 67000 Octa = 0.00067 рідного токена.
Якщо під час виконання транзакції закінчиться GAS, відправник буде стягувати плату відповідно до максимального обсягу GAS, всі зміни, внесені цією транзакцією, будуть відновлені.
створення GAS плану
1. Основні налаштування
План GAS містить компоненти, які не пов'язані з окремою операцією, такі як розмір транзакції та максимальна одиниця GAS.
2. Масштаб торгівлі
Більшість обсягів транзакцій на рівні кілобайтів, але публікація модуля MOVE може досягати кількох тисяч байтів. Спочатку обсяг транзакцій був встановлений на 32KB, а потім був скоригований до 64KB на основі відгуків громади.
Занадто великі транзакції можуть збільшити витрати на пропускну здатність мережі та можуть вплинути на продуктивність. Пул пам'яті, як правило, ігнорує транзакції більших розмірів, тому необхідно знайти баланс між максимальною масштабованістю та доступністю.
3. Максимальна одиниця GAS
Максимальна одиниця GAS, визначена в плані GAS, визначає максимальну кількість операцій, які можуть бути виконані в транзакції. Надто високі налаштування можуть призвести до негативного впливу на продуктивність, наприклад, до безкінечних циклів. За результатами тестування, навіть після максимального оновлення фрейму, не досягається 90% від встановленої максимальної одиниці GAS (1,000,000).
4. Виконання
Команда побудувала базову структуру та використала аналітичні інструменти для оцінки витрат на виконання, грубо оцінивши відносні витрати всіх інструкцій MOVE та рідних функцій. Врахувавши приклади коду, які підвищують надійність і безпеку системи, було отримано остаточну кількість машинних інструкцій для виконання.
5. Зберігання
Під час доступу до елементів статусу або даних книги, вузол надсилає запити на читання та запис до пристрою зберігання. Загальна кількість доступів до даних обмежена пропускною здатністю пристрою зберігання та ємністю IOPS. Команда врахувала ці витрати при проектуванні плану зберігання GAS.
Витрати на доступ і зберігання елементів стану пов'язані з витратами на перевірку структури даних, що стосується цілого стану у блокчейні. Формула для розрахунку витрат:
Зберігання GAS-кошту = проектний кошт + ( байт-кошту × кількість байтів )
читати, створювати та писати
Доступ до статусних елементів поділяється на три типи: читання, створення та запис.
Витрати, пов'язані з зберіганням, оцінюються на основі кожної транзакції; за багаторазове читання та запис одних і тих же ресурсів стягується лише одна плата.
Команда визначила 6 параметрів GAS, що складають загальну вартість GAS:
стабільна вартість одиниці GAS
Кожна операція та сама транзакція потребують фіксованої одиничної вартості відносно витрат на зберігання та виконання. Фіксована одинична вартість GAS допомагає підтримувати стабільність плану GAS і розривати зв'язок з ринковою вартістю нативних токенів.
Команда представляє одиниці GAS з точністю приблизно до 3 знаків, наприклад, вартість транзакції переказу становить близько 700 одиниць GAS.
участь у спільноті
Члени спільноти можуть:
Як налаштувати вартість GAS?
План GAS як конфігурація зберігання у блокчейні може бути змінений через пропозиції з управління та безперешкодно додавати нові команди або функції.
План GAS спроектовано так, щоб бути масштабованим, дозволяючи оновлення через пропозиції з управління. З покращенням проекту та врахуванням відгуків користувачів параметри GAS можуть поступово налаштовуватися.
Складні зміни формули GAS вимагають оновлення програмного забезпечення вузлів, після масового впровадження нова версія повинна бути затверджена через пропозицію управління.
Майбутня робота
Як перша життєздатна GAS-рамка Move, цей проект закладає основу для майбутньої роботи: