MOVE язык впервые внедрил механизм GAS: полное объяснение расчета затрат в блокчейне

robot
Генерация тезисов в процессе

Первый дизайн GAS MOVE языка: анализ метода расчета GAS-расходов в блокчейне

Последняя версия языка MOVE изначально планировалось запустить без GAS, поэтому она не была подготовлена к механизму GAS. В последнее время один блокчейн проект представил первое решение по дизайну GAS для своего языка MOVE, что официально называется "приключением".

План GAS данного проекта разъясняет принципы, процессы, методы расчета, механизмы корректировки и отношение к принятию предложений сообщества, касающихся создания GAS. Измерение GAS является основной концепцией этого в блокчейне и многих других блокчейнов, определяющей абстрактный расчет объема вычислительных и хранилищных ресурсов, необходимых для выполнения и хранения транзакций в блокчейне. План GAS определит затраты на все выполняемые операции в блокчейне, которые будут использоваться для расчета расходов на GAS во время выполнения транзакций.

Процесс

Чтобы эффективно выполнить, процесс этого проекта в блокчейне выглядит следующим образом:

  1. Определение принципов
  2. Подготовить оценочную рамку, определить цену для каждого исполнения
  3. Создание системы измерения GAS и безопасной алгебры GAS для MOVE
  4. Импортируйте верхний GAS фрейм.
  5. Сделать GAS-фреймворк осознанным по отношению к хранилищу
  6. Дальнейшая детализация плана GAS

Принципы

Принципы, определенные проектом, включают в себя:

  1. Операционные затраты должны быть напрямую связаны с доступными ресурсами сети, такими как CPU, память, сеть, хранение I/O и использование пространства и т.д. С улучшением технологий и процессов, затраты на GAS должны снижаться.
  2. GAS должен быть установлен управлением в блокчейне и может быть бесшовно настроен.
  3. GAS может предотвратить DoS-атаки на фиксированные ресурсы сети, и может потребоваться быстрое изменение в зависимости от состояния сети через рекомендации по управлению.
  4. Цены на GAS отражают видение ускоренного роста и поддержания популярности блокчейна.
  5. Поощряйте делать качественные выборы в дизайне, такие как приоритет безопасности, модульность, утверждения и т. д.

Расчет GAS

При подаче заявки на сделку пользователю необходимо указать два количества в сделке:

  1. Максимальное количество GAS: измеряется в единицах GAS и обозначает максимальное количество единиц GAS, которое пользователь готов потратить на выполнение транзакции.
  2. Цена за единицу GAS: рассчитывается в восьмеричной системе, 1 восьмеричная = 0.00000001 местного токена.

В процессе выполнения транзакции будет взиматься:

  1. Фиксированные затраты: фиксированная база плюс дополнительные расходы на крупные сделки.
  2. Исполнительные расходы: используются для выполнения команды MOVE.
  3. Затраты на чтение: используются для чтения данных из постоянного хранилища.
  4. Стоимость записи: используется для записи данных в постоянное хранилище.

Конечный метод расчета торговых сборов: общее количество использованного GAS умножается на цену за единицу GAS. Например, если транзакция потребляет 670 единиц GAS, а пользователь указывает цену GAS в 100 Octa за единицу, то конечные торговые сборы составят 670 * 100 = 67000 Octa = 0.00067 местного токена.

Если в процессе выполнения транзакции исчерпается GAS, отправитель будет Charged согласно максимальному количеству 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 представлены с точностью примерно 3 знака, стоимость транзакции перевода составляет около 700 единиц GAS.

Участие сообщества

Члены сообщества могут:

  1. Найдите нерациональные стороны плана GAS
  2. Выразить озабоченность по поводу плана GAS, участвуя в обсуждениях сообщества
  3. Проголосовать по предложениям управления, связанным с GAS

Корректировка затрат на GAS

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

Сложные изменения формул GAS требуют обновления программного обеспечения узлов и широкого принятия со стороны операторов узлов. Наконец, необходимо опубликовать и утвердить предложение по управлению, чтобы использовать новую версию GAS.

Будущее работы

В качестве первой жизнеспособной GAS-структуры MOVE этот проект прокладывает путь для будущей работы:

  1. Снижение затрат на выполнение: улучшение эффективности компилятора и виртуальной машины
  2. Многомерный расчет GAS: позволяет пользователям задавать отдельный бюджет для выполнения и хранения
  3. Снижение избыточности: исследуйте концепцию TTL для каждого проекта и удаляйте не посещенные статусы проектов по истечении срока действия TTL.
MOVE-17.26%
GAS-13.88%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 6
  • Поделиться
комментарий
0/400
ShibaMillionairen'tvip
· 12ч назад
Какие расходы, какие расходы, просто неудачники платят деньги.
Посмотреть ОригиналОтветить0
SatoshiHeirvip
· 07-21 20:58
Хм, дизайн MOVE очевидно скопирован с 127-й страницы жёлтой книги Ethereum.
Посмотреть ОригиналОтветить0
GasWastervip
· 07-21 01:29
еще один день, еще одна оптимизация газа... убейте меня сейчас
Посмотреть ОригиналОтветить0
GasGrillMastervip
· 07-21 01:26
Мобильные платежи уже здесь, а вы всё ещё играете в это?
Посмотреть ОригиналОтветить0
ImpermanentTherapistvip
· 07-21 01:12
Снова инновации и траты денег
Посмотреть ОригиналОтветить0
CryptoMotivatorvip
· 07-21 01:09
Снова говорят о вопросе стоимости. Зачем паниковать?
Посмотреть ОригиналОтветить0
  • Закрепить