Как бесплатно просматривать данные в контракте NEAR protocol?

#nearprotocol

#nearprotocol

Вопрос:

Должен ли я платить за каждое чтение из NEAR protocol?

Как мне просмотреть значение, хранящееся в смарт-контракте NEAR protocol? (например, плата за размещение пула)

В чем разница между методами просмотра и изменения?

Ответ №1:

Должен ли я платить за каждое чтение из NEAR protocol?

TL; DR: Нет, вы не должны.

В NEAR protocol есть способы взаимодействия со смарт-контрактами:

  1. Отправьте транзакцию с помощью действия FunctionCall, в результате которого указанный метод будет выполнен на узлах, создающих чанк, и результат будет доказуем через блокчейн (в терминах near-api-js это «методы изменения»)
  2. Вызовите query(call_function) метод JSON RPC, который выполнит указанный метод на самом узле RPC в среде, доступной только для чтения, и вызов никогда не будет записан / подтвержден через блокчейн (в терминах near-api-js это «методы просмотра»)

Вы можете изменять состояние и связанные операции (например, вызовы по перекрестному контракту, передачу токенов или добавление / удаление ключа доступа) только с помощью первого подхода, поскольку блокчейн ожидает, что пользователь покроет расходы на выполнение, поэтому пользователь должен подписать свою транзакцию, и с него будет взиматься плата за выполнение.

Иногда вам не нужно изменять состояние, вместо этого вы хотите только прочитать значение, хранящееся в цепочке, и платить за это неоптимально (хотя, если вам нужно доказать, что операция была выполнена, это все равно может быть желательно). В этом случае вы бы предпочли второй подход. Вызов метода через JSON RPC является бесплатным и обеспечивает ограниченный контекст во время выполнения контракта, но в некоторых сценариях этого достаточно (например, когда вы хотите проверить, какова плата за размещение пула, или кто является владельцем контракта и т. Д.).