如何免费查看NEAR协议合约中的数据?

Vla*_*lov 3 nearprotocol

我应该为 NEAR 协议的每次读取付费吗?

如何查看NEAR协议智能合约中存储的值?(例如质押池费用)

查看方法和更改方法有什么区别?

Vla*_*lov 5

我应该为 NEAR 协议的每次读取付费吗?

TL;DR:不,你不应该。

在 NEAR 协议中,有以下几种与智能合约交互的方式:

  1. 使用 FunctionCall 操作提交交易,该操作将在块生成节点上执行指定的方法,并且结果将通过区块链进行证明(就近 api-js 而言,这些是“更改方法”)
  2. 调用query(call_function)JSON RPC 方法,这将在只读环境中在 RPC 节点本身上执行指定的方法,并且该调用永远不会通过区块链进行记录/证明(就近 API-JS 而言,这些是“查看方法” ”)

您只能通过第一种方法更改状态和链式操作(例如跨合约调用、代币转移或访问密钥添加/删除),因为区块链期望用户承担执行成本,因此用户应该签署其交易,并且他们将因执行而受到指控。

有时,您不需要更改状态,相反,您只想读取存储在链上的值,并且为其付费并不是最优的(尽管如果您需要证明操作已经完成,那么可能仍然是可取的)。在这种情况下,您更喜欢第二种方法。通过 JSON RPC 调用方法是免费的,并且在合约执行期间提供了有限的上下文,但在某些场景下就足够了(例如,当你想检查 stake 池费用是多少,或者谁是合约的所有者时, ETC)。