Итак, если я правильно понимаю, view
функция только читает данные из ethereum и не изменяет никакого состояния, а pure
функция даже не читает данные, и они предназначены для таких случаев, какreturn 1+1;
Если это так, будут ли они злоупотреблять, поскольку они не стоят никакого газа? Например, могу ли я просто использовать их для бесплатных вычислений? Что произойдет, если у меня будет бесконечный цикл в представлении или чистой функции?
TLDR : они не будут.
Просто чтобы добавить к хорошему ответу @Shawn.
Да, вы можете злоупотреблять ими. Но поскольку вычисления pure
и view
выполняются только на вашем собственном узле, вы только повредите свой собственный узел. Вы никак не повредите сети Ethereum. Если вы вызовете функцию (функции) достаточно, вы можете даже сломать свой узел, но это все равно никак не повредит сети.
pure
и view
функции являются «бесплатными» только тогда, когда вы вызываете их извне, так как вы вызываете эту функцию саму по себе и запускаете расчет на своем узле. Итак, если у вас есть функция, которая возвращает «1+1», да, вы можете вызывать эту отдельную функцию просмотра столько раз, сколько хотите бесплатно, даже без создания транзакции.
Однако, если вы используете функцию view
или pure
внутри внутренней функции, которая ДЕЙСТВИТЕЛЬНО стоит газ, вы будете платить за эти расчеты, как обычно.
нееееет
Лаури Пелтонен
нееееет
Лаури Пелтонен
нееееет
Лаури Пелтонен
нееееет
Лаури Пелтонен