指令是在 Solana 程序上执行特定功能的请求。指令是链上操作的基本构建块。每条指令明确指定要调用的一个程序、它需要的账户,以及程序解释的字节数组(通常是用于识别要运行哪个指令处理程序的鉴别器,后跟序列化的参数)。每条指令的执行逻辑存储在一个程序上,每个程序定义自己的指令集。要与 Solana 网络交互,需要将一条或多条指令添加到交易中,然后发送到网络进行处理。
展示一笔包含指令的交易及其三大组成部分的示意图
指令结构
指令的三个字段(program_id、accounts、data),AccountMeta,已编译指令,以及 SOL 转账示例。
指令自省
程序如何通过 Instructions sysvar 检查当前交易中的同级指令。
关键要点
- 单一程序:每条指令仅针对一个程序,通过
program_id。 - 账户元数据:
accounts数组为指令读取或写入的每个账户提供账户元数据。 - 不透明数据:
data字段是一个字节数组,其格式由目标程序定义。
Is this page helpful?