Первый дизайн GAS языка MOVE: Анализ метода расчета затрат GAS в блокчейне
Ранние версии языка MOVE изначально планировались для работы в среде без GAS, поэтому они не были подготовлены для механизма GAS. В последнее время команда одной публичной блокчейна разработала первый GAS-решение для языка MOVE, которое называется "авантюрной" попыткой.
В этом GAS-решении команда разработчиков изложила принципы проектирования, процесс реализации, методы расчета GAS, механизмы последующих корректировок и выразила готовность принять предложения от сообщества.
Измерение GAS является основным понятием многих блокчейнов, оно абстрактно определяет количество вычислительных и хранилищных ресурсов, необходимых для выполнения и хранения сделок в блокчейне. GAS-решение определяет стоимость всех операций выполнения в блокчейне, используемую для расчета затрат GAS во время выполнения сделки.
Процесс реализации
Чтобы эффективно выполнить, процессы в блокчейне включают:
Определение принципов дизайна
Подготовьте оценочную рамку, определите цену для каждой выполняемой операции.
Создание системы измерения GAS и безопасной алгебры GAS для MOVE
Импортировать upstream GAS фреймворк в блокчейн
Сделать GAS-фреймворк обладающим способностью к хранению
Дальнейшая оптимизация GAS-решения
Принципы проектирования
Операционные расходы должны быть напрямую связаны с доступными ресурсами сети (такими как ЦП, память, сеть, хранение I/O и использование пространства и т. д.). С улучшением технологий и процессов, стоимость GAS должна соответственно снижаться.
GAS должен быть настроен с помощью в блокчейне управления и может быть бесшовно сконфигурирован.
GAS может предотвратить DoS-атаки на фиксированные ресурсы сети и может быстро корректироваться через управление в зависимости от состояния сети.
Цена газа должна отражать видение ускоренного роста и поддержания популярности в блокчейне.
Поощряйте делать отличные выборы в дизайне, такие как приоритет безопасности, модульности и утверждений и т.д.
метод расчета GAS
Пользователь должен указать два значения при подаче транзакции:
Максимальное количество GAS: максимальное количество единиц GAS, которое пользователь готов заплатить за выполнение транзакции.
Фиксированные расходы: базовые расходы плюс дополнительные расходы на крупные сделки
Исполнительные расходы: используются для выполнения команды MOVE
Стоимость чтения: расходы на чтение данных из постоянного хранилища
Стоимость записи: расходы на запись данных в постоянное хранилище
Итоговая торговая стоимость = Общее количество потребляемого GAS × Цена за GAS
Например, транзакция потребляет 670 единиц GAS, пользователем заданная цена GAS составляет 100 Octa/единица, следовательно, итоговая стоимость составляет 670 × 100 = 67000 Octa = 0.00067 нативных токенов.
Если в процессе выполнения сделки иссякнет GAS, отправитель будет Charged по максимальному количеству GAS, и все изменения будут отменены.
Подробное объяснение GAS-решения
Основная конфигурация
План GAS включает в себя некоторые компоненты, не связанные с отдельной операцией, такие как размер транзакции и максимальный объем GAS.
Масштаб сделки
Большинство объемов транзакций находятся на уровне килобайтов. Публикация модуля MOVE может достигать нескольких тысяч байт, в то время как некоторый фреймворк составляет около 100KB. Объем пользовательского модуля обычно находится в пределах от 4KB до 40KB. Начальный объем транзакции установлен на 32KB, после чего, в соответствии с отзывами сообщества, был скорректирован до 64KB, чтобы упростить разработку приложений.
Слишком большие транзакции могут увеличить стоимость сетевой пропускной способности и потенциально повлиять на производительность. Чтобы сбалансировать масштаб и доступность, пул памяти может игнорировать слишком большие транзакции.
Максимальная единица GAS
В GAS-плане максимальное значение единицы GAS определяет максимальное количество операций, которые могут быть выполнены в одной транзакции. Это отличается от максимального объема GAS, указанного пользователем. Слишком высокие настройки могут привести к проблемам с производительностью, таким как бесконечные циклы. В настоящее время, даже при максимальном обновлении фрейма, используется менее 90% от максимального значения единицы GAS (установленного на уровне 1 000 000).
Оценка затрат на выполнение
Команда использует базовый фреймворк и инструменты анализа Valgrind для оценки затрат на выполнение, чтобы определить относительные затраты MOVE-инструкций и нативных функций. Учитывая примеры кодирования, повышающие надежность и безопасность системы, было определено окончательное количество машинных инструкций для выполнения.
Стоимость хранения
План хранения GAS учитывает пропускную способность доступа к данным, емкость IOPS и стоимость постоянного хранения. Доступ к любому элементу состояния связан с затратами, связанными с проверкой состояния блокчейна. Формула расчета стоимости хранения GAS следующая:
Чтение: самая распространенная операция, стоимость которой определяется по IOPS и пропускной способности диска.
Создание: добавление нового элемента в хранилище состояния, наибольшая стоимость, калибровка в зависимости от сетевого дискового пространства.
Запись: обновление существующего элемента, стоимость в байтах такая же, как при создании.
Издержки на хранение оцениваются на основе каждой транзакции, и даже если один и тот же ресурс читается/записывается несколько раз, взимается только одна плата.
участие сообщества
Как проект сообщества, участники могут:
Укажите на неразумные моменты в плане GAS
Выразите обеспокоенность и участвуйте в обсуждении
Проголосовать по соответствующим предложениям по управлению
Корректировка стоимости GAS
GAS решение как конфигурационное хранилище в блокчейне может быть изменено через предложения по управлению. Оно разработано как масштабируемое, что позволяет обновлять его через управление. С развитием технологий и отзывами пользователей параметры GAS могут быть скорректированы со временем.
Сложные изменения формул GAS могут потребовать обновления программного обеспечения узлов и различения через новые характеристики GAS. Это требует широкого принятия новой версии операторами узлов и одобрения для использования через предложения по управлению.
Будущая работа
В качестве первой GAS-рамки языка MOVE этот дизайн заложил основу для будущей работы:
Снижение затрат на выполнение: за счет улучшения эффективности компилятора и виртуальной машины.
Многоуровневое вычисление GAS: позволяет пользователям задавать отдельные бюджеты для выполнения и хранения, что обеспечивает более тонкую настройку определения максимальной цены GAS.
Снижение состояния расширения: исследуйте концепцию 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.
20 Лайков
Награда
20
5
Поделиться
комментарий
0/400
GateUser-3824aa38
· 07-06 09:00
Сэкономьте бензин и все готово
Посмотреть ОригиналОтветить0
CascadingDipBuyer
· 07-06 08:56
бык啊 终于有人管Газ了
Посмотреть ОригиналОтветить0
GigaBrainAnon
· 07-06 08:54
Этот газ слишком жестокий, так дорог, что у меня подкашиваются ноги.
Посмотреть ОригиналОтветить0
ZkSnarker
· 07-06 08:53
ну, технически эта газовая модель - это просто zkvm с дополнительными шагами
MOVE язык впервые внедрил механизм GAS: полное объяснение схемы учета ресурсов в блокчейне
Первый дизайн GAS языка MOVE: Анализ метода расчета затрат GAS в блокчейне
Ранние версии языка MOVE изначально планировались для работы в среде без GAS, поэтому они не были подготовлены для механизма GAS. В последнее время команда одной публичной блокчейна разработала первый GAS-решение для языка MOVE, которое называется "авантюрной" попыткой.
В этом GAS-решении команда разработчиков изложила принципы проектирования, процесс реализации, методы расчета GAS, механизмы последующих корректировок и выразила готовность принять предложения от сообщества.
Измерение GAS является основным понятием многих блокчейнов, оно абстрактно определяет количество вычислительных и хранилищных ресурсов, необходимых для выполнения и хранения сделок в блокчейне. GAS-решение определяет стоимость всех операций выполнения в блокчейне, используемую для расчета затрат GAS во время выполнения сделки.
Процесс реализации
Чтобы эффективно выполнить, процессы в блокчейне включают:
Принципы проектирования
Операционные расходы должны быть напрямую связаны с доступными ресурсами сети (такими как ЦП, память, сеть, хранение I/O и использование пространства и т. д.). С улучшением технологий и процессов, стоимость GAS должна соответственно снижаться.
GAS должен быть настроен с помощью в блокчейне управления и может быть бесшовно сконфигурирован.
GAS может предотвратить DoS-атаки на фиксированные ресурсы сети и может быстро корректироваться через управление в зависимости от состояния сети.
Цена газа должна отражать видение ускоренного роста и поддержания популярности в блокчейне.
Поощряйте делать отличные выборы в дизайне, такие как приоритет безопасности, модульности и утверждений и т.д.
метод расчета GAS
Пользователь должен указать два значения при подаче транзакции:
Во время выполнения сделки будет взиматься:
Итоговая торговая стоимость = Общее количество потребляемого GAS × Цена за GAS
Например, транзакция потребляет 670 единиц GAS, пользователем заданная цена GAS составляет 100 Octa/единица, следовательно, итоговая стоимость составляет 670 × 100 = 67000 Octa = 0.00067 нативных токенов.
Если в процессе выполнения сделки иссякнет GAS, отправитель будет Charged по максимальному количеству GAS, и все изменения будут отменены.
Подробное объяснение GAS-решения
План GAS включает в себя некоторые компоненты, не связанные с отдельной операцией, такие как размер транзакции и максимальный объем GAS.
Большинство объемов транзакций находятся на уровне килобайтов. Публикация модуля MOVE может достигать нескольких тысяч байт, в то время как некоторый фреймворк составляет около 100KB. Объем пользовательского модуля обычно находится в пределах от 4KB до 40KB. Начальный объем транзакции установлен на 32KB, после чего, в соответствии с отзывами сообщества, был скорректирован до 64KB, чтобы упростить разработку приложений.
Слишком большие транзакции могут увеличить стоимость сетевой пропускной способности и потенциально повлиять на производительность. Чтобы сбалансировать масштаб и доступность, пул памяти может игнорировать слишком большие транзакции.
В GAS-плане максимальное значение единицы GAS определяет максимальное количество операций, которые могут быть выполнены в одной транзакции. Это отличается от максимального объема GAS, указанного пользователем. Слишком высокие настройки могут привести к проблемам с производительностью, таким как бесконечные циклы. В настоящее время, даже при максимальном обновлении фрейма, используется менее 90% от максимального значения единицы GAS (установленного на уровне 1 000 000).
Команда использует базовый фреймворк и инструменты анализа Valgrind для оценки затрат на выполнение, чтобы определить относительные затраты MOVE-инструкций и нативных функций. Учитывая примеры кодирования, повышающие надежность и безопасность системы, было определено окончательное количество машинных инструкций для выполнения.
План хранения GAS учитывает пропускную способность доступа к данным, емкость IOPS и стоимость постоянного хранения. Доступ к любому элементу состояния связан с затратами, связанными с проверкой состояния блокчейна. Формула расчета стоимости хранения GAS следующая:
Хранение GAS-расходов = проектные расходы + ( байт-расходов × количество байт )
Издержки на хранение оцениваются на основе каждой транзакции, и даже если один и тот же ресурс читается/записывается несколько раз, взимается только одна плата.
участие сообщества
Как проект сообщества, участники могут:
Корректировка стоимости GAS
GAS решение как конфигурационное хранилище в блокчейне может быть изменено через предложения по управлению. Оно разработано как масштабируемое, что позволяет обновлять его через управление. С развитием технологий и отзывами пользователей параметры GAS могут быть скорректированы со временем.
Сложные изменения формул GAS могут потребовать обновления программного обеспечения узлов и различения через новые характеристики GAS. Это требует широкого принятия новой версии операторами узлов и одобрения для использования через предложения по управлению.
Будущая работа
В качестве первой GAS-рамки языка MOVE этот дизайн заложил основу для будущей работы:
Снижение затрат на выполнение: за счет улучшения эффективности компилятора и виртуальной машины.
Многоуровневое вычисление GAS: позволяет пользователям задавать отдельные бюджеты для выполнения и хранения, что обеспечивает более тонкую настройку определения максимальной цены GAS.
Снижение состояния расширения: исследуйте концепцию TTL для каждого проекта, автоматически удаляя неиспользуемые элементы состояния по истечении TTL, чтобы побудить разработчиков очищать данные в блокчейне.