OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
58 Rozdział 3. Bezpieczne <strong>bizantyjskie</strong> uzgadnianie<br />
Pro<strong>to</strong>kół 3.5.3: A<strong>to</strong>mic Broadcast - ABC<br />
dla uczestnika P i oraz z<strong>na</strong>cznika ID<br />
ISTNIEJE PREDYKAT Q ID|abc.r :<br />
Q ID|abc.r ([w 1 , ···,w n ], [σ 1 , ···,σ n ]) ≡<br />
dla przy<strong>na</strong>jmniej n − t różnych j, σ j jest poprawnym podpisem S<br />
P j dla ( ID, a-queue, r, j, w j ) j<br />
ROZPOCZĘCIE :<br />
q ← [] kolejka FIFO dla wiadomości a-broadcast<br />
d ←∅ zbiór wiadomości a-delivered<br />
r ← 0 bieżąca runda<br />
PO ODEBRANIU WIADOMOŚCI ( ID, in, a-broadcast, m ):<br />
if m/∈ d and m/∈ q<br />
then append(q, m)<br />
ZAWSZE:<br />
w j ←⊥; σ j ←⊥ (1 ≤ j ≤ n)<br />
wait for q ≠[] or odebrano wiadomość ( ID,a-queue,r,l,w l , σ l ) l<br />
taką, że w l /∈ d oraz σ l jest poprawnym podpisem od P l<br />
if q ≠[]<br />
then w ← first(q)<br />
else w ← w l<br />
wyz<strong>na</strong>cz podpis σ dla ( ID,a-queue,r,i,w ) i<br />
send ( ID,a-queue,r,i,w, σ ) i do wszystkich P<br />
wait for n − twiadomości ( ID,a-queue,r,j,w j , σ j ) j ,<br />
takich, że σ j jest poprawnym podpisem od P j<br />
W ← [w 1 , ···,w n ]; S ← [σ 1 , ···,σ n ]<br />
v-propose W potwierdzone przez S<br />
oz<strong>na</strong>czone ID|abc.r z predykatem Q ID|abc.r<br />
wait for zakończenie VBA z V =[v 1 , ···,v n ] oz<strong>na</strong>czonego ID|abc.r<br />
b ← ⋃ n<br />
j=1 v j<br />
for m ∈ (b \ d) w uporządkowany sposób<br />
⎧<br />
zakończ ( ID,out,a-deliver,m) i<br />
⎪⎨ wait for potwierdzenie dla m<br />
do<br />
d ← d ∪{m}<br />
⎪⎩<br />
remove(q, m)<br />
r ← r +1