Перший дизайн GAS для MOVE: аналіз методів розрахунку GAS у блокчейні
Попередня версія MOVE мови спочатку планувалася для роботи без GAS, тому не була підготовлена до механізму GAS. Нещодавно один з проектів у блокчейні представив перший дизайн GAS для своєї MOVE мови, що офіційно називається "пригодою".
План GAS цього проєкту пояснює принципи, процеси, методи розрахунку, механізми подальшого коригування, а також ставлення до прийняття пропозицій громади. Вимірювання GAS є основною концепцією цього у блокчейні та багатьох інших блокчейнах, воно визначає абстрактний розрахунок кількості обчислювальних та сховищних ресурсів, необхідних для виконання та зберігання транзакцій у блокчейні. План GAS визначить витрати на виконання всіх дій у блокчейні, які використовуються для розрахунку витрат GAS під час виконання транзакцій.
Процес
Для ефективного виконання, процес проекту у блокчейні є:
Визначення принципів
Підготуйте оцінкову рамку, визначте ціну для кожного виконання
Створити систему вимірювання GAS та безпечну алгебру GAS для MOVE
Імпортувати верхній GAS фрейм
Зробити фреймворк GAS усвідомленим до зберігання
Подальше уточнення плану GAS
Принципи
Принципи, визначені цим проєктом, включають:
Операційні витрати повинні бути безпосередньо пов'язані з доступними ресурсами мережі, такими як ЦП, пам'ять, мережа, зберігання I/O та використання простору тощо. З покращенням технологій і процесів витрати на GAS повинні знижуватися.
GAS має бути налаштований через у блокчейні управління та може бути безшовно сконфігурований.
GAS може запобігти DoS-атакам на фіксовані ресурси мережі, можливо, знадобиться швидко коригувати відповідно до рекомендацій управління в залежності від стану мережі.
Ціна GAS відображає бачення прискореного зростання та підтримки популярності у блокчейні.
Заохочуйте робити якісний вибір у дизайні, наприклад, надаючи пріоритет безпеці, модульності, асерції тощо.
Розрахунок GAS
Коли користувач подає транзакцію, потрібно вказати дві кількості в транзакції:
Максимальна кількість GAS: вимірюється в одиницях GAS, що показує максимальну кількість одиниць GAS, яку користувач готовий витратити на виконання транзакції.
Ціна GAS: обчислюється в восьмеричній системі для кожної одиниці GAS, 1 восьмерична = 0.00000001 місцевої монети.
Під час виконання транзакції буде стягнуто:
Фіксовані витрати: фіксована база плюс додаткові витрати на великі транзакції.
Витрати на виконання: використовуються для виконання інструкцій MOVE.
Читання витрат: використовується для читання даних з постійного сховища.
Витрати на запис: використовується для запису даних у постійне сховище.
Остаточний метод розрахунку комісії за угоду: загальна кількість спожитого GAS помножена на ціну за одиницю GAS. Наприклад, угода спожила 670 одиниць GAS, а користувач зазначив ціну GAS за одиницю 100 Octa, отже, остаточна комісія за угоду становитиме 670 * 100 = 67000 Octa = 0.00067 місцевих токенів.
Якщо під час виконання транзакції закінчаться GAS, відправник буде стягнуто плату відповідно до максимальної кількості GAS, всі зміни, внесені цією транзакцією, будуть скасовані.
Створення плану GAS
1. Основні налаштування
План GAS містить кілька складових, які не пов'язані з деталями окремих операцій, таких як розмір транзакції та максимальна одиниця GAS.
2. Обсяг угоди
Більшість обсягів транзакцій знаходяться на рівні тисячі байтів. Публікація модуля MOVE може досягати кількох тисяч байтів, тоді як фрейм складає приблизно 100 КБ. Розмір модуля користувача зазвичай коливається від 4 КБ до 40 КБ. Спочатку обсяг транзакцій був встановлений на 32 КБ, а потім, відповідно до потреб спільноти, був скоригований до 64 КБ для спрощення розробки застосунків.
Великі угоди збільшать витрати на пропускну здатність мережі та можуть вплинути на продуктивність. Щоб збалансувати максимальний розмір угоди та доступність, пам'ять може ігнорувати угоди більшого розміру.
3. Максимальна одиниця GAS
Максимальна одиниця GAS у плані GAS визначає максимальний обсяг операцій, які можуть бути виконані в одній транзакції. Занадто високе встановлення може негативно вплинути на продуктивність у блокчейні. Навіть після найбільшого оновлення рамки, все ще менше 90% від максимальної одиниці GAS у плані GAS (встановленої на 1,000,000).
4. Виконати
Оцінюючи витрати на виконання, був створений базовий каркас і використані аналітичні інструменти для аналізу Move VM. В результаті аналізу були отримані оцінки відносних витрат усіх команд Move та нативних функцій. Після розгляду кодування, що підвищує стійкість і безпеку системи, було визначено остаточну кількість машинних інструкцій для виконання, та проведено узгодження з обсягом пам'яті та максимальними одиницями GAS, щоб отримати поточну вартість у плані GAS.
5. Зберігання
При доступі до елементів стану або даних, збережених у постійній пам'яті, вузол надсилає запит на читання або запис до пристрою зберігання. Загальна кількість доступів до даних за секунду залежить від пропускної здатності пристрою зберігання та ємності IOPS. Плани зберігання GAS враховують ці витрати.
Доступ і зберігання будь-якого елементу стану призводить до витрат, пов'язаних зі структурою даних, що верифікує весь стан у блокчейні. Ці витрати пов'язані з базовою кількістю різних елементів стану. Існують також витрати, які пропорційні розміру кожного елемента.
Зберігання GAS-кошту = item_fee + (byte_fee * bytes)
Читати, створювати та писати
Доступ до елементів стану поділяється на три типи: читання, створення або запис. Операція читання є найпоширенішою і обмежується лише тимчасовою нестачею ресурсів. Операція створення додає нові елементи до сховища стану і є найдорогою. Операція запису оновлює існуючі елементи в сховищі стану.
Виходячи з вищезазначеного, визначено 6 параметрів 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 представляються з точністю приблизно до трьох знаків, вартість транзакції переказу становить близько 700 одиниць GAS.
Участь у спільноті
Члени спільноти можуть:
Виявити нерозумні аспекти плану GAS
Висловіть занепокоєння щодо плану GAS, беручи участь в обговореннях спільноти
Проголосувати за пропозиції щодо управління, пов'язані з GAS
Коригування витрат на GAS
План GAS, як конфігурація зберігання у блокчейні, може бути змінений через пропозиції з управління та безперешкодно додавати нові інструкції або вбудовані функції. Дизайн плану GAS є розширюваним, що дозволяє оновлення через пропозиції з управління. З постійними вдосконаленнями та врахуванням відгуків користувачів, параметри GAS можуть коригуватися з часом.
Складні зміни формули GAS потребують оновлення програмного забезпечення вузлів і широкого впровадження для операторів вузлів. Нарешті, необхідно опублікувати та затвердити пропозицію з управління, щоб використовувати нову версію GAS.
Майбутня робота
Як перша життєздатна GAS-структура MOVE, цей проект прокладає шлях для майбутньої роботи:
Зниження витрат на виконання: покращення ефективності компілятора та віртуальної машини
Багатовимірні обчислення GAS: дозволяють користувачам вказувати окремий бюджет для виконання та зберігання
Полегшення обтяженого стану: дослідження концепції TTL кожного проєкту, видалення невідвідуваних статусних проєктів після закінчення TTL
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
19 лайків
Нагородити
19
6
Репост
Поділіться
Прокоментувати
0/400
ShibaMillionairen't
· 07-24 00:05
Що за витрати, це просто невдахи платять.
Переглянути оригіналвідповісти на0
SatoshiHeir
· 07-21 20:58
Гм, дизайн MOVE очевидно скопійований з 127-ї сторінки жовтої книги Ethereum.
Переглянути оригіналвідповісти на0
GasWaster
· 07-21 01:29
інший день, інша оптимізація газу... вбийте мене зараз
Переглянути оригіналвідповісти на0
GasGrillMaster
· 07-21 01:26
Мобільні платежі вже з'явилися, чи все ще граєте в це?
Переглянути оригіналвідповісти на0
ImpermanentTherapist
· 07-21 01:12
Інноваційний і витратний
Переглянути оригіналвідповісти на0
CryptoMotivator
· 07-21 01:09
Знову говорять про питання витрат. Чого панікувати?
MOVE мова вперше впроваджує механізм GAS: у блокчейні розрахунок витрат повністю розкрито
Перший дизайн GAS для MOVE: аналіз методів розрахунку GAS у блокчейні
Попередня версія MOVE мови спочатку планувалася для роботи без GAS, тому не була підготовлена до механізму GAS. Нещодавно один з проектів у блокчейні представив перший дизайн GAS для своєї MOVE мови, що офіційно називається "пригодою".
План 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 може досягати кількох тисяч байтів, тоді як фрейм складає приблизно 100 КБ. Розмір модуля користувача зазвичай коливається від 4 КБ до 40 КБ. Спочатку обсяг транзакцій був встановлений на 32 КБ, а потім, відповідно до потреб спільноти, був скоригований до 64 КБ для спрощення розробки застосунків.
Великі угоди збільшать витрати на пропускну здатність мережі та можуть вплинути на продуктивність. Щоб збалансувати максимальний розмір угоди та доступність, пам'ять може ігнорувати угоди більшого розміру.
3. Максимальна одиниця GAS
Максимальна одиниця GAS у плані GAS визначає максимальний обсяг операцій, які можуть бути виконані в одній транзакції. Занадто високе встановлення може негативно вплинути на продуктивність у блокчейні. Навіть після найбільшого оновлення рамки, все ще менше 90% від максимальної одиниці GAS у плані GAS (встановленої на 1,000,000).
4. Виконати
Оцінюючи витрати на виконання, був створений базовий каркас і використані аналітичні інструменти для аналізу Move VM. В результаті аналізу були отримані оцінки відносних витрат усіх команд Move та нативних функцій. Після розгляду кодування, що підвищує стійкість і безпеку системи, було визначено остаточну кількість машинних інструкцій для виконання, та проведено узгодження з обсягом пам'яті та максимальними одиницями GAS, щоб отримати поточну вартість у плані GAS.
5. Зберігання
При доступі до елементів стану або даних, збережених у постійній пам'яті, вузол надсилає запит на читання або запис до пристрою зберігання. Загальна кількість доступів до даних за секунду залежить від пропускної здатності пристрою зберігання та ємності IOPS. Плани зберігання GAS враховують ці витрати.
Доступ і зберігання будь-якого елементу стану призводить до витрат, пов'язаних зі структурою даних, що верифікує весь стан у блокчейні. Ці витрати пов'язані з базовою кількістю різних елементів стану. Існують також витрати, які пропорційні розміру кожного елемента.
Зберігання GAS-кошту = item_fee + (byte_fee * bytes)
Читати, створювати та писати
Доступ до елементів стану поділяється на три типи: читання, створення або запис. Операція читання є найпоширенішою і обмежується лише тимчасовою нестачею ресурсів. Операція створення додає нові елементи до сховища стану і є найдорогою. Операція запису оновлює існуючі елементи в сховищі стану.
Виходячи з вищезазначеного, визначено 6 параметрів GAS:
стабільна вартість одиниці GAS
Кожна операція та сама транзакція потребують фіксованої одиничної вартості відносно витрат на зберігання та виконання. Фіксована одинична вартість GAS допомагає підтримувати стабільність плану GAS і відокремлює його від ринкової вартості місцевих токенів. Одиниці GAS представляються з точністю приблизно до трьох знаків, вартість транзакції переказу становить близько 700 одиниць GAS.
Участь у спільноті
Члени спільноти можуть:
Коригування витрат на GAS
План GAS, як конфігурація зберігання у блокчейні, може бути змінений через пропозиції з управління та безперешкодно додавати нові інструкції або вбудовані функції. Дизайн плану GAS є розширюваним, що дозволяє оновлення через пропозиції з управління. З постійними вдосконаленнями та врахуванням відгуків користувачів, параметри GAS можуть коригуватися з часом.
Складні зміни формули GAS потребують оновлення програмного забезпечення вузлів і широкого впровадження для операторів вузлів. Нарешті, необхідно опублікувати та затвердити пропозицію з управління, щоб використовувати нову версію GAS.
Майбутня робота
Як перша життєздатна GAS-структура MOVE, цей проект прокладає шлях для майбутньої роботи: