我已经编写了一个基本的 rpc 客户端,它轮询 Solana 帐户的状态以查找特定条件(即写入的唯一 int64 Id)。当条件出现时,我调用一个智能合约,它采用与可变参数相同的帐户。
在做任何事情之前,程序会检查相同的条件。但是,此检查失败。我知道我们正在处理一个分布式系统,并且该状态可能在一段时间内不一致,但我可以反复调用超过 30 秒,并且每次都失败,然后最终成功。
我已经阅读了承诺级别的概念,但总是假设传递给智能合约的帐户状态将是世界的最新状态(即已处理)?我似乎观察到的是它更像是最终状态。
任何人都可以阐明这里可能发生的事情吗?
我将尝试提出一个最小的代码示例来演示这个问题,但只是想先问这个问题,看看是否有人能指出我正确的方向。
谢谢