Solana - 承诺与预检承诺

yan*_*-io 11 solana

我很好奇 和 之间有什么preflightCommitment区别commitment。

另外,下面列出了哪些不同类型的承诺。

export type Commitment =
    | 'processed'
    | 'confirmed'
    | 'finalized'
    | 'recent'
    | 'single'
    | 'singleGossip'
    | 'root'
    | 'max';
Run Code Online (Sandbox Code Playgroud)

Jon*_*n C 17

preflightCommitment是用于预检交易(又称为交易模拟)的承诺,而commitment是用于实际交易的承诺。

至于不同的承诺,它们都列在https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment

其中一些术语已经很旧了,但它们的大致翻译如下:

  • processed=recent
  • confirmed= singleGossip=single
  • finalized= root=max

  • 谢谢!为什么模拟在这里需要某种承诺?另外,这是否意味着 `recent, singleGossip, single, root, max` 都已弃用? (2认同)
  • 根据承诺的定义:“对于预检和交易处理,Solana 节点选择要查询的银行状态”,因此如果您选择“最终确定”,则意味着您正在针对最终确定的区块运行交易,如果您选择“已处理” ”,您正在针对最新的区块运行交易。是的,这些现在都已被弃用。 (2认同)