Ресурсы сети, регистрация аккаунтов и контракты¶
Здесь описано поведение сети на уровне системного контракта 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.