Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

交易和指令 (Transactions and Instructions)

Solana 交易包含一个或多个指令,指令指定目标程序、账户元数据和操作数据。程序定义对应的指令处理逻辑,运行时按交易中的顺序执行。 以下是关于事务处理的关键细节:

  • 如果一笔交易包含多个指令,则指令将按照它们被添加到交易中的顺序执行
  • 交易是“原子性”的——要么所有指令都成功处理,要么整个交易失败且不进行任何更改 为了简化,可以将交易视为处理一个或多个指令的请求

交易按序执行指令,指令失败时业务状态变化回滚。交易手续费及 durable nonce 的特殊处理与业务回滚分别定义,不能把失败概括为所有状态都没有变化。

关键点

  • Solana 交易包括在网络上调用程序的指令请求。
  • 交易是原子的 - 如果任何指令失败,整个交易将失败且不会发生任何更改。
  • 一笔交易的最大大小为 1232 字节。
  • 每条指令需要 3 个信息:
    • 被调用程序所在的地址
    • 指令将发起读或写操作的目标账户列表
    • 任何被指令所需要的附加数据(如函数参数)

基本示例

以下是一个表示单条指令将 SOL 从发送者转移到接收者的交易的图示。