Kuriant paskirstytą skaičiavimo tinklą, gali būti įdiegta įvairių tipų paskirstytos sistemos architektūra. Šiame straipsnyje mes giliau pažvelgsime į paskirstytos sistemos architektūros tipus, ypatingą dėmesį skirdami blokų grandinės tarpusavio paskirstytos sistemos architektūrai..

Paskirstytos sistemos architektūros tipai

Kliento-serverio modelis

Tokios programos kaip el. Pašto ar tinklo spausdintuvai paprastai naudoja kliento-serverio architektūrą. Iš esmės teikėjai (vadinami serveriais) ir prašytojai (vadinami klientais) turi skirtingus vaidmenis. Serveris vykdo visus apdorojimo, duomenų valdymo ir skaičiavimo reikalavimus, kuriuos klientas gali pareikalauti. Jei duomenų bazės įrašas pasikeičia, klientui nebūtinai reikia nieko daryti. Reikia pakeisti tik serverio duomenis.

Šio modelio serveris nebūtinai turi būti vienas įrenginys; tai gali būti keli serveriai, atliekantys panašias užduotis, paskirstyti darbo krūvį. Modelis nurodo kliento ir serverio vaidmenį, o ne konkrečią aparatinę įrangą.

Kliento-serverio modelio schema

Kliento ir serverio modelio schema. Šaltinis: „Wikimedia Commons“

Kliento ir serverio sąveiką naudojame kiekvieną dieną, kiekvieną kartą naudodami nešiojamąjį kompiuterį ar išmanųjį telefoną naršydami internete, naudodami socialinės žiniasklaidos programas, žaisdami mobiliuosius žaidimus ar žiūrėdami filmą „Netflix“. Kliento ir serverio paskirstytos sistemos architektūra yra tai, į ką kalbame kalbėdami apie „centralizuotas“ kompiuterines sistemas, priešingai nei „blockchain“ kaip decentralizuota paskirstytos sistemos architektūra.

Nors tai yra paprastas paaiškinimas, yra įvairių tipų kliento-serverio architektūra, pavyzdžiui, trijų pakopų. Šis modelis apima serverio, kuriame veikia pati programa, atskyrimą nuo serverio, kuriame yra duomenys už programos. Yra ir kitų, tačiau kadangi jie nėra susiję su „blockchain“, čia jų visų neanalizuosime.

„Peer-to-Peer“ modelis

„Peer-to-peer“ (P2P) paskirstytos sistemos architektūra neturi jokių konkrečių klientų ar serverių. P2P tinklas yra paskirstyta mašinų sistema, vadinama mazgais. Visi mazgai gali atlikti kliento ir serverio vaidmenį vienu metu arba skirtingais laiko momentais. Modelis būdingas pačiam vardui – P2P tinkle kiekviena mašina yra lygiavertė bendraamžė, o ne klientas ar serveris.

P2P tinklai išpopuliarėjo išleidus dalijimosi failais paslaugas, pavyzdžiui, muzikos dalijimosi svetainę „Napster“. P2P idėja įgijo tam tikrą kulto statusą, nes sistemos galėjo veikti nepriklausomai nuo bet kokios centralizuotos kontrolės. Šiandien, už „blockchain“ ribų, failų bendrinimo protokolas „BitTorrent“ yra bene didžiausias ir labiausiai atpažįstamas vardas, susijęs su P2P tinklais.

Nestruktūrizuoti ir struktūriniai tinklai

Atsižvelgiant į tai, kaip mazgai susieja vienas su kitu ir kaip duomenys indeksuojami ir atrandami, P2P tinklai klasifikuojami kaip struktūrizuoti arba nestruktūruoti. Nestruktūrizuotoje sistemoje mazgai tiesiog užmezga atsitiktinius ryšius. Nestruktūrizuotus tinklus lengva sukurti ir didinti arba mažinti.

Nestruktūrizuota „peer-to-peer“ tinklo diagrama (šaltinis: „Wikimedia Commons“)

Tačiau, kadangi jie nestruktūruoti, tai žymiai apsunkina indeksavimą. Jei mazgas nori rasti tam tikrą duomenų dalį ar kitą mazgą, jis turi užtvindyti tinklą, kad pasiektų kuo daugiau mazgų, kurie gali būti potencialūs paieškos tikslai. Tai naudoja daugiau tinklo galios, nes visi mazgai turi apdoroti visas užklausas. Be to, jei duomenų yra retai, jų gali nebūti, jei visi tinklo mazgai negali apdoroti visų užklausų. Nestruktūrizuotų tinklų pavyzdžiai yra „Kazaa“ ir „Limewire“.

Kita vertus, bet kokius duomenis struktūrizuotame tinkle rasti lengva. Struktūriniai tinklai naudoja paskirstytą maišos lentelę, kad nustatytų, kurie bendraamžiai turi kokius failus ir jų versijas. Akordas yra vienas struktūruoto P2P tinklo pavyzdžių.

Paskirstyta maišos lentelė

Paskirstytos maišos lentelės schema, naudojama struktūriniuose P2P tinkluose. Šaltinis: „Wikimedia Commons“

Kodėl „Blockchain“ yra ypatinga

P2P tinklai, kaip grynas paskirstytos sistemos architektūros modelis, turi įvairių pranašumų ir iššūkių. Pagrindinis privalumas yra atsparumas prastovoms, nes nėra pagrindinio gedimo taško.

Tačiau kadangi P2P tinklo mazgai veikia ir kaip klientas, ir kaip serveris, jie yra labiau pažeidžiami atakų. Tokios atakos gali apimti paslaugų atsisakymą, kenkėjiškų programų ar sugadintų duomenų platinimą. Vienas tyrimas nustatė, kad 15 procentų iš pusės milijono iš „Kazaa“ atsisiųstų failų buvo užkrėsti 52 skirtingais virusais.

Nors blokų grandinės nėra 100 proc. Nepaperkamos, Satoshi parašė išradingą pažeidžiamumo problemos sprendimą, kai parašė „Bitcoin“ Baltas popierius. Įvedę sutarimo protokolą, visi „Bitcoin“ tinklo mazgai turi sutikti, kad operacija galioja. Naudojant žaidimų teoriją kiekvienas mazgas varžosi dėl to, kad išgautų kitą bloką.

Sėkmingai išgaunant kitą bloką, gaunamas atlygis, suteikiantis mazgų operatoriams paskatą išlaikyti tinklo švarą. Jei 51 proc. Ar daugiau mazgų operatorių dirba kartu, kad konkuruotų dėl kito bloko atlygio, „blockchain“ ir toliau veikia be išpuolių.

Išvada

Žinoma, yra ir kitų „Bitcoin“ elementų, tokių kaip maišos ir kriptografinių parašų naudojimas, kurie sukuria skaitmeninės vertės saugyklą. Tačiau „Satoshi“ sugalvotas sprendimas, kaip įveikti P2P paskirstytos sistemos architektūros būdingus trūkumus, išlieka vienu iš patraukliausių ir novatoriškiausių „blockchain“ komponentų.

Nuo pat Bitcoin įkūrimo daugelis kitų sugalvojo išradingus kūrinius, paremtus Satoshi idėja. Tie pokyčiai tęsiasi iki šiol. „Blockchain“ reiškia revoliucinį paskirstytos sistemos architektūros žingsnį. Be to, technologija vis tiek tobulės dar daugelį metų į priekį.

Paveikslėlis sutinkamas su „Pixabay“