Перейти к содержанию

Ресурсы сети, регистрация аккаунтов и контракты

Здесь описано поведение сети на уровне системного контракта eosio.system: как выдаются NET, CPU и RAM, как создаются аккаунты и кто может обновлять код контрактов. Это справочный текст для операторов и разработчиков, без привязки к исходному коду репозитория контрактов.

Ресурсы: powerup

Полоса сети (NET), процессорное время (CPU) и квота RAM выдаются через действие powerup: это временная аренда на фиксированное число дней, которое задаётся параметром сети (powerup_days).

  • Указываются плательщик и получатель ресурсов; оплата — в основном токене сети.
  • Сумма распределяется между рынками NET, CPU и RAM (условно четверть, четверть и половина платежа).
  • При обычной аренде фиксируется срок; по его окончании ресурсы возвращаются в общий пул. Очередь истекших аренд обрабатывается в том числе действием powerupexec (его может вызвать любой аккаунт в пределах лимита за одну транзакцию).
  • Если квота RAM оказывается ниже уже используемого объёма, контракт ведёт учёт «долга» по RAM; чтобы его погасить, нужна достаточная сумма в рамках очередного powerup, иначе транзакция будет отклонена.

Практические примеры вызова через cleos push action: руководство cleos (how-to) — раздел powerup.

Создание аккаунтов

Новые аккаунты в продуктовом контуре создаются через сценарий с участием аккаунта регистратора и действия createaccnt: с кооператива списывается регистрационный взнос, затем от имени системного аккаунта выполняется newaccount. При включённом рынке powerup новому аккаунту выдаются стартовые ресурсы через powerup в режиме передачи (transfer), чтобы обеспечить работоспособность аккаунта.

Протокольное действие newaccount в сети принимается при авторизации регистратора или самого eosio.system, а не от произвольного «создателя» с кошелька разработчика.

Обновление кода контрактов (WASM)

Обновление программного кода на аккаунте проходит с учётом правил системного контракта: менять WASM могут только аккаунты, включённые в белый список контрактов. Остальные попытки set contract / смены кода на цепи будут отклонены.

Инструмент cleos по-прежнему используется для сборки и отправки транзакций; ограничения задаёт сеть, а не только интерфейс CLI.