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 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3.3 Algorytm BFT 43<br />
2. Replika głów<strong>na</strong> p rozgłasza σp ,m><br />
3. Replika i rozgłasza < PREPARE, v, n, d, i> σi i czeka <strong>na</strong> 2f +1takich<br />
komunikatów uwzględniając własny.<br />
4. Gdy warunek z poprzedniego punku jest spełniony replika i rozsyła komunikat<br />
< COMMIT, v, n, d, i> σi i czeka <strong>na</strong> 2f +1 takich samych<br />
komunikatów od innych replik.<br />
5. Gdy warunek z poprzedniego punku jest spełniony replika i wykonuje<br />
zlecenie oraz wysyła odpowiedź do klienta c postaci < REPLY, t, i, r> σi .<br />
Widoki. Mechanizm widoków v jest związany z wprowadzeniem odporności<br />
<strong>na</strong> uszkodzenie repliki głównej p. Gdy replika głów<strong>na</strong> nie odpowie <strong>na</strong> zlecenie<br />
klienta, a rozgłoszone zlecenie dotrze do innej repliki, <strong>to</strong> replika która odebrała<br />
komunikat wysyła < VIEW-CHANGE, v +1, n, C, P, i> σi . C jest zbiorem<br />
2f +1 punktów kontrolnych potwierdzających poprawność stanu s, aP jest<br />
zbiorem zbiorów zleceń P m przygo<strong>to</strong>wanych przez i o z<strong>na</strong>czniku większym niż<br />
n. Każdy podzbiór P m składa się z wiadomości przed-przygo<strong>to</strong>wania oraz 2f<br />
odpowiadających jej wiadomości przygo<strong>to</strong>wania zgodnych co do v, n oraz m.<br />
Nowa replika głów<strong>na</strong> p po odebraniu 2f komunikatów o zmianie widoku<br />
rozsyła wiadomość < NEW-VIEW, v +1, V, O > σp , gdzie V jest zbiorem<br />
komunikatów zmiany widoku. Zbiór O jest wyz<strong>na</strong>czany <strong>na</strong>stępująco:<br />
1. Replika głów<strong>na</strong> określa dwie war<strong>to</strong>ści min s - numer ostatniego stabilnego<br />
z<strong>na</strong>cznika zatwierdzenia stanu w V oraz max s , <strong>na</strong>jwyższy numer zlecenia<br />
w V.<br />
2. Replika głów<strong>na</strong> przygo<strong>to</strong>wuje nowe wiadomości przed-przygo<strong>to</strong>wania dla<br />
każdego n ∈ (min s ,max s ). Mogą zaistnieć dwa przypadki: (1) istnieje<br />
przy<strong>na</strong>jmniej jeden zbiór w P gdzie wystąpił komunikat zmiany widoku<br />
w V z numerem sekwencji n lub (2) nie ma takiego zbioru. W pierwszym<br />
przypadku replika głów<strong>na</strong> tworzy komunikat < PRE-PREPARE, v +1,<br />
n, d> σp , gdzie d jest skrótem zlecenia o <strong>na</strong>jwiększej sekwencji n w<br />
V. W przeciwnym razie replika głów<strong>na</strong> konstruuje komunikat < PRE-<br />
PREPARE, v+1, n, d null > σp , gdzie d null jest skrótem specjalnego pustego<br />
zlecenia null, które jest obsługiwane przez repliki w taki sam sposób, jak<br />
inne zlecenia, ale nie zmienia stanu. Ta technika ma <strong>na</strong> celu usunięcie<br />
ewentualnych luk.<br />
Jeżeli min s jest większe od ostatniego stabilnego stanu dla p, <strong>to</strong>p zapamiętuje<br />
dowód stabilności dla min s . Repliki zapasowe wykonują zlecenia <strong>na</strong>desłane<br />
przez nową replikę główną dla sekwencji pomiędzy min s oraz max s ,alewysyłają<br />
tylko te odpowiedzi do klientów, które nie zostały im przesłane.