Описание учета издержек Контракта консенсусного выполнения VDS

15 Мар 2020
3
0
1
#1
С определенной точки зрения суть смарт-контракта - это байт-код. С помощью этих байт-кодов реализуются логический переход, вычисление, хранение и другие функции. На примере создания группы VDS 3-го поколения скомпилированный байт-код составляет 42 697 байт, который не включает в себя начальные настройки, например, название группы, правила группы и объявление группы. Самая дорогая часть—создание контракта (GasPrice, умноженный на GasLimit, является эффективной расходной частью, как в сети ethereum)





Эти 42 697 байт содержат логику, вычисления и типы данных группы 3-го поколения VDS, которые не могут быть дополнительно сокращены. Исключая колебания сети, загрузка этих данных в цепочку будет занимать 5 600 000 * 0,0000004 = 2,24 Vollar. Дополнительные данные, такие как название группы, правила группы и объявление группы, также необходимо преобразовать в код и рассчитать. То есть, чтобы обеспечить успешное выполнение контракта, вы должны заплатить достаточные Gas.





0,0000004 Vollar устанавливается в качестве нижнего предела GasPrice, в то время как остальное настраивается в соответствии с GasLimit. В GasLimit также есть ограничение, которое означает, что мы не можем добавить слишком много содержимого в смарт-контракт и выполнить его. Бесконечные циклы, такие как полоса Мёбиуса, никогда не могут быть выполнены в смарт-контракте, так как они превысили верхний предел 50 000 000 Vollar.





Количество Gas, необходимое для выполнения смарт-контракта, также варьируется в зависимости от способа выполнения смарт-контракта, сложности смарт-контракта и объема данных, которые необходимо изменить и сохранить. Даже если мы примем минимальный способ выполнения (также называется «Пустой функцией»), это будет стоить 21 000 GasLimit, преобразованных в плату за обработку в 0,0000004 * 21 000 = 0,0084 Vollar. Стоимость заключения контракта OTC составляет 260 000 * 0,0000004 = 1,04 Vollar, стоимость исполнения контракта 45 000 * 0,0000004 = 0,018 Vollar. Точность стоимости контракта OTC составляет около 0,001 Vollar.





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





Метод внешнего обращения контракта





Текущий групповой интерфейс включает в себя настройки: название группы, групповое объявление, правила группы, плата за вход в группу, образ транзакции (то есть торговые пары, которые админ может изменять и не это не будет влиять на фактическую транзакцию), “Не нуждается ли в одобрении администратора для входа в группу”, отказ от заявки о входе в группу, удаление членов группы, массовое разрешение входа в группу, увеличение верхнего предела членов группы, индивидуальная заявка на вход в группу, отмена индивидуальной заявки на вход в группу, выход из группы, увеличение залога группы, снятие залога группы.





Кроме некоторых из типов запросов, плата за контракт требуется для всех вышеупомянутых интерфейсов.





Рассматриваем настройку названия группы в качестве примера. Если наименовало группу «Я * 100», эта операция записана как «A». Тогда размер сгенерированного кода составляет 841 байт, а стоимость газа - 271 338 (Газ - это метод расчета стоимости, который специально используется для расчета стоимости контракта. Минимальная единица Vollar - шатоши, 0,000004 - 40 шатоши, 271 338 что означает 271,338 единиц из 40 шатоши. Плата за обработку составляет 271,338 * 0. 0000004 = 0,1085352 Vollar.





На основе операции A измените имя группы на «Я» и запишите эту операцию как «B». Размер сгенерированного кода составляет 201 байт, а стоимость газа составляет 41 915, плата за обработку 41 915 * 0,0000004 = 0,0016766 Vollar.


На основе операции B переименуйте имя группы в «Я» и запишите операцию в качестве C. Стоимость газа составляет 33 260, плата за обработку 33 260 * 0,0000004 = 0,0013304 Vollar.





Как видно, плата за обработку станет выше, если будет существенное изменение в содержании, плата за обработку становится ниже, если нет большой разницы.





Вывод


Принцип смарт-контракта VDS такой же, как и у Ethereum, который не может гарантировать точную затрату каждого выполненного контракта. VDS и ETH принимают предварительную оценку, которая обычно выше, чем фактическая стоимость.


Теперь для создания группы тратится около 2 Vollar. Создание контракта OTC вряд ли можно оптимизировать. Что может быть оптимизировано, так это интерфейс вызовов по контракту, например подтверждение получения суммы, можно рассчитать по цене около 0,02 Vollar в раз.