Skip to content

Газ і ліміти ​

До виклику контракту застосовуються два окремі лічильники:

  • Fuel усередині VM — кожна інструкція WASM і host-функція спалює fuel; виклик має бюджет.
  • Газ на рівні транзакції — те, що платить відправник, в uNRO. Див. Газ і комісії.

Після виклику спалений fuel перетворюється на одиниці газу: ceil(fuel / NEUROCHAIN_FUEL_PER_GAS_UNIT), щонайменше 1; за замовчуванням курс — 20 000 fuel за одиницю газу. Передплачені за виклик контракту 50 одиниць (GAS_CONTRACT_CALL) потім повертаються або доплачуються до фактичного значення.

Ліміти ​

КонстантаЗначенняЩо відбувається на межі
MAX_CONTRACT_GAS1 000 000 fuel на виклик верхнього рівняFuel вичерпано → виклик переривається, усе відкочується, комісія й nonce витрачаються
MAX_BYTECODE_SIZE512 KiBРозгортання відхилено
MAX_CALL_DEPTH8 вкладених call_contractcall_contract повертає -1
MAX_STATE_GROWTH_BYTES_PER_TX64 KiB нового сховища на викликset_storage нічого не пише
Один запит allocate1 MiBЗапит обрізається

Ціни fuel host-функцій ​

Host-функціяFuelКонстанта
get_storage800 + 5 × довжина значенняFUEL_STORAGE_READ_BASE, FUEL_STORAGE_READ_PER_BYTE
set_storage5 000 + 50 × (довжина ключа + значення)FUEL_STORAGE_WRITE_BASE, FUEL_STORAGE_WRITE_PER_BYTE

Інші host-функції та звичайні інструкції WASM обліковуються стандартними цінами fuel інтерпретатора. Заплановані AI host-функції отримають кожна свою іменовану ціну fuel.

Це константи протоколу; контрактам і клієнтам не варто покладатися на те, що їхні точні значення не зміняться.