本页面集中列出了核心概念页面中提到的所有运行时常量。每个常量都链接到其在 agave validator 客户端或 solana-sdk 中的源定义。
账户
| 常量 | 数值 | 描述 | 来源 |
|---|---|---|---|
MAX_ACCOUNT_DATA_LEN | 10 MiB(10,485,760 字节) | 账户数据最大容量 | MAX_ACCOUNT_DATA_LEN |
MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION | 20 MiB(20,971,520 字节) | 每笔交易可分配的新账户数据最大值 | MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION |
MAX_PERMITTED_DATA_INCREASE | 10,240 字节(10 KiB) | 每次 CPI 最大扩容 | MAX_PERMITTED_DATA_INCREASE |
TRANSACTION_ACCOUNT_BASE_SIZE | 64 字节 | 每个账户计入已加载数据大小的开销 | TRANSACTION_ACCOUNT_BASE_SIZE |
交易
| 常量 | 数值 | 描述 | 来源 |
|---|---|---|---|
PACKET_DATA_SIZE | 1,232 字节 | 最大交易大小(IPv6 MTU 减去头部) | PACKET_DATA_SIZE |
MAX_ACCOUNTS_PER_TRANSACTION | 256 | 来自 u8 索引编码的硬上限。运行时强制限制为 64(当 increase_tx_account_lock_limit 激活时为 128,目前未激活)。 | MAX_ACCOUNTS_PER_TRANSACTION |
MAX_PROCESSING_AGE | 150 slots | 区块哈希过期窗口 | MAX_PROCESSING_AGE |
MAX_RECENT_BLOCKHASHES | 300 entries | BlockhashQueue 大小 | MAX_RECENT_BLOCKHASHES |
MAX_SIGNATURES_PER_PACKET | 12 | 每个交易包的最大签名数 | MAX_SIGNATURES_PER_PACKET |
指令
| 常量 | 数值 | 描述 | 来源 |
|---|---|---|---|
MAX_INSTRUCTION_TRACE_LENGTH | 64 | 指令总数上限(顶层 + CPI) | MAX_INSTRUCTION_TRACE_LENGTH |
MAX_INSTRUCTION_DATA_LEN | 10,240 字节(10 KiB) | 每条指令的最大 instruction data | MAX_INSTRUCTION_DATA_LEN |
程序
| 常量 | 值 | 描述 | 来源 |
|---|---|---|---|
MAX_LOADED_ACCOUNTS_DATA_SIZE_BYTES | 64 MiB(67,108,864 字节) | 默认加载账户数据大小限制 | MAX_LOADED_ACCOUNTS_DATA_SIZE_BYTES |
PROGRAM_OWNERS | BPF Loader Upgradeable、BPF Loader、BPF Loader Deprecated、Loader V4 | 有效的程序所有者加载器 | PROGRAM_OWNERS |
STACK_FRAME_SIZE | 4,096 字节 | SBF 栈帧大小 | STACK_FRAME_SIZE |
MAX_CALL_DEPTH | 64 | 最大 SBF 到 SBF 调用深度 | MAX_CALL_DEPTH |
MAX_LOADED_ENTRY_COUNT | 512 | 最大缓存程序数量 | MAX_LOADED_ENTRY_COUNT |
DELAY_VISIBILITY_SLOT_OFFSET | 1 slot | 程序部署可见性延迟 | DELAY_VISIBILITY_SLOT_OFFSET |
费用与计算
| 常量 | 值 | 描述 | 来源 |
|---|---|---|---|
DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT | 200,000 CUs | 每条指令的默认 CU 限制 | DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT |
MAX_BUILTIN_ALLOCATION_COMPUTE_UNIT_LIMIT | 3,000 CUs | 每条内置指令的默认 CU 限制 | MAX_BUILTIN_ALLOCATION_COMPUTE_UNIT_LIMIT |
MAX_COMPUTE_UNIT_LIMIT | 1,400,000 CUs | 每笔交易的最大 CU 限制 | MAX_COMPUTE_UNIT_LIMIT |
lamports_per_signature | 5,000 lamports | 每个签名的默认基础费用 | FeeStructure::default() |
MICRO_LAMPORTS_PER_LAMPORT | 1,000,000 | 每 lamport 的 micro-lamport 转换比 | MICRO_LAMPORTS_PER_LAMPORT |
MAX_HEAP_FRAME_BYTES | 262,144 字节(256 KiB) | 最大 BPF 堆大小 | MAX_HEAP_FRAME_BYTES |
DEFAULT_HEAP_COST | 每 32 KiB 页面 8 CUs | 分配堆页面的成本 | DEFAULT_HEAP_COST |
HEAP_LENGTH | 32,768 字节(32 KiB) | 默认 BPF 堆大小 | HEAP_LENGTH |
WRITE_LOCK_UNITS | 300 CUs | 每个写锁定账户的计算成本 | WRITE_LOCK_UNITS |
SIGNATURE_COST | 720 CUs | 每个 Ed25519 签名的计算成本 | SIGNATURE_COST |
SECP256K1_VERIFY_COST | 6,690 CUs | 每个 secp256k1 签名的计算成本 | SECP256K1_VERIFY_COST |
PDA
| 常量 | 数值 | 描述 | 来源 |
|---|---|---|---|
MAX_SEEDS | 16 | 每次 PDA 派生允许的最大 seed 数量 | MAX_SEEDS |
MAX_SEED_LEN | 32 bytes | 单个 seed 的最大长度 | MAX_SEED_LEN |
| Bump seed range | 255 到 0 | 用于规范 bump 的尝试范围 | find_program_address |
create_program_address cost | 1,500 CUs | 每次 PDA 派生系统调用的 CU 成本 | create_program_address_units |
CPI
| 常量 | 数值 | 描述 | 来源 |
|---|---|---|---|
MAX_INSTRUCTION_STACK_DEPTH | 5(SIMD-0268 为 9) | 最大调用堆栈深度 | MAX_INSTRUCTION_STACK_DEPTH, MAX_INSTRUCTION_STACK_DEPTH_SIMD_0268 |
DEFAULT_INVOCATION_COST | 1,000 CUs(SIMD-0339 为 946) | CPI 调用成本 | DEFAULT_INVOCATION_COST, INVOKE_UNITS_COST_SIMD_0339 |
MAX_SIGNERS | 16 | 每次 CPI 允许的最大 PDA 签名者数量 | MAX_SIGNERS |
MAX_CPI_ACCOUNT_INFOS | 128(SIMD-0339 为 255) | 每次 CPI 可传递的最大账户信息数量 | MAX_CPI_ACCOUNT_INFOS, MAX_CPI_ACCOUNT_INFOS_SIMD_0339 |
MAX_RETURN_DATA | 1,024 bytes | CPI 返回数据的最大长度 | MAX_RETURN_DATA |
cpi_bytes_per_unit | 每 CU 250 字节 | CPI 序列化成本率 | cpi_bytes_per_unit |
Is this page helpful?