Sui Bullshark

- 1 min

flowchart LR
  node_1["bullshark"]
  node_2["轮次"]
  node_3["1.提议阶段propose"]
  node_4["2.投票阶段vote"]
  node_5["3.确认阶段commit"]
  node_6["b.排序proposal"]
  node_7["DAG数据结构(包含对上一个轮次中已经确认的交易的引用)"]
  node_8["Kahn拓扑排序"]
  node_9["保证TX按照顺序被处理"]
  node_10["a.生成一个新的proposal"]
  node_11["c.广播proposal"]
  node_12["a.接收proposals,验证,筛选"]
  node_13["b.投票"]
  node_15["a多数节点同意,一个轮次中的某些提议将被确认, 排序"]
  node_16["b.确认后,执行交易和广播"]
  node_1 --> node_2
  node_2 --> node_3
  node_2 --> node_4
  node_2 --> node_5
  node_3 --> node_6
  node_6 --> node_7
  node_6 --> node_8
  node_8 --> node_9
  node_7 --> node_9
  node_3 --> node_10
  node_3 --> node_11
  node_4 --> node_12
  node_4 --> node_13
  node_5 --> node_15
  node_5 --> node_16

flowchart TB
  node_1["round"]
  node_2["proposer"]
  node_3["proposer"]
  node_4["tx"]
  node_5["tx"]
  node_6["epoch"]
  node_7["round_leader_election"]
  node_8["commitee"]
  node_10["good_nodes"]
  node_11["bad_nodes"]
  node_1 --> node_2
  node_1 --> node_3
  node_2 --> node_4
  node_2 --> node_5
  node_6 --> node_1
  node_6 --> node_7
  node_6 --> node_8
  node_7 --> node_10
  node_7 --> node_11