You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flow区块链同一区块并发交易的字段可见性保障问询

Flow区块链同一区块内交易竞态条件问题确认

我正在梳理Flow区块链中同一区块内交易非确定性执行场景下的竞态条件问题。假设有两笔交易通过调用资源方法修改资源状态,示例代码如下:

pub resource Example {
   pub let flag: Bool
   ...
   pub fun flipTrue() {
      if this.flag == true {
         panic("this flag is true, we are not allowed to set it true again")
      } 
      // side effect A
      this.flag = true;
   }
   pub fun flipFalse() {
      if this.flag == false {
         panic("we are not allowed to do this if the flag is already false");
      }
      // side effect B
      this.flag = false;
   }
}

初始状态下flag为false,若同一区块内同时执行调用flipTrue的FlipTrueTx和调用flipFalse的FlipFalseTx,无法预测执行结果,初步推测有三种可能:

  • 某种机制阻止两笔交易执行,均触发panic;
  • 交易可按任意顺序执行,且彼此可见状态,结果具有非确定性;
  • 交易可按任意顺序执行,且彼此不可见状态,仅FlipTrueTx能成功执行,FlipFalseTx始终触发panic。

我已查阅相关文档未找到明确说明,尝试构建测试环境存在不确定性,通过查看Flow FVM设计文档,推测每个执行节点需单线程处理区块内全部交易,特此请求对此机制及执行结果进行确认。

内容的提问来源于stack exchange,提问作者Jamil R Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:34:54