Izplatītās hash tabulas

NOWHERE Network For Latvia
6 min readOct 31, 2020

--

Datu glabāšana un maršrutēšana decentralizētās lietojumprogrammās

Šis ir pirmais raksts sērijā, kurā izpētīti mūsdienu decentralizēto sistēmu, tostarp Keep Network, pamatā esošie jēdzieni.

Kā jūs rīkotos ātri un efektīvi, uzglabājot un izgūstot lielu datu apjomu? Un, kad es saku liels, es domāju eksabaitu secībā. Šī ir daļa no divdaļīgas sērijas par datu saglabāšanu un izgūšanu Keep tīklam.

Datu glabāšana ir milzīga problēma, un tā pasliktinās, jo tiek ģenerēts vairāk digitālā satura un vairāk datu glabājas mākonī. Risinājumu var atrast tā sauktajās izplatītās jaukšanas tabulās jeb DHT. Šajā mūsu sērijas pirmajā daļā mēs izpētīsim, kas ir DHT un kā tos izmanto plaši pazīstamas organizācijas, piemēram, BitTorrent un Storj, un jauni tīkli, piemēram, IPFS.

DHT pašlaik ir nozīmīgu jauninājumu joma, un tie ir viens no izplatīto tehnoloģiju pamatelementiem. Tie veido failu glabāšanas un mezglu atklāšanas mugurkaulu, kas ir būtiska Keep klienta vajadzība. Klientiem jāspēj atrast viens otru un koplietot datus, lai viņi būtu produktīvi tīkla dalībnieki. Labs DHT tāpēc ir būtisks Keep panākumiem.

Pirms mēs dziļi ienirstam izplatītajās hash tabulās, ātri pārskatīsim, kas ir hash tabula un kā tā darbojas.

Hash tabula

Hash tabula, kas pazīstama arī kā hash karte, ir datu struktūras veids. Lai saprastu jaukšanas tabulu, izmantosim kā piemēru bibliotēkas grāmatu plauktu. Tipiskā bibliotēkā Dewey decimāldaļu sistēma (DDS) tiek izmantota, lai izveidotu krātuves ID, ko sauc par zvana numuru, kas katrai grāmatai piešķir noteiktu glabāšanas un izguves vietu. Tas tiek radīts, piemērojot Dewey Decimal System noteikumus grāmatai, pamatojoties uz kategoriju, uz kuru tā attiecas. Bibliotēkas plauktos ir numuri, kas atbilst DDS pieejamo zvanu numuru diapazonam.

Dewey Decimal System Categories

Jūs, iespējams, atceraties no savām skolas dienām, ka tas ļoti atviegloja grāmatu atrašanu. Viss, kas jums bija jādara, bija meklēt grāmatas zvana numuru un pēc tam pārvietoties pa bibliotēku, izmantojot karti, kur atradās grāmatu plauktu rindas ar konkrētiem zvana numuru prefiksiem. Kad atradāt rindu ar pareizu prefiksu, pēc tam grāmatu atradīsit, secīgi sekojot numuriem individuālajā plauktā, līdz atradīsit vēlamo grāmatu.

Atgriezīsimies no grāmatu zemes uz bitu zemi. Dewey decimālā sistēma zvanu numuru piešķiršanai daudzējādā ziņā ir ļoti vienkārša jaucējfunkcija, un zvana numurs ir jaukšanas vērtība. Grāmatas var uzskatīt par “datiem”, un plaukti ir analogi datu glabāšanas vietām ar hash vērtībām, lai tās unikāli identificētu. Visbeidzot, jūsu smadzenes un telpiskā kartēšanas spēja ir līdzvērtīga maršrutēšanas algoritmam, kas ļauj izmantot grāmatas jaukšanas vērtību, lai to izgūtu no glabāšanas vietas.

Hash funkcija, hash vērtība un maršrutēšanas algoritms ir galvenie hash tabulas elementi. Jaucējgalds tos izmanto, lai uzreiz un bez kļūdām uzglabātu un izgūtu lielu datu apjomu. Lai to paveiktu, hash funkcijai, hash vērtībai un maršrutēšanas algoritmam ir jābūt ļoti specifiskai funkcionalitātei.

Hash funkcijai jābūt deterministiskai, kas nozīmē, ka starp ieeju un izvadi ir viens pret vienu kartējums. Maiņas vērtībai ir jāpieder pietiekami lielai ID vietai, lai varētu uzglabāt lielu datu apjomu. Lai varētu uzreiz iegūt lielu datu apjomu, maršrutēšanas algoritmam jābūt efektīvam; i., tai ir jāizgūst un jāuzglabā dati no vietas, kurā ir vismazāk operāciju.

Tālruņu numuru datu bāze kā hash tabulas piemērs

No hash tabulām līdz izplatītām hash tabulām

Lai iegūtu augsta līmeņa izpratni par DHT darbību, mēs varam paplašināt mūsu bibliotēku analoģiju, iekļaujot bibliotēkas dažādās valstīs un kontinentos. Pieņemsim, ka mēs vēlējāmies bibliotēkas lietotājiem nodrošināt piekļuvi grāmatām, kas atrodas jebkur pasaulē. Lai to izdarītu, es vēlos jūs iepazīstināt ar mūsu bibliotekāru Tomu.

Toms kā bibliotekārs ir atbildīgs par grāmatu glabāšanu un grāmatu atrašanu bibliotēkas apmeklētājiem. Viņš strādā vietējā bibliotēkā Denverā, Kolorādo štatā. Šajā bibliotēkā var glabāt diezgan daudz grāmatu, taču ne visas grāmatas, kuras vietējie bibliotēkas apmeklētāji varētu vēlēties.

Ja mūsu bibliotēkas sistēma būtu strukturēta līdzīgi kā izplatītajai hash tabulai, Toma bibliotēka būtu viens tīkla mezgls. Lai tīklā atrastu grāmatu, Tomam būtu saraksts ar tuvākajām bibliotēkām, ar kurām viņš vispirms var sazināties, lai uzzinātu, vai ir pieejama pieprasītā grāmata. Ja nevienam no viņiem nebūtu grāmatas, viņi sazinātos ar savām tuvākajām bibliotēkām un tā tālāk, līdz grāmata tika atrasta, vai arī bibliotēkas nepalika.

Turklāt, tā kā ne visas grāmatas var glabāt katrā bibliotēkā, sistēma var noteikt, ka dažas bibliotēkas ir atbildīgas par dažām grāmatām, nevis par citām. Atbildību varētu piešķirt, pamatojoties uz grāmatu metadatiem, piemēram, izcelsmes valsti, valodu utt.

Atkal no grāmatu zemes līdz bitu zemei tipiskā izplatītā jaukšanas tabulā dati tiek glabāti daudzos mezglos (bibliotēkās), kas ienāk sistēmā un iziet no tā. DHT protokols nosaka, kā dati tiek sadalīti starp šiem mezgliem, nodrošinot, ka tos var viegli meklēt un izgūt.

Izplatīto hash tabulu evolūcija

Galveno izplatīto hash tabulu parādīšanās notika 1990. gadu beigās un 2000. gadu sākumā, sakrītot ar tādu P2P sistēmu parādīšanos kā Gnutella, Freenet, Napster un BitTorrent. Šīs sistēmas centās izmantot sadalītās krātuves un skaitļošanas resursu priekšrocības un izstrādāja savus protokolus, lai apmierinātu viņu vajadzības.

Šie ir daži ievērojami, bet ne visaptveroši notikumi DHT vēsturē:

Napster

Napster izmantoja centrālo indeksēšanas serveri, lai nodrošinātu to lietotāju “resursdatoru sarakstu”, kuri pašlaik ir pieteikušies sistēmā. Serveris nesaturēja nevienu failu, taču resursdatora sarakstā tajā bija lietotāju mitinātu failu saraksts. Kad lietotājs meklēja failu, izmantojot Napster klientu, serveris pārlūkoja resursdatora sarakstu un viņu failu sarakstu, lai redzētu, kam tie bija, un pieprasītājam iesniedza to saimnieku sarakstu, kuriem bija viņu fails. Pēc tam lietotāja Napster klients izveido savienojumu ar izvēlēto lietotāja resursdatoru un uzsāk lejupielādi. Pēc lejupielādes pabeigšanas klients pārtrauks savienojumu.

Ja mēs piemērojam mūsu bibliotēkas līdzību Napster, tas būtu tāpat kā ar centrālo bibliotēku, kas būtu atbildīga par grāmatu atrašanās vietas saglabāšanu visās bibliotēkās, kuras jebkad ar to ir mijiedarbojušās. Ja lietotājs vēlas grāmatu, viņam vispirms jāsazinās ar centrālo bibliotēku, jāatgūst tās bibliotēkas informācija, kurā grāmata tika glabāta, un pēc tam jāsazinās ar šo bibliotēku, lai iegūtu grāmatu.

Galvenais Napster kā DHT trūkums bija tā centrālais indeksēšanas serveris, kas radīja vienotu sistēmas kļūmes punktu.

BitTorrent

BitTorrent izgudroja moderno DHT. Pakalpojums tika palaists 2005. gadā, izmantojot Mainline DHT protokolu. Mainline DHT ir ļoti laba izplatītā sistēma un uzlabojums salīdzinājumā ar Napster sistēmu, jo nav galvenā atteices punkta. Sistēma organiski pielāgojas mezgliem, kas ienāk un iziet no sistēmas. Šis aspekts ir galvenais BitTorrent darbībā, jo pārsūtīšanas ātrums ir augsts, lietotājiem visā pasaulē pievienojoties sistēmai un to atstājot neparedzamā laikā.

BitTorrent sistēma vairāk atgādina īstu DHT. Iepriekš aprakstītā izplatītās bibliotēkas sistēma ir labs augsta līmeņa skats uz to, kā darbojas BitTorrent sistēma.

Storj

Storj savieno cilvēkus ar krātuves vajadzībām ar krātuves nodrošinātājiem, izmantojot smartkontraktus par Storj protokolu. Storj protokols izmanto modificētu Kademlia protokola versiju, kurai ir kopīgas daudzas BitTorrent Mainline DHT funkcijas.

IPFS

Līdzīgi kā tīmeklī, arī IPFS (Inter Planetary File System) ir izplatīta failu sistēma, kas saista mezglus, kas satur konkrētus failu tipus. Atšķirībā no globālā tīmekļa, saturs netiek glabāts atsevišķos serveros, bet tiek izplatīts vairākos mezglos. Lai izplatītu šo saturu, IPFS izmanto BitTorrent, piemēram, DHT protokolu, ko izstrādājusi Protocol Labs. IPFS ir atvērtā koda kods, un Katalonijas Pirātu partija to nesen izmantoja, lai mitinātu vietnes, kuras bloķēja Spānijas Konstitucionālā tiesa.

Filecoin

Filecoin ir izplatīts krātuves tīkls, kurā tiek izmantoti IPFS protokola elementi kopā ar stimulējošu slāni krātuves nodrošinātājiem. Filecoin protokolu pašlaik izstrādā Protocol Labs, tā pati grupa, kas izstrādā IPFS.

Keep

DHT ir kritisks rīku Keep rīku rīks. Līdzīgi kā iepriekš uzskaitītie lietošanas gadījumi, Keep klienti tiks izplatīti visā pasaulē un piedzīvos satricinājumu. Papildus tam viņiem var rasties arī ļaunprātīgu personu uzbrukumi, un Keep protokolam ir nepārtraukti jāattīstās, lai tas būtu izturīgs.

Keep izmantos DHT, lai izveidotu spēcīgu izplatītu protokolu, kas varētu apmierināt šīs vajadzības un būtu piemērots atvērtā koda izstrādei. Atvērtā koda izmantošana ļaus globālam neatkarīgu izstrādātāju tīklam ieviest jauninājumus protokolā. Viens no pirmajiem Keep komandas centieniem būs atvērtā koda libp2p tīkla kaudzes izmantošana, lai iespējotu Keep klientu atrašanu. Sekojiet līdzi mūsu decentralizētās izglītības sērijas otrajai daļai, ko sagatavoja pats Keepis Niks Grinkēvičs par libp2p tīklu.

Uzzināt vairāk

Tulkojis: nowhere #6182

--

--

NOWHERE Network For Latvia
NOWHERE Network For Latvia

Written by NOWHERE Network For Latvia

NOWHERE Network? NOWHERE Tīkls? Tātad- iespējams Jums interesējoši raksti latviešu valodā, kas tulkoti informatīvu iemeslu un arī neliela pašlabuma gūšanai.

No responses yet