Konprann pwotokòl konsansis gwan distribisyon an

Konprann pwotokòl konsansis gwan distribisyon an

Pwotokòl konsansis Stellar te premye dekri nan atik syantifik David Mazier nan 2015. Sa a se yon "sistèm akò federal Bizanten" ki pèmèt rezo enfòmatik desantralize, san lidè yo rive nan yon konsansis avèk efikasite sou yon desizyon. Rezo peman Stellar la itilize Stellar Consensus Protocol (SCP) pou kenbe yon istwa tranzaksyon ki konsistan ki vizib pou tout patisipan yo.

Pwotokòl konsansis yo konsidere kòm difisil pou konprann. SCP se pi senp pase pifò nan yo, men yo toujou pataje repitasyon sa a - an pati akòz lide nan erè ke "vòt federasyon", ki se sijè a nan premye mwatye nan atik la syantifik, se SCP. Men sa pa vre! Sa a se jis yon blòk bilding enpòtan ke dezyèm mwatye nan atik la itilize yo kreye aktyèl Pwotokòl konsansis gwan distribisyon.

Nan atik sa a nou pral yon ti tan eksplike kisa yon "sistèm akò" se, ki sa ki ka fè li "Bizantine" ak poukisa fè sistèm Bizanten nan "federal". Lè sa a, nou pral eksplike pwosedi vòt federasyon an ki dekri nan atik SCP a, epi finalman nou pral eksplike pwotokòl SCP a li menm.

Sistèm akò yo

Yon sistèm akò pèmèt yon gwoup patisipan yo rive jwenn yon konsansis sou yon sijè, tankou sa pou yo kòmande pou manje midi.

Nan Interstellar, nou te aplike pwòp sistèm akò manje nou an: nou bay lòd sa manadjè operasyon nou an, John, di. Sa a se yon sistèm akò ki senp epi ki efikas. Nou tout fè Jan konfyans epi nou kwè ke li pral jwenn yon bagay enteresan ak nourisan chak jou.

Men, e si Jan abize konfyans nou? Li ka yon sèl-men deside ke nou tout ta dwe vin vegan. Nan yon semèn oswa de, nou pral pwobableman ranvèse l 'epi remèt pouvwa a bay Elizabeth. Men toudenkou li renmen zaboka ak anchois e li panse tout moun ta dwe konsa. Pouvwa koripsyon. Se konsa, li pi bon jwenn kèk metòd plis demokratik: kèk fason asire w ke preferans diferan yo te pran an kont, pandan y ap asire yon rezilta alè ak san anbigwite, pou pa gen moun ki fini kòmande manje midi, oswa senk moun mete lòd diferan, oswa diskisyon an. trennen sou nan aswè a.

Li ta sanble ke solisyon an se senp: kenbe yon vòt! Men, sa a se yon enpresyon twonpe. Kiyès ki pral kolekte bilten yo epi rapòte rezilta yo? Epi poukisa lòt moun ta dwe kwè sa li di? Petèt nou kapab an premye vote pou yon lidè ke nou fè konfyans pou dirije vòt la - men ki moun ki pral dirije li premye a pa vote? E si nou pa ka dakò sou yon lidè? Oswa e si nou rive nan yon akò, men lidè sa a vin bloke nan yon reyinyon oswa ale nan konje maladi?

Pwoblèm menm jan an rive nan rezo òdinatè distribiye. Tout patisipan yo oswa nœuds yo dwe dakò sou kèk desizyon, tankou kiyès li ye pou mete ajou yon dosye pataje oswa retire yon travay nan keu pwosesis la. Nan yon rezo kriptografik, nœuds yo repete gen yo chwazi ki sa istwa a plen sanble nan plizyè vèsyon posib, ki pafwa konfli. Akò rezo sa a bay moun k ap resevwa a asirans pyès monnen an (a) valab (pa fo) epi (b) poko depanse yon lòt kote. Sa a tou asire ke li yo pral kapab depanse pyès monnen yo nan lavni an paske nouvo benefisyè a pral gen menm garanti yo pou menm rezon yo.

Nenpòt sistèm konsansis nan yon rezo informatique distribiye dwe toleran defo: li dwe pwodui rezilta konsistan malgre erè tankou lyen ralanti, nœuds ki pa reponn, ak lòd mesaj kòrèk. Bizanten Sistèm akò a se Anplis de sa rezistan nan erè "Bizantine": nœuds ki bay fo enfòmasyon, kit akòz yon erè oswa nan yon tantativ ekspre pou mine sistèm nan oswa jwenn kèk avantaj. "Bizantine" tolerans fòt - kapasite pou fè konfyans yon desizyon gwoup menm lè kèk manm gwoup ka bay manti oswa otreman pa swiv règ yo nan pran desizyon - yo rele. parabòl sou jeneral yo nan Anpi Bizanten anki te eseye kowòdone atak la. Bon deskripsyon nan Anthony Stevens.

Konsidere pwopriyetè pyès monnen kript Alice, ki dwe chwazi ant achte krèm glase bon gou nan men Bob ak peye dèt Carol la. Petèt Alice vle peye tou de nan yon fwa pa fwod depanse menm pyès monnen an. Pou fè sa, li dwe konvenk òdinatè Bob a ke pyès monnen an pa t janm peye pou Carol, epi konvenk òdinatè Carol a ke pyès monnen an pa t janm peye pou Bob. Sistèm Bizanten nan akò fè sa a nòmalman enposib, lè l sèvi avèk yon fòm règ majorite rele kowòm. Yon ne nan yon rezo konsa refize deplase nan yon vèsyon an patikilye nan istwa jiskaske li wè ke yon kantite ase kanmarad - yon kowòm - dakò ak yon tranzisyon konsa. Yon fwa sa rive, yo pral fòme yon blòk vòt gwo ase pou fòse nœuds rezo ki rete yo dakò ak desizyon yo. Alice ka fòse kèk nœuds kouche sou non li, men si rezo a se gwo ase, tantativ li pral akable pa vòt yo nan nœuds onèt.

Konbyen nod ki nesesè pou kowòm? Omwen, yon majorite, oswa pito, yon majorite kalifye pou konbat erè ak fwod. Men, pou konte majorite a, ou bezwen konnen kantite total patisipan yo. Nan biwo Interstellar la oswa nan eleksyon distri yo, nimewo sa yo fasil pou jwenn. Men, si gwoup ou a se yon rezo ki lach defini nan ki nœuds ka antre epi kite nan volonte san apwobasyon nan sant la, Lè sa a, ou bezwen federal yon sistèm akò Bizanten ki kapab detèmine kowòm pa soti nan yon lis nœuds predetèmine, men dinamik, apati yon snapshot nœuds ki toujou ap chanje e inevitableman enkonplè nan yon moman yo bay nan tan.

Li ka sanble enposib pou kreye yon kowòm nan pèspektiv nan yon sèl ne nan yon rezo vas, men li posib. Yon kowòm konsa ka menm garanti rezilta vòt desantralize yo. Papye blan SCP a montre kijan pou fè sa lè l sèvi avèk yon pwosedi yo rele pa vòt federal.

Pou moun ki enpasyan

Rès atik la dekri vòt federatè ak pwotokòl konsansis Stellar an plis detay. Si w pa enterese nan detay yo, isit la se yon apèsi jeneral sou pwosesis la.

  1. Nœuds yo fè seri vòt federal sou "nominasyon yo." Yon wonn vòt federal vle di:
    • Ne la vote pou kèk deklarasyon, pou egzanp, "Mwen pwopoze valè a nan V";
    • Nœud la koute vwa kanmarad yo jiskaske li jwenn youn ki ka "resevwa";
    • Ne a ap chèche yon "kowòm" pou deklarasyon sa a. Yon kowòm "konfime" kandida a.
  2. Yon fwa yon nod ka konfime youn oswa plis kandida, li eseye "prepare" "bilten vòt la" atravè plizyè tou nan vòt federatè.
  3. Yon fwa yon nod kapab verifye bilten vòt la pare, li eseye komèt li atravè plis tou vòt federatif.
  4. Yon fwa ke yon nod ka konfime yon komite nan yon bilten vòt, li ka "eksternize" valè vòt sa a lè l sèvi avèk li kòm yon rezilta konsansis.

Etap sa yo enplike plizyè jij vòt federasyon, ki ansanm fòme yon sèl tou SCP. Ann pran yon gade pi pre nan sa k ap pase nan chak etap.

Vòt federatè

Vòt federatif se yon pwosedi pou detèmine si rezo a ka dakò sou yon pwopozisyon. Nan wonn vòt la, chak ne dwe chwazi youn nan anpil valè posib. Li pa ka fè sa sof si li gen konfyans ke lòt nœuds nan rezo a pa pral chwazi yon rezilta diferan. Pou asire w ke sa a, nœuds echanj yon baraj nan mesaj retounen ak lide pou ke tout moun konfimeSa kowòm ne pran menm bagay la desizyon an. Rès seksyon sa a eksplike tèm ki nan fraz sa a ak fason tout pwosedi a rive.

Kowòm ak tranch kowòm

Ann kòmanse pa defini yon kowòm. Kòm nou te diskite pi wo a, nan yon rezo desantralize ak manm dinamik, li enposib konnen davans kantite nœuds ak Se poutèt sa, konbyen yo bezwen pou majorite a. Vòt federatè rezoud pwoblèm sa a lè li prezante yon nouvo lide koupe kowòm (tranch kowòm): Yon ti seri kanmarad ke yon nod fè konfyans pou kominike enfòmasyon sou estati vòt yo ak rès rezo a. Chak nœuds defini pwòp tranch kowòm li (ki vin yon manm defakto).

Fòmasyon kowòm kòmanse ak yon koupe kowòm. Pou chak ne, yo ajoute nœuds koupe li yo. Lè sa a, tèm yo tranch yo ajoute nœuds sa yo ak sou sa. Pandan w ap kontinye, gen plis ak plis nœuds ke ou pa ka ajoute paske yo deja enkli nan tranch la. Lè pa gen okenn lòt nouvo nœuds pou ajoute, pwosesis la sispann: nou te fòme yon kowòm pa "fèmen tranzitif" nan tranch kowòm nan nœud inisyal la.

Konprann pwotokòl konsansis gwan distribisyon an
Pou jwenn kowòm nan yon nod bay...

Konprann pwotokòl konsansis gwan distribisyon an
... ajoute manm nan tranch li yo...

Konprann pwotokòl konsansis gwan distribisyon an
... Lè sa a, nou ajoute manm tranch nan nœuds sa yo.

Konprann pwotokòl konsansis gwan distribisyon an
Nou kontinye jiskaske pa gen okenn nœuds ki rete pou ajoute.

Konprann pwotokòl konsansis gwan distribisyon an

Konprann pwotokòl konsansis gwan distribisyon an
Pa gen okenn nœuds ki rete pou ajoute. Sa a se yon kowòm.

An reyalite, chak ne ka parèt nan plis pase yon tranch. Pou fòme yon kowòm, chwazi sèlman youn nan tranch yo epi ajoute manm yo; Lè sa a, chwazi nenpòt tranch pou chak manm yo epi ajoute manm yo nan sa a koupe ak sou sa. Sa vle di ke chak ne se yon manm nan anpil kowòm posib.

Konprann pwotokòl konsansis gwan distribisyon an
Chwazi yon sèl tranch kowòm nan chak etap.

Konprann pwotokòl konsansis gwan distribisyon an

Konprann pwotokòl konsansis gwan distribisyon an

Konprann pwotokòl konsansis gwan distribisyon an
Yon kowòm posib. Oswa yon altènatif...

Konprann pwotokòl konsansis gwan distribisyon an
... chwazi lòt tranch...

Konprann pwotokòl konsansis gwan distribisyon an

Konprann pwotokòl konsansis gwan distribisyon an
…(lè li posib)…

Konprann pwotokòl konsansis gwan distribisyon an
... kreye yon lòt kowòm.

Ki jan yon ne fè konnen nan ki tranch lòt nœuds yo ye? Nan menm fason an ak lòt enfòmasyon sou lòt nœuds: soti nan transmisyon yo ke chak ne emisyon nan rezo a lè eta vòt li chanje. Chak emisyon gen ladann enfòmasyon sou tranch ne k ap voye a. Papye blan SCP a pa presize yon mekanis kominikasyon. Aplikasyon tipikman itilize pwotokòl tripotay pou garanti difizyon mesaj atravè rezo a.

Sonje byen, nan sistèm akò Bizanten ki pa federal la, yon kowòm defini kòm yon majorite nan tout nœuds. Sistèm akò Bizanten an fèt nan pwen de vi kesyon an: konbyen nœuds malonèt sistèm nan ka tolere? Nan yon sistèm nan N nœuds ki fèt pou siviv f echèk, yon nœuds ta dwe kapab fè pwogrè lè li resevwa fidbak nan men N-f kanmarad depi f nan yo ka desann. Men, lè nou te resevwa yon repons nan men N-f kanmarad, nou ka asime ke tout f kamarad (ki soti nan ki ne a pa t resevwa yon repons) yo aktyèlman onèt. Kidonk, f soti nan N-f kanmarad (ki soti nan ki te resevwa repons lan) se move. Pou nœuds yo rive nan menm konsansis la, majorite nœuds ki rete yo dwe onèt, sa vle di, nou bezwen N−f pi gran pase 2f oswa N > 3f. Se konsa, tipikman yon sistèm ki fèt yo siviv f echèk pral gen yon total de N = 3f + 1 nœuds ak yon gwosè kowòm nan 2f + 1. Yon fwa yon pwopozisyon pase papòt kowòm lan, rès rezo a konvenki ke nenpòt pwopozisyon konpetisyon ap echwe. Sa a se ki jan rezo a konvèje nan rezilta a.

Men, nan yon sistèm akò federal Bizanten, non sèlman pa ka gen yon majorite (paske pèsonn pa konnen gwosè total rezo a), men konsèp nan yon majorite se konplètman initil! Si manm nan sistèm lan louvri, Lè sa a, yon moun ka jwenn yon majorite tou senpleman pa fè yon atak Sybil sa yo rele: repete rantre nan rezo a atravè nœuds miltip. Se konsa, poukisa yo ka fèmti tranzitif tranch dwe rele kowòm, ak ki jan li kapab siprime pwopozisyon konpetisyon?

Teknikman, pa gen okenn fason! Imajine yon rezo sis nœuds, kote de triple izole nan tranch kowòm youn lòt. Premye sougwoup la ka pran yon desizyon ke dezyèm lan p'ap janm tande pale de, ak vis vèrsa. Pa gen okenn fason pou rezo sa a rive nan konsansis (eksepte pa chans).

Se poutèt sa, SCP mande pou vote federasyon (ak pou teyorèm enpòtan yo nan papye a aplike), rezo a dwe genyen yon pwopriyete ki rele entèseksyon kowòm yo. Nan yon rezo ki gen pwopriyete sa a, nenpòt de kowòm ki ka konstwi toujou sipèpoze nan omwen yon nod. Pou detèmine santiman an dominan nan rezo a, sa a se kòm bon jan gen yon majorite. Entwisyon, sa vle di ke si nenpòt kowòm dakò ak deklarasyon X, pa gen okenn lòt kowòm pa janm ka dakò ak nenpòt lòt bagay, paske li pral nesesèman genyen kèk nod ki soti nan premye kowòm ki te deja vote pou X.

Konprann pwotokòl konsansis gwan distribisyon an
Si gen yon entèseksyon kowòm nan rezo a...

Konprann pwotokòl konsansis gwan distribisyon an
... Lè sa a, nenpòt de kowòm ou ka bati...

Konprann pwotokòl konsansis gwan distribisyon an
... ap toujou kwaze.

Konprann pwotokòl konsansis gwan distribisyon an

Konprann pwotokòl konsansis gwan distribisyon an

(Natirèlman, nœuds sipèpoze yo ka vin bay manti Bizanten oswa otreman move. Nan ka sa a, entèseksyon kowòm lan pa ede rezo a dakò ditou. Pou rezon sa a, anpil nan rezilta yo nan papye blan SCP la baze sou sipozisyon klè, tankou sa ki rete nan travèse kowòm rezo a menm apre yo fin retire move nœuds. Pou senplisite, an n kite sipozisyon sa yo implicite nan rès atik la).

Li ka sanble pa rezonab pou espere ke yon travèse kowòm serye posib nan yon rezo nœuds endepandan. Men, gen de rezon ki fè sa se konsa.

Premye rezon an se egzistans entènèt la li menm. Entènèt la se yon egzanp pafè nan yon rezo nœuds endepandan ak kowòm kwaze. Pifò nœuds sou Entènèt la konekte ak kèk lòt nœuds lokal sèlman, men ti seri sa yo sipèpoze ase pou yo ka jwenn chak nœuds nan tout lòt nœuds sou kèk wout.

Dezyèm rezon an se espesifik nan rezo peman Stellar (itilizasyon ki pi komen nan SCP). Chak byen sou rezo Stellar gen yon emeteur, e direktiv Stellar yo mande pou chak emeteur deziyen youn oswa plis nœuds sou rezo a pou trete demann ranchman. Li nan pi bon enterè ou dirèkteman oswa endirèkteman enkli nœuds sa yo nan tranch kowòm pou chak byen w enterese. Kowòm pou tout nœuds ki enterese nan yon byen yo pral sipèpoze omwen nan nœuds redanmsyon sa yo. Nœuds ki enterese nan plizyè byen yo pral genyen tout nœuds ranchman nan emeteur respektif yo nan tranch kowòm yo, epi yo pral chèche mete tout byen yo ansanm. Anplis de sa, nenpòt ki byen ki pa lye nan fason sa a ak lòt moun sou rezo a, ak pa ta dwe konekte - sa fèt pou pa gen okenn sipèpoze kowòm pou rezo sa a (pa egzanp, bank ki soti nan zòn dola a pafwa vle fè komès ak bank ki soti nan zòn euro a ak bank ki soti nan zòn peso a, kidonk yo sou menm rezo a, men pa gen okenn nan yo pran swen rezo separe timoun k ap vann kat bezbòl).

Natirèlman, ap tann travèse kowòm se pa garanti. Lòt sistèm akò Bizanten yo dwe anpil nan konpleksite yo ak garanti kowòm yo. Yon inovasyon enpòtan nan SCP se ke li retire responsablite pou kreye kowòm nan algorithm konsansis nan tèt li epi pote li nan nivo aplikasyon an. Kidonk, byenke vòt federatè se ase jeneral pou vote sou nenpòt pwoblèm, fyab li aktyèlman depann anpil sou siyifikasyon an pi laj nan siyifikasyon sa yo. Gen kèk itilizasyon ipotetik ki ka pa menm fezab pou kreye rezo ki byen konekte tankou lòt moun.

Vòt, akseptasyon ak konfimasyon

Nan yon wonn vòt federatif, yon nod opsyonèlman kòmanse vote pou kèk valè V. Sa vle di difize yon mesaj sou rezo a: "Mwen se nod N, tranch kowòm mwen an se Q, epi m ap vote pou V." Lè yon ne vote nan fason sa a, li pwomèt ke li pa janm te vote kont V epi li pa janm pral.

Nan emisyon kanmarad-a-kanmarad, chak ne wè ki jan lòt yo vote. Yon fwa yon nœuds kolekte ase mesaj sa yo, li ka swiv tranch kowòm epi eseye jwenn kowòm. Si li wè yon kowòm kanmarad ki vote pou V tou, li ka kontinye adopsyon V epi difize nouvo mesaj sa a sou rezo a: "Mwen se ne N, tranch kowòm mwen an se Q, epi mwen aksepte V." Akseptasyon bay yon garanti pi fò pase vòt senp. Lè yon ne vote pou V, li pa janm ka vote pou lòt opsyon. Men, si yon ne aksepte V, pa gen okenn ne sou Rezo a ap janm aksepte lòt opsyon an (Teyorèm 8 nan liv SCP a pwouve sa).

Natirèlman, gen yon gwo pwobabilite ke pa pral imedyatman gen yon kowòm nan nœuds ki dakò ak V. Lòt nœuds ka vote pou lòt valè. Men, gen yon lòt fason pou yon ne pou avanse pou pi soti nan vòt senp ak akseptasyon. N ka aksepte yon valè diferan pou W, menm si li pa t vote pou li, e menm si li pa wè yon kowòm pou li. Pou deside chanje vòt ou, jis gade seri bloke nœuds ki te aksepte W. Yon seri bloke se yon nœud nan chak tranch kowòm N yo. Jan non an sijere, li kapab blòk nenpòt lòt siyifikasyon. Si tout nœuds nan yon seri sa yo aksepte W, lè sa a (pa Teyorèm 8) li p ap janm posib pou fòme yon kowòm ki pran yon valè diferan, epi kidonk li an sekirite tou pou N aksepte W.

Konprann pwotokòl konsansis gwan distribisyon an
Nœud N ak twa tranch kowòm.

Konprann pwotokòl konsansis gwan distribisyon an
BDF se yon seri bloke pou N: li gen ladann yon ne nan chak tranch N.

Konprann pwotokòl konsansis gwan distribisyon an
BE se tou yon seri bloke pou N paske E parèt nan de tranch N.

Men, seri a bloke se pa yon kowòm. Li ta twò fasil pou twonpe ne N pou aksepte valè a vle si li te ase yo pirate yon sèl ne nan chak nan tranch yo nan N. Se poutèt sa, aksepte valè a se pa fen vòt la. Olye de sa, N dwe konfime valè a, se sa ki, wè yon kowòm nan nœuds aksepte li. Si li rive byen lwen, lè sa a, jan liv blanch SCP la pwouve (nan Teyorèm 11), rès rezo a pral finalman konfime menm valè a, kidonk N pral fini vòt federasyon an ak yon sèten valè kòm rezilta.

Konprann pwotokòl konsansis gwan distribisyon an
Vòt federatè.

Pwosesis vòt, akseptasyon, ak konfimasyon konstitye yon seri vòt federal. Pwotokòl konsansis Stellar la konbine anpil nan jij sa yo pou kreye yon sistèm konsansis konplè.

Pwotokòl konsansis gwan distribisyon

De pwopriyete ki pi enpòtan nan yon sistèm konsansis yo se - sekirite и sivivabilite. Yon algorithm konsansis se "san danje" si li pa janm ka bay rezilta diferan nan diferan patisipan (kopi istwa Bob a pa janm ap kontredi Carol). "Livability" vle di ke algorithm a ap toujou pwodwi yon rezilta, se sa ki, li pa pral bloke.

Dekri pwosedi vòt federal san danje nan sans ke si yon ne konfime valè V, pa gen okenn lòt ne ki pral konfime lòt valè a. Men, "pa pral konfime yon lòt siyifikasyon" pa vle di ke li pral nesesèman konfime yon bagay. Patisipan yo ka vote sou anpil valè diferan ke pa gen anyen ki pral rive nan papòt akseptasyon an. Sa vle di ke nan vòt federal pa gen okenn sivivabilite.

Pwotokòl konsansis Stellar la sèvi ak vòt federatè nan yon fason ki asire tou de sekirite ak sivivabilite. (Sekirite ak garanti sivivabilite SCP a gen yon limit teyorik. Konsepsyon an chwazi yon garanti sekirite trè fò, sakrifye yon ti alèjman sivivabilite, men bay ase tan, konsansis gen anpil chans pou yo rive jwenn.) Nan yon bref, lide a se gen plizyè vòt federasyon sou plizyè valè jiskaske youn nan yo fè li nan tout faz vòt SCP ki dekri anba a.

Valè SCP ap chèche konsansis yo ta ka istwa tranzaksyon oswa yon lòd manje midi oswa yon lòt bagay, men li enpòtan sonje ke sa yo se pa valè yo aksepte oswa konfime. Olye de sa, vòt federal fèt selon deklarasyon sou valè sa yo.

Premye tou vòt federal yo ap fèt etap nominasyon (faz nominasyon), sou yon seri deklarasyon tankou "Mwen nonmen V," petèt pou anpil valè diferan nan V. Objektif nominasyon an se jwenn youn oswa plis deklarasyon ki ale nan akseptasyon ak konfimasyon.

Apre li fin jwenn kandida ki ka verifye, SCP ale nan faz vòt la, kote objektif la se jwenn yon sèten bilten (ki se, yon veso pou valè pwopoze a) ak yon kowòm ki ka deklare komèt pou li (komèt). Si yon kowòm komèt yon bilten vòt, yo aksepte valè li kòm konsansis la. Men, anvan yon ne ka vote sou yon bilten komite, li dwe premye konfime anilasyon tout bilten vòt ki gen yon valè kontwa ki pi ba. Etap sa yo—anile bilten vòt yo pou jwenn youn ki ka komèt—implike plizyè sez vòt federasyon sou plizyè reklamasyon bilten vòt yo.

Seksyon sa yo dekri nominasyon ak vòt an plis detay.

Nominasyon

Nan kòmansman faz nominasyon an, chak ne ka chwazi yon valè pou V epi vote pou deklarasyon "Mwen nonmen V." Objektif la nan etap sa a se konfime nominasyon an nan kèk valè atravè yon vòt federasyon.

Petèt ase nœuds vote sou pwopozisyon ase diferan ke okenn nominasyon pa ka rive nan papòt akseptasyon an. Se poutèt sa, anplis difize pwòp vòt nominasyon yo, nœuds yo "reflete" nominasyon parèy yo. Eko vle di si yon ne vote pou nominasyon V, men li wè yon mesaj yon vwazen ap vote pou nominasyon W, kounye a li pral vote pou tou de V ak W. (Se pa tout vòt kanmarad yo repete pandan nominasyon paske sa ka mennen nan yon eksplozyon nominasyon diferan. SCP gen ladann yon mekanis pou kontwole vòt sa yo. An brèf, gen yon fòmil pou detèmine "priyorite" yon kanmarad nan pwen de vi yon ne, epi sèlman vòt yo nan gwo priyorite nœuds yo reflete. Plis nominasyon an pi long. pran, pi ba papòt la, se konsa ne a elaji seri kanmarad ki gen vòt li pral reflete.Fòmil priyorite a gen ladan nimewo plas la kòm youn nan antre li yo, kidonk yon kanmarad ki gen gwo priyorite pou yon plas ka yon kamarad ki ba priyorite pou yon lòt, ak vis vèrsa).

Konseptyèlman, nominasyon an se paralèl, tou de V ak W se vòt federal separe, chak endividyèlman kapab reyalize akseptasyon oswa konfimasyon. Nan pratik, mesaj pwotokòl SCP pake vòt endividyèl sa yo ansanm.

Malgre ke vote pou nominasyon V a se yon pwomès pou pa janm vote kont nominasyon V a, se nan nivo aplikasyon an - nan ka sa a SCP - ke li detèmine kisa "kont" vle di. SCP pa wè yon deklarasyon ki kontredi vòt "Mwen nominasyon X", sa vle di, pa gen okenn mesaj "Mwen kont nominasyon X", kidonk nod la ka vote pou nominasyon nenpòt valè. Anpil nan nominasyon sa yo pap ale okenn kote, men evantyèlman ne yo pral kapab aksepte oswa konfime youn oswa plizyè valè. Yon fwa ke yon kandida konfime, li vin kandida.

Konprann pwotokòl konsansis gwan distribisyon an
Nominasyon SCP lè l sèvi avèk vòt federatif. Ka gen anpil valè "B" mete devan pa kanmarad ak "reflete" pa ne la.

Nominasyon yo ka lakòz plizyè kandida konfime. Se poutèt sa, SCP mande pou kouch aplikasyon an bay kèk metòd pou konbine kandida yo nan yon sèl konpoze (konpoze). Metòd rantre nan ka nenpòt bagay. Bagay pwensipal lan se ke si metòd sa a se detèminist, Lè sa a, chak ne pral konbine kandida yo menm. Nan yon sistèm vòt manje midi, "inifikasyon" ka senpleman vle di rejte youn nan de kandida. (Men, nan yon fason detèminist: chak ne dwe chwazi menm valè a reset. Pou egzanp, seleksyon an pi bonè nan lòd alfabetik). Nan rezo peman Stellar la, kote yo vote sou istwa tranzaksyon yo, fusion de kandida yo pwopoze a enplike fusion tranzaksyon yo genyen ak dènye de timestamp yo.

Liv blanch SCP a pwouve (Teyorèm 12) ke nan fen faz ekstansyon an, rezo a finalman konvèje nan yon sèl konpoze. Men, gen yon pwoblèm: vòt federatè se yon pwotokòl asynchrone (tankou SCP). Nan lòt mo, nœuds yo pa kowòdone pa tan, men se sèlman pa mesaj yo voye yo. Soti nan pwen de vi ne a, li pa klè ki lè fini faz ekstansyon. Ak byenke tout nœuds pral evantyèlman rive nan menm konpoze an, yo ka pran wout diferan sou wout la, kreye diferan kandida konpoze sou wout la, epi yo pa janm ka di ki youn ki final la.

Men, li nòmal. Nominasyon se jis preparasyon. Bagay pwensipal lan se limite kantite kandida yo reyalize konsansis, ki rive nan pwosesis la kouri pou biwo (vòt vòt).

Kouri

Bilten se yon koup , kote counter se yon nonb antye ki kòmanse nan 1 ak valè se yon kandida nan etap nominasyon an. Sa a ka kandida pwòp yon ne oswa kandida yon ne vwazen aksepte pa ne sa a. An jeneral, yon bilten vòt enplike tantativ repete pou fòse rezo a rive jwenn yon konsansis sou kèk kandida sou kèk bilten vòt nan kenbe potansyèlman anpil vòt federasyon sou deklarasyon bilten. Kontwatè bilten yo kenbe tras tantativ ki fèt yo, epi bilten ki gen plis konte yo pran priyorite sou bilten ki gen pi ba yo. Si bilten an vin bloke, yon nouvo vòt kòmanse, kounye a sou bilten vòt la .

Li enpòtan pou distenge valè yo (pa egzanp, kisa lòd manje midi a ta dwe: pitza oswa salad), bilten nouvèl (pè kont-valè) ak deklarasyon sou bilten vòt yo. Seksyon SCP a gen ladan plizyè seksyon vòt federal, an patikilye sou deklarasyon sa yo:

  • "Mwen pare pou komèt bilten vòt B" ak
  • "Mwen anonse komèt bilten vòt B la"

Soti nan pèspektiv yon nod bay, konsansis rive jwenn lè li jwenn yon bilten vòt B pou li ka konfime (ki vle di, jwenn yon kowòm ki aksepte) deklarasyon "Mwen komèt bilten vòt B." Apati pwen sa a, li an sekirite pou aji sou valè ki espesifye nan B - pou egzanp, mete lòd sa a pou manje midi. Li rele ekstènasyon siyifikasyon. Yon fwa yo konfime akseptasyon bilten vòt la, yon nod kapab asire w ke nenpòt lòt nod te ekstènize menm valè a oswa li pral fè sa alavni.

Malgre ke anpil vòt federasyon yo konseptyèlman fèt sou reklamasyon pou plizyè bilten vòt diferan, yo pa echanje anpil mesaj paske chak mesaj encapsule yon kantite bilten vòt. Yon mesaj konsa ankouraje eta a nan anpil vòt federasyon an menm tan, pa egzanp: "Mwen aksepte bilten komèt ki soti nan anvan "

Ki sa tèm "prepare" ak "komèt" vle di?

Yon ne vote pou komèt yon bilten lè li gen konfyans ke lòt nod pa pral komèt bilten ki gen valè diferan. Konvenk sa a se objektif la nan prepare aplikasyon an. Yon vòt ki di "Mwen pare pou komèt bilten vòt B" se yon pwomès pou pa janm komèt yon bilten ki pi piti pase B, sa vle di ak yon konte ki pi piti (SCP mande pou valè yo nan bilten vòt yo nan yon sèten lòd. Kidonk, bilten. mwens , si N1

Poukisa "Mwen pare pou komèt bilten B" vle di "Mwen pwomèt pou m pa janm komèt bilten ki pi piti pase B"? Paske SCP defini avòtman kòm opoze a nan komèt. Yon vòt pou prepare yon bilten vòt tou enplike yon vòt pou diskalifye kèk lòt bilten vòt, epi, jan nou te diskite pi bonè, vote pou yon bagay se yon pwomès pa janm vote kont li.

Anvan yo difize yon komèt, yon nod dwe premye jwenn yon bilten ke li ka konfime jan li prepare. Nan lòt mo, li fè yon vòt federasyon sou sijè "Mwen pare pou komèt bilten B," petèt sou plizyè bilten diferan, jiskaske li jwenn youn ki aksepte yon kowòm.

Ki kote bilten yo soti pou prepare vòt la? Premyèman, ne a emèt preparasyon pou vote pou <1,C>, kote C se kandida konpoze ki pwodui nan etap nominasyon an. Sepandan, menm apre preparasyon pou vòt yo kòmanse, nominasyon yo ka lakòz lòt kandida parèt vin nouvo bilten vòt. Pandan se tan, kanmarad yo ka gen kandida diferan, epi yo ka fòme yon seri bloke ki aksepte "Mwen pare pou komèt bilten vòt la B2," ki pral konvenk nod la aksepte li tou. Finalman, gen yon mekanis timeout ki jenere nouvo jij vòt federasyon sou nouvo bilten vòt ki gen plis konte si bilten vòt aktyèl yo kole.

Le pli vit ke nœud la jwenn yon bilten vòt B ke li ka konfime jan li prepare, li emèt yon nouvo mesaj "Komèt bilten vòt B." Vòt sa a di kanmarad yo ke nod la pap janm abandone B. An reyalite, si B se yon bilten vòt , apresa “Komèt bilten vòt " vle di konsantman enkondisyonèl pou vote pou preparasyon pou chak bilten vòt pou <∞, s>. Valè siplemantè sa a ede lòt kanmarad ratrape kanmarad komèt la si yo toujou nan premye etap pwotokòl la.

Nan etap sa a, li vo mete aksan sou yon lòt fwa ke sa yo se pwotokòl asynchrone. Jis paske yon sèl ne voye upvotes pou yon komèt pa vle di kamarad li yo fè tou. Kèk nan yo ka toujou ap vote sou deklarasyon an preparasyon pou vote, lòt moun ka deja ekstèn siyifikasyon an. SCP eksplike kijan yon nod ta dwe trete chak kalite mesaj kanmarad kèlkeswa faz li yo.

Si mesaj la "Mwen te anonse yon komèt » pa ka resevwa oswa konfime, sa vle di, pwobabilite pou mesaj la aksepte oswa konfime oswa - oswa, nan nenpòt ka, nenpòt bilten vòt ki gen valè C a, epi pa nenpòt lòt, depi ne a te deja pwomèt pa janm anile . Depi lè yon ne emisyon vòt pou yon komèt, li pral C oswa pa gen anyen, tou depann de ki jan konsansis la ale. Sepandan, sa a poko ase pou nœud la ekstèn C. Gen kèk parèy Bizanten (ki konstitye mwens pase yon kowòm, ki baze sou sipozisyon sekirite nou yo) ka bay manti sou nœud la. Aksepte epi konfime kèk bilten vòt (oswa seri bilten vòt yo) se sa ki bay ne a konfyans pou finalman ekstèn C.

Konprann pwotokòl konsansis gwan distribisyon an
Vòt SCP atravè vòt federatè. Pa montre: Revèy la ka deklannche nenpòt ki lè, sa ki ogmante konte sou bilten vòt la (e petèt pwodui yon nouvo konpoze kandida adisyonèl nominasyon).

Epi se tout! Yon fwa rezo a rive nan yon konsansis, li pare pou fè li ankò e ankò. Sou rezo peman Stellar la, sa rive apeprè yon fwa chak segonn 5: yon feat ki mande tou de sekirite ak sivivabilite SCP garanti.

SCP ka reyalize sa lè li konte sou plizyè jij vòt federasyon. Vòt federasyon an posib grasa konsèp tranch kowòm yo: seri kanmarad ke chak nod deside fè konfyans kòm yon pati nan kowòm (subjektif) li yo. Konfigirasyon sa a vle di ke konsansis ka rive jwenn menm nan yon rezo ak manm ouvè ak desepsyon Bizanten.

Pli lwen lekti

  • Ou ka jwenn papye blan SCP orijinal la isit laAk isit la spesifikasyon bouyon pou aplikasyon li.
  • Otè orijinal SCP pwotokòl la, David Mazier, eksplike li nan yon fason senplifye (men toujou teknik). isit la.
  • Petèt ou te sezi pa jwenn tèm "min" oswa "prèv travay" nan atik sa a. SCP pa sèvi ak metòd sa yo, men kèk lòt algoritm konsansis fè. Zane Witherspoon te ekri aksesib BECA de algorithm konsansis.
  • Etap pa deskripsyon etap yon rezo senp ki rive nan konsansis nan yon sèl wonn konplè nan SCP.
  • Pou lektè ki enterese nan aplikasyon SCP: gade Kòd C++, itilize pa rezo a peman Stellar, oswa Ale kòd, ki mwen te ekri pou yon pi bon konpreyansyon sou SCP.

Sous: www.habr.com

Add nouvo kòmantè