Research Article

Virtual Net: A Decentralized Architecture for Interaction in Mobile Virtual Worlds

Algorithm 6

Consensus.
1. 
2. Upon P ≠ ∅  ∧ CR = falseLE = false
3.  For each () ∈Pc∉Z,
4.   
5.   QUERY ()
6.   Reliably send QUERY to
7.
8. Upon QUERY_RESULT(epoch’, cid’, r, Wi) from ri  ∧ epoch’ = epoch
  cid’ = cidCR = falseLE = false
9.  
10.
11. Upon G∩R⊆
12.  R’ Decide(c, Q)
13.  
14.  
15.  DECISION (epoch, cid, c, W’)
16.  Reliably broadcast DECISION to
17.
18.
19. Upon QUERY(epoch’, cid’, r,) from
    epoch’ = epochcid’ = cidGR = false LE = false
20.  For each ,
21.   c’ = c – (Seq(s, c) – j)
22.   W W∪
23.  QUERY_RESULT (epoch, cid, c, W)
24.  Reliably send QUERY_RESULT to rL
25.
26. Upon DECISION(epoch, cid’, c, W’) from rL  ∧ epoch’ = epochcid’ =
    cidGR = falseLE = false
27.  E E W’
28.
29. Decide(c, Q)
30.  For each s∈S and ,
30.   If ∃e(s, j): e(s, j) ≠ ⊥ e(s, j) , then
31.    W’ W’
32.   Else
33.    e← (s, j, Empty)
34.    W’ W’
31.  Return W’