七个概念构成了 Solana 开发的基础。从账户和程序开始,然后了解指令如何构成交易。PDA、CPI 和费用在此执行模型之上进一步延伸。
账户
Solana 将所有状态存储在账户中,这是一个以 32 字节地址为键的键值存储。每个账户有五个字段:lamport、数据、所有者、可执行标志和 rent_epoch。
程序
Solana 的智能合约,编译为 sBPF。程序是无状态的,所有可变状态存储在通过指令传入的独立数据账户中。
指令
向某个程序发起执行请求,包含程序 ID、账户列表和不透明数据字节。多条指令可组合成一笔交易。
交易
Solana 上的原子执行单元。包含签名和消息(账户地址、最近的区块哈希及已编译的指令)。最大 1232 字节,使用 v1 格式时最大 4096 字节。
费用
每个签名的基础费用为 5,000 lamport,另外还有基于所请求计算单元的可选优先费用。每笔交易最多可使用 140 万个计算单元。
Program Derived Addresses(PDA)
由程序 ID 和种子确定性派生的地址。只有拥有该 PDA 的程序才能通过 invoke_signed 代表该 PDA 进行签名。
Cross-Program Invocations(CPI)
一个程序通过 invoke 或 invoke_signed 调用另一个程序。签名者和可写权限会延伸至被调用方。指令调用栈最大深度为 5(顶层调用加上 CPI)。
扩展主题
| 集群 | 公共 RPC 端点 | 用途 |
|---|---|---|
| 主网 | https://api.mainnet.solana.com | 生产环境 |
| 开发网 | https://api.devnet.solana.com | 开发者测试 |
| 测试网 | https://api.testnet.solana.com | validator 测试 |
Is this page helpful?