Solana 开发的基础由七个核心概念组成。建议按照顺序阅读账户、程序、指令、交易和手续费,因为每一部分都建立在前一部分的基础上。在学习程序派生地址(PDA)前,请先阅读账户和程序。在学习跨程序调用(CPI)前,请先阅读程序、指令和 PDA。
Accounts
Solana 将所有状态存储在账户中,账户是以 32 字节地址为键的键值存储。每个账户包含五个字段: lamports、data、owner、executable 和 rent_epoch。
Programs
Solana 的智能合约,编译为 sBPF。程序本身是无状态的,所有可变状态都存储在通过指令传递的独立数据账户中。
Instructions
执行某个程序的请求,包含程序 ID、账户列表和不透明的数据字节。多个指令可以组合成一个交易。
Transactions
Solana 上的原子执行单元。包含签名和消息(账户地址、最近区块哈希和已编译指令)。最大 1232 字节。
Fees
每个签名的基础手续费为 5,000 lamports,可根据请求的计算单元数收取可选优先费。每笔交易最多可用 140 万计算单元。
Program Derived Addresses (PDAs)
由程序 ID 和种子确定性生成的地址。只有拥有该 PDA 的程序可以通过 invoke_signed 代表 PDA 签名。
Cross-Program Invocations (CPIs)
一个程序通过 invoke 或 invoke_signed 调用另一个程序。签名者和可写权限会传递给被调用方。最大指令堆栈深度为 5(顶层加 CPI)。
其他主题
Tokens
Solana 上的同质化和非同质化数字资产(SPL Token,Token-2022)。
Clusters and Endpoints
Mainnet、Devnet 和 Testnet:为 JSON-RPC 请求服务的 validator 组。
| Cluster | 公共 RPC 端点 | 用途 |
|---|---|---|
| Mainnet | https://api.mainnet.solana.com | 生产环境 |
| Devnet | https://api.devnet.solana.com | 开发者实验 |
| Testnet | https://api.testnet.solana.com | validator 测试 |
Is this page helpful?