Research Article

Formal Modelling of PBFT Consensus Algorithm in Event-B

Listing 16

Event ‘Prepare’.
Event prepare
  Anym_c m_f send rec
  Where
   @grd1 sendNODES∖{pre}
   @grd2 recNODES
   @grd3 sendrec
   @grd4 m_c∈ℕ×(ℕ×value)
   @grd5 m_c∈G_p(send)
   @grd6 prj1(prj2(m_c))−n∈0‥H
   @grd7 m_f∈ℕ×(ℕ×value)
   @grd8 prj1(m_f)=prj1(m_c)
   @grd9 prj2(prj2(m_f))∈Faulty_value
   @grd10 prj1(prj2(m_f))−n∈0‥H
   @grd11 send∈dom(G_pre(rec))
   @grd12 m_f∉G_pre(rec)(send)
   @grd13 m_c∉G_pre(rec)(send)
  Then
   @act1 G_pre≔{TRUE↦G_pre<+{rec↦G_pre(rec)∪{send↦{m_c}}},
FALSE↦G_pre<+{rec↦G_pre(rec)∪{send↦{m_f}}}}(bool(send∈corr))
End