七个概念构成了 Solana 开发的基础。从账户(Accounts)和程序(Programs)开始,然后了解指令(Instructions)如何组成交易(Transactions)。PDA、CPI 和费用(Fees)在此执行模型的基础上进一步延伸。
Accounts
Solana 将所有状态存储在账户中,账户是以 32 字节地址为键的键值存储。每个账户包含五个字段: lamports、data、owner、executable 和 rent_epoch。
Programs
Solana 的智能合约,编译为 sBPF。程序本身是无状态的,所有可变状态都存储在通过指令传递的独立数据账户中。
Instructions
执行某个程序的请求,包含程序 ID、账户列表和不透明的数据字节。多个指令可以组合成一个交易。
Transactions
Solana 上执行的原子单元。包含签名和消息 (账户地址、最近区块哈希以及已编译的指令)。最大 1232 字节,即将推出的 v1 格式将提升至 4096 字节。
Fees
每个签名的基础手续费为 5,000 lamports,可根据请求的计算单元数收取可选优先费。每笔交易最多可用 140 万计算单元。
Program Derived Addresses (PDAs)
由程序 ID 和种子确定性生成的地址。只有拥有该 PDA 的程序可以通过 invoke_signed 代表 PDA 签名。
Cross-Program Invocations (CPIs)
一个程序通过 invoke 或 invoke_signed 调用另一个程序。签名者和可写权限会传递给被调用方。最大指令堆栈深度为 5(顶层加 CPI)。
其他主题
资产
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?