如何在 Solana 中实现 Solidity 的映射?
如何在Solana中实现Solidity的映射功能? 我需要的是一张具有任意数量条目的地图(它会不断增长)。
那么如何计算租金减免以及如何实际操作呢? 有可能吗?
我只需要 1 个帐户,因此程序中需要 1 个全局哈希图。
我会将键存储为整数,将值存储为字符串。
How to achieve the functionality of Solidity's mapping in Solana?
What I need is a map with an arbitrary number of entries (it'll be evergrowing).
So how to calculate the rent exemption and how to actually do this?
Is it even possible?
I just need 1 account, so 1 global hashmap in a program.
I would be storing keys as integers and values as strings.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 solana 中,更常见的是使用 PDA 来实现此目的,将密钥编码在种子内并使用帐户数据来存储值。
in solana it's more common to use PDAs for this purpose, encode the key inside the seed and use the account data for storing the value.
在 Solana 中,您可以使用基于帐户的存储模型和 PDA(程序派生地址)来创建全局哈希图。每个键值对都可以存储在一个唯一的帐户中,密钥作为 PDA 种子的一部分。要计算租金豁免,请根据序列化数据大小使用 Solana 的 get_minimum_balance_for_rent_exemption 函数。对于单个全局哈希图,通过程序逻辑管理条目,使用 borsh 等库有效地序列化/反序列化键和值。
In Solana, you can use the account-based storage model with PDAs (Program Derived Addresses) to create a global hashmap. Each key-value pair can be stored in a unique account, with the key serving as part of the PDA seed. To calculate rent exemption, use Solana's get_minimum_balance_for_rent_exemption function based on the serialized data size. For a single global hashmap, manage entries via program logic, serializing/deserializing the keys and values efficiently with libraries like borsh.