BPF 程序执行
Executing user-supplied BPF programs in Solana Sealevel runtime with shared intrinsic calls
上下文
该图出现在讨论Solana智能合约执行环境的部分,展示了BPF(Berkeley Packet Filter)程序的运行时架构。
此图说明
该图展示了Solana程序(智能合约)的执行环境——基于BPF字节码格式。开发者用Rust或C编写程序,编译为BPF字节码,然后部署到Solana链上。当交易调用某个程序时,Sealevel运行时加载BPF字节码并在安全沙箱中执行。图中展示了程序如何接收输入(账户引用和指令数据)、在沙箱中执行计算、修改账户状态并返回结果。沙箱确保了程序无法访问未被授权的账户或执行未经检查的系统调用。图中还展示了跨程序调用(CPI)机制——一个程序如何安全地调用另一个程序。
重要性
BPF程序图展示了Solana选择BPF作为执行格式的技术原因——BPF提供了接近原生的执行速度(通过JIT编译)、强大的安全沙箱和与现代操作系统内核技术的对齐。这一选择使Solana的智能合约执行速度远超基于解释执行的EVM,是其高吞吐量的关键因素之一。