10.03.2015 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!