rust - NEAR 协议(protocol) Rust 合约——near-sdk-rs 数据结构和 std 有什么区别?

标签 rust blockchain smartcontracts nearprotocol

在 Rust 中,我们在标准库中有许多可用的数据结构。 NEAR 协议(protocol)在 near-api-rs 中有一些优化的数据结构,但主要区别是什么?

最佳答案

Evgeny Kuzyakov (a Near protocol engineer)在 Discord 中回答:
如果您谈论 LookupMap 与 HashMap,那么区别在于 LookupMap 存储在 trie 中,而 HashMap 存储在内存中。
当调用合约上的方法时,合约会从存储树中读取并反序列化主结构。如果它包含一个 HashMap,那么这个映射的所有记录都将被读取和反序列化。如果它包含一个 LookupMap,那么只有 key_prefix 会被读取和反序列化,所以从 gas 的角度来看它更便宜。但是每次从 LookupMap 访问键/值时,都必须从 trie 中读取和反序列化它。

关于rust - NEAR 协议(protocol) Rust 合约——near-sdk-rs 数据结构和 std 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64082171/

相关文章:

ethereum - Solidity 中的重入 hack 不再适用于 pragma ^0.8.0

module - 在多个文件中使用模块时无法编译项目 : "imports can only refer to extern crate names passed with --extern"

blockchain - Hyperledger fabcar 示例结构显示连接失败错误

docker - Hyperledger Fabric对等容器未启动日志无法与Couchdb连接

blockchain - 智能合约——合约在哪里?

ethereum - NFT 可以用于 Web 应用程序的身份验证吗

ethereum - 调用外部契约(Contract)抛出错误 : VM Exception while processing transaction: revert

arrays - 如何为固定大小的 char 数组创建类型别名?

rust - 将数字转换为字节字符串文字,类似于 stringify!()

rust - 如何将自定义 serde 解串器用于计时时间戳?