Первый дизайн GAS в языке MOVE: метод расчета затрат GAS в блокчейне
Предыдущая версия языка MOVE изначально планировалась для работы без GAS, поэтому не была подготовлена к плану GAS. Недавно созданный план GAS для одной из публичных цепочек стал первым дизайном GAS для языка MOVE и называется "приключением".
Этот план GAS объясняет принципы, процессы, методы расчета, последующие корректировки и принятие предложений сообщества.
GAS-измерение является основной концепцией многих блокчейнов, оно определяет абстрактные вычисления объема вычислительных и хранилищных ресурсов, необходимых для выполнения и хранения транзакций в блокчейне. GAS-план определяет стоимость всех затрат на выполнение в блокчейне, используемую для расчета затрат на GAS, использованный во время выполнения транзакции.
процесс
Для эффективного выполнения, в блокчейне процесс следующий:
Определение принципов
Подготовьте оценочную рамку, определите цену для каждого исполнения
Создание системы измерения GAS и безопасной алгебры GAS для MOVE
Импортировать верхний GAS фреймворк
Сделайте GAS-рамку осведомленной о хранилище
Далее уточнить план GAS
принцип
Определенные принципы включают:
Операционные расходы должны быть непосредственно связаны с доступными ресурсами сети и снижаться с прогрессом технологий.
GAS должен быть установлен управлением в блокчейне, его можно бесшовно настраивать.
GAS может предотвратить атаки DoS и быстро адаптироваться в зависимости от состояния сети.
Цены на GAS должны отражать видение ускоренного роста и поддержания доступности в блокчейне.
Поощряйте делать хорошие выборы в дизайне, такие как приоритизация безопасности, модульности и т.д.
расчет GAS
Пользователь должен указать при отправке транзакции:
Максимальное количество GAS: максимальное количество единиц GAS, которое пользователь готов потратить на выполнение сделки.
Цена на GAS: рассчитывается в восьмеричном виде за единицу GAS, 1 восьмеричное = 0.00000001 APT
В процессе выполнения сделки будет взиматься:
Фиксированные расходы
Стоимость выполнения команды MOVE
Стоимость чтения данных из постоянного хранилища
Стоимость записи данных в постоянное хранилище
Итоговая комиссия за транзакцию = Общее количество использованного GAS × Цена за единицу GAS
Например, если транзакция потребляет 670 единиц GAS, а заданная пользователем цена за единицу GAS составляет 100 Octa/единица, то окончательная стоимость составит 670 × 100 = 67000 Octa = 0.00067 APT.
Если во время выполнения сделки исчерпается GAS, отправитель будет взиматься плата по максимальному объему GAS, изменения, внесенные в эту сделку, будут отменены.
Создание плана GAS
Основная конфигурация
План GAS включает в себя компоненты, не связанные с отдельной операцией, такие как размер транзакции и максимальное количество единиц GAS.
Масштаб сделки
Большинство объемов транзакций находятся на уровне тысяч байт. Модуль MOVE может достигать нескольких тысяч байт, а некоторый фреймворк составляет около 100 КБ. Пользовательские модули обычно находятся в диапазоне от 4 до 40 КБ. Изначально объем транзакции был установлен на уровне 32 КБ, затем был скорректирован до 64 КБ на основе отзывов сообщества.
Слишком большие транзакции увеличивают стоимость пропускной способности сети и могут повлиять на производительность. Пул памяти может игнорировать большие транзакции, поэтому необходимо добиться баланса между максимальным размером и доступностью.
Максимальное количество GAS
Максимальная единица GAS в плане GAS определяет максимальное количество операций, которые могут быть выполнены в одной транзакции. Слишком высокая установка может негативно повлиять на производительность в блокчейне. По тестам, даже с максимальным обновлением фрейма, используется менее 90% от максимальной единицы GAS, установленной на 1,000,000(.
Выполнение
Оценка затрат на выполнение за счет построения базовой структуры и анализа Move VM с помощью Valgrind. Вывод представляет собой аннотированный исходный код, показывающий количество машинных инструкций, генерируемых каждой строкой кода.
На основе этого грубо оцените относительную стоимость всех команд MOVE и встроенных функций. Обратите внимание, что существуют некоторые проблемы с встроенными функциями, которые можно решить путем сложения чисел.
В конечном итоге, рассматривая примеры кода для повышения надежности и безопасности системы, получаем количество выполняемых машинных инструкций. Сравнив это число с хранением и максимальным объемом GAS, определите текущее значение в плане GAS.
Хранение
При доступе к элементам состояния или данным книги учета узел отправляет запросы на чтение и запись на устройство хранения. Общее количество обращений к данным в секунду зависит от пропускной способности устройства хранения и емкости IOPS. Доступ к данным представляет собой мгновенно дефицитный ресурс, за который пользователи конкурируют на рынке сборов в условиях нагрузки на систему. Стоимость использования диска для записи данных в блокчейне является постоянной.
Доступ и хранение любого элемента состояния влекут за собой затраты, связанные со структурой данных, необходимой для проверки всего состояния в блокчейне. Эти затраты зависят от базиса различных элементов состояния )$2^{256}$(. Также существуют затраты, пропорциональные размеру каждого элемента.
За исключением случаев, описанных в следующем разделе, стоимость операций с элементами состояния ) составляет:
Доступ к элементам состояния делится на три типа: чтение, создание или запись. Доступ оплачивается в зависимости от стоимости элемента и стоимости байта.
Чтение операций наиболее распространено, ограничено только временной нехваткой ресурсов. Стоимость чтения калибруется в зависимости от IOPS диска и пропускной способности эталонных аппаратных спецификаций.
Создание операции добавляет новые элементы в хранилище состояния, увеличивая стоимость структуры данных аутентификации, и, следовательно, является самой дорогой. Стоимость создания калибруется в зависимости от объема дискового пространства, доступного в сети.
Операции записи обновляют существующие элементы и не создают дополнительной нагрузки в структуре данных аутентификации. Однако изменение существующих записей на большее количество байтов все равно может занять дисковое пространство, поэтому за байты в обновленных элементах взимается такая же плата, как и за создание.
Стоимость хранения рассчитывается на основе каждой транзакции: даже если один и тот же ресурс читается/записывается несколько раз, взимается только одна плата.
Основываясь на приведенных выше соображениях, определено 6 параметров GAS, составляющих общую стоимость:
per_item_read:Калибровка по IOPs
per_byte_read: калибровка в зависимости от фактической пропускной способности
per_item_create:Калибровка в соответствии с общей целью проекта
per_byte_create: Калибровка ) по целевому общему размеру, каждый элемент содержит первый 1KB ###
per_item_write: То же, что и per_item_read
per_byte_write: То же, что и per_byte_create
( стабильная стоимость единицы GAS
Каждая операция и сама транзакция требуют фиксированной единичной стоимости относительно затрат на хранение и выполнение, независимо от рыночной стоимости, рассчитанной в APT или фиате. Фиксированная единичная стоимость GAS помогает поддерживать стабильность плана GAS и отрывает его от рыночной стоимости APT. Правильный выбор точности единицы GAS помогает поддерживать стабильность плана GAS. Учитывая это, единицы GAS представлены с точностью примерно до 3 знаков. Таким образом, стоимость транзакции перевода составляет примерно 700 единиц GAS.
) участие сообщества
Члены сообщества могут:
Найдите неразумные моменты в плане GAS
Выразите беспокойство и участвуйте в обсуждении
Проголосовать по предложениям по управлению, связанным с GAS
Корректировка стоимости GAS
План GAS используется для конфигурации хранилища в блокчейне, его можно изменить с помощью предложений по управлению и без проблем добавлять новые инструкции или нативные функции.
Дизайн GAS-плана масштабируемый, что позволяет обновление через предложения по управлению. С постоянным улучшением и учетом отзывов пользователей параметры GAS могут быть скорректированы со временем.
Иногда формулы GAS могут требовать сложных изменений. Эти формулы обычно кодируются на Rust и различаются по признакам GAS в блокчейне. Для обновления этих формул необходимо обновить программное обеспечение узлов, широко применять их и утвердить новое поколение GAS через предложения по управлению.
Будущая работа
В качестве первого жизнеспособного GAS-фрейма MOVE, будущие направления работы включают:
Снижение затрат на выполнение: использование реальной модели GAS для отображения эффективности компилятора и виртуальной машины, улучшение для снижения затрат на выполнение
Многоуровневый расчет 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.
6 Лайков
Награда
6
5
Поделиться
комментарий
0/400
rugged_again
· 10ч назад
Говорить об этом не так важно, как сказать, насколько Газ может снизиться?
Посмотреть ОригиналОтветить0
MetaverseMigrant
· 10ч назад
Эх, этот Газ может быть еще сложнее?
Посмотреть ОригиналОтветить0
NewDAOdreamer
· 10ч назад
Получение денег наоборот — это боль всей жизни кодера.
MOVE первооткрыватель дизайна GAS: анализ метода вычисления потребления ресурсов в блокчейне
Первый дизайн GAS в языке MOVE: метод расчета затрат GAS в блокчейне
Предыдущая версия языка MOVE изначально планировалась для работы без GAS, поэтому не была подготовлена к плану GAS. Недавно созданный план GAS для одной из публичных цепочек стал первым дизайном GAS для языка MOVE и называется "приключением".
Этот план GAS объясняет принципы, процессы, методы расчета, последующие корректировки и принятие предложений сообщества.
GAS-измерение является основной концепцией многих блокчейнов, оно определяет абстрактные вычисления объема вычислительных и хранилищных ресурсов, необходимых для выполнения и хранения транзакций в блокчейне. GAS-план определяет стоимость всех затрат на выполнение в блокчейне, используемую для расчета затрат на GAS, использованный во время выполнения транзакции.
процесс
Для эффективного выполнения, в блокчейне процесс следующий:
принцип
Определенные принципы включают:
расчет GAS
Пользователь должен указать при отправке транзакции:
В процессе выполнения сделки будет взиматься:
Итоговая комиссия за транзакцию = Общее количество использованного GAS × Цена за единицу GAS
Например, если транзакция потребляет 670 единиц GAS, а заданная пользователем цена за единицу GAS составляет 100 Octa/единица, то окончательная стоимость составит 670 × 100 = 67000 Octa = 0.00067 APT.
Если во время выполнения сделки исчерпается GAS, отправитель будет взиматься плата по максимальному объему GAS, изменения, внесенные в эту сделку, будут отменены.
Создание плана GAS
План GAS включает в себя компоненты, не связанные с отдельной операцией, такие как размер транзакции и максимальное количество единиц GAS.
Большинство объемов транзакций находятся на уровне тысяч байт. Модуль MOVE может достигать нескольких тысяч байт, а некоторый фреймворк составляет около 100 КБ. Пользовательские модули обычно находятся в диапазоне от 4 до 40 КБ. Изначально объем транзакции был установлен на уровне 32 КБ, затем был скорректирован до 64 КБ на основе отзывов сообщества.
Слишком большие транзакции увеличивают стоимость пропускной способности сети и могут повлиять на производительность. Пул памяти может игнорировать большие транзакции, поэтому необходимо добиться баланса между максимальным размером и доступностью.
Максимальная единица GAS в плане GAS определяет максимальное количество операций, которые могут быть выполнены в одной транзакции. Слишком высокая установка может негативно повлиять на производительность в блокчейне. По тестам, даже с максимальным обновлением фрейма, используется менее 90% от максимальной единицы GAS, установленной на 1,000,000(.
Оценка затрат на выполнение за счет построения базовой структуры и анализа Move VM с помощью Valgrind. Вывод представляет собой аннотированный исходный код, показывающий количество машинных инструкций, генерируемых каждой строкой кода.
На основе этого грубо оцените относительную стоимость всех команд MOVE и встроенных функций. Обратите внимание, что существуют некоторые проблемы с встроенными функциями, которые можно решить путем сложения чисел.
В конечном итоге, рассматривая примеры кода для повышения надежности и безопасности системы, получаем количество выполняемых машинных инструкций. Сравнив это число с хранением и максимальным объемом GAS, определите текущее значение в плане GAS.
При доступе к элементам состояния или данным книги учета узел отправляет запросы на чтение и запись на устройство хранения. Общее количество обращений к данным в секунду зависит от пропускной способности устройства хранения и емкости IOPS. Доступ к данным представляет собой мгновенно дефицитный ресурс, за который пользователи конкурируют на рынке сборов в условиях нагрузки на систему. Стоимость использования диска для записи данных в блокчейне является постоянной.
Доступ и хранение любого элемента состояния влекут за собой затраты, связанные со структурой данных, необходимой для проверки всего состояния в блокчейне. Эти затраты зависят от базиса различных элементов состояния )$2^{256}$(. Также существуют затраты, пропорциональные размеру каждого элемента.
За исключением случаев, описанных в следующем разделе, стоимость операций с элементами состояния ) составляет:
Хранение GAS-оплаты = item_fee + (byte_fee × bytes)
( Чтение, создание и запись
Доступ к элементам состояния делится на три типа: чтение, создание или запись. Доступ оплачивается в зависимости от стоимости элемента и стоимости байта.
Чтение операций наиболее распространено, ограничено только временной нехваткой ресурсов. Стоимость чтения калибруется в зависимости от IOPS диска и пропускной способности эталонных аппаратных спецификаций.
Создание операции добавляет новые элементы в хранилище состояния, увеличивая стоимость структуры данных аутентификации, и, следовательно, является самой дорогой. Стоимость создания калибруется в зависимости от объема дискового пространства, доступного в сети.
Операции записи обновляют существующие элементы и не создают дополнительной нагрузки в структуре данных аутентификации. Однако изменение существующих записей на большее количество байтов все равно может занять дисковое пространство, поэтому за байты в обновленных элементах взимается такая же плата, как и за создание.
Стоимость хранения рассчитывается на основе каждой транзакции: даже если один и тот же ресурс читается/записывается несколько раз, взимается только одна плата.
Основываясь на приведенных выше соображениях, определено 6 параметров GAS, составляющих общую стоимость:
( стабильная стоимость единицы GAS
Каждая операция и сама транзакция требуют фиксированной единичной стоимости относительно затрат на хранение и выполнение, независимо от рыночной стоимости, рассчитанной в APT или фиате. Фиксированная единичная стоимость GAS помогает поддерживать стабильность плана GAS и отрывает его от рыночной стоимости APT. Правильный выбор точности единицы GAS помогает поддерживать стабильность плана GAS. Учитывая это, единицы GAS представлены с точностью примерно до 3 знаков. Таким образом, стоимость транзакции перевода составляет примерно 700 единиц GAS.
) участие сообщества
Члены сообщества могут:
Корректировка стоимости GAS
План GAS используется для конфигурации хранилища в блокчейне, его можно изменить с помощью предложений по управлению и без проблем добавлять новые инструкции или нативные функции.
Дизайн GAS-плана масштабируемый, что позволяет обновление через предложения по управлению. С постоянным улучшением и учетом отзывов пользователей параметры GAS могут быть скорректированы со временем.
Иногда формулы GAS могут требовать сложных изменений. Эти формулы обычно кодируются на Rust и различаются по признакам GAS в блокчейне. Для обновления этих формул необходимо обновить программное обеспечение узлов, широко применять их и утвердить новое поколение GAS через предложения по управлению.
Будущая работа
В качестве первого жизнеспособного GAS-фрейма MOVE, будущие направления работы включают:
Снижение затрат на выполнение: использование реальной модели GAS для отображения эффективности компилятора и виртуальной машины, улучшение для снижения затрат на выполнение
Многоуровневый расчет GAS: позволяет пользователям задавать отдельные бюджеты для выполнения и хранения, избегая высоких цен на GAS из-за проблем с качеством кода.
Снижение громоздкости: исследовать концепцию TTL для каждого проекта, удалять не посещенные состояния проектов по истечении TTL