Последние 2 недели наша команда занималась запуском альфа версии инфраструктуры умных контрактов Робономики в Ethereum mainnet. Главная задача, которую мы решаем альфа релизом — это внедрение версионности платформы Робономики и тестирование механизма эмиссии XRT в соотвествии с моделью описанной в белой бумаге.
Эмиссия XRT за исполнение программы Робономики в Ethereum
Настоятельно рекомендую прочитать пункты 5.2 , 5.3 , 6 белой бумаги Робономики, чтобы понять принцип работы провайдеров и модели эмиссии XRT.
- 890 287 газа на создание контрактного обязательства;
- 168 153 газа на финализацию контрактного обязательства.
Как легко заметить, есть расхождение между количеством всего утилизированного газа на создание и финализацию контрактного обязательства и эмиссией XRT. При это в Robonomics whitepaper описано правило: Emission of 1 wn = 1 gas utilized by Robonomics. Давайте разберемся, почему есть отличия.
Слепая зона для gasleft() в solidity
В solidity есть глобальная переменная, позволяющая считать оставшийся газ при исполнении контракта виртуальной машиной эфириум.
При создании контракта обязательства мы в самом начале записываем количество оставшегося газа, т.е. сколько всего газа выделено на исполнение программы. И в конце исполнения функции на создание обязательства или финализацию мы также проверяем, сколько осталось газа. Таким образом, внутри исполнения функции можно понять, сколько вычислений она стоила. На основании этих данных можно безопасно из контракта вызвать функцию эмиссии новых монеток.
Сейчас есть сложность с тем, что до момента начала исполнения функции создания или финализации обязательства и после выхода из данных функций, виртуальная машина эфириума все равно тратит газ, который мы «не видим». На период альфа версии сети введён коэффициент погрешности в размере 110 525 Wn, а мы и дальше будем копать, как можно довести модель эмиссии на выходе до показателя, максимально приближенного к общим затратам провайдера. Погрешность между утилизированным газом и эмиссией Wn с учётом включенного коеффициента погрешности составляет на сегодня примерно 5 — 15%. Не критично, но будем работать над улучшением.
Попробовать эмиссию XRT в июне
У нас готова инструкция, с помощью которой можно создать свой маяк и «поработать» на нём, получив эмиссию XRT. Предупреждаем, что это альфа релиз, и то, что вы «намайните», не будет оригинальным токеном XRT, но мы готовим баунти программу, воспользовавшись которой, можно будет перевести XRT alfa в будущие «оригинальные». Документ доступен для комментариев, так что не стесняйтесь, пишите. Ссылка на документ: https://docs.google.com/document/d/1x-TDzqpvUMKMarfW_NZZqmqe1tFM7_9pVQ44Oxz4QkM/edit?usp=sharing
Ссылка на XRTD, программу-генератор спроса и предложения: https://yadi.sk/d/rORHPEHH3Y7TBD