本文分析了 Solana 和 Anchor 框架为何缺乏 Solidity 中的 Fallback、view、pure、payable 函数及修饰符,指出其设计上账户预声明、数据公开性及 Rust 语言特性导致的差异,并提及缺乏内置单位的问题。
本文介绍了在 Solana Anchor 中使用 Rust 读取账户余额的方法,阐释了 UncheckedAccount 的作用与安全性,解释了无需 [account] 结构体的原因,并提及账户余额与免租机制的相关注意事项。
本文详细解析了 Solana 的存储成本计算、租金免租机制、账户大小限制及动态调整方法,结合 Rust 示例展示了如何初始化和扩展账户,并与以太坊成本进行了对比。
本文通过在 Solana 的 Anchor 框架中填充 seeds 参数,结合 Rust 和 Typescript 代码示例,展示了如何模拟 Solidity 中的映射表和嵌套映射表功能,利用 seeds 生成唯一账户地址实现键值存储。
本文介绍了通过 Solana Web3.js 和 Anchor 从前端读取账户数据的三种方法:自家 Anchor 程序用 fetch、跨程序读取需 IDL、任意账户用 Web3.js 自定义反序列化,强调了序列化与 IDL 的作用,为 Solana dApp 开发提供指导。
本文基于前述 Solana 账户初始化内容,扩展了如何通过 Anchor 框架实现账户数据的读写操作,通过新增 set() 函数展示数据写入流程,优化代码结构,并介绍了使用命令行和程序内方法读取账户数据的技术细节,最终实现了一个简单的计数器功能。
本文对比了以太坊和 Solana 的数据存储机制,介绍了 Solana 账户模型的统一设计及其与以太坊存储槽的差异,并通过将 Solidity 示例转换为 Anchor 代码,详细讲解了 Solana 中账户初始化的必要性、实现步骤及测试方法,强调了其显式初始化和防止重复初始化的特性。
本文对比了以太坊和 Solana 的交易费用与计算模型,深入探讨了 Solana 计算单元(CU)的使用、优化策略及字节码执行逻辑,并通过示例验证了 CU 消耗与费用无关的特点,同时介绍了 eBPF 和 SBF 的技术背景。
在 Solidity 中,msg.sender 表示调用智能合约函数的地址,tx.origin 表示签署交易的钱包地址。本文将探讨 Solana 中类似的调用者识别机制及 onlyOwner 模式的实现。
本节将探讨 Solana 中的日志和事件日志,以及如何查询历史交易。