Dizajniranje P2P aplikacije

Dizajniranje P2P aplikacije

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4576

Planiram da radim jednu aplikaciju za upravljanje unosima pa još razmišljam o dizajnu. Prvo mi je pala napamet P2P mreža koja bi koristila blockchain, no to mi je previše komplikovano za razvoj (a i zauzima dosta prostora). Druga stvar je ta što blockchain u ovom slučaju nema neku svrhu jer postoji centralna tačka sa koje se podaci unose i dalje šire kroz mrežu povezanih korisnika.

To funkcioniše ovako; svaki korisnik ima svoj ID i par RSA ključeva (javni i privatni). Pre slanja podataka uzimam ID-eve i javne ključeve svakog korisnika. Šifriranje odgovarajućih podataka za svakog korisnika funkcioniše ovako:



U prvom koraku šifriram informacije pomoću AES ključa (pošto RSA nije za veće podatke). U drugom koraku, taj ključ šifriram javnim ključem korisnika kome su ti podaci namenjeni (primaoca). U trećem koraku šaljem ta dva podatka korisniku. U četvrtom koraku korisnik pomoću svog privatnog ključa dekriptuje poslati AES ključ i u petom taj dekriptovani ključ koristi kako bi dekriptovao informacije.

Pošto se radi o relativno malom broju korisnika i manjoj količini informacija u vidu JSON-a (ni pola kilobajta), mislio sam da umesto trećeg koraka napravim jedan JSON fajl od svih podataka u ovom formatu:

  1. {
  2.   [
  3.     {
  4.       "id": 3876,
  5.       "data": << enkriptovani podaci >>,
  6.       "key": << enkriptovan AES ključ >>
  7.     },
  8.     {
  9.       "id": 2981,
  10.       "data": << enkriptovani podaci >>,
  11.       "key": << enkriptovan AES ključ >>
  12.     },
  13.     ...   
  14.   ]
  15. }

Kreiram jedan torent fajl, iskoristim neku biblioteku za BitTorrent protokol i da korisnici tako preuzimaju sadržaj. Time će podaci biti dostupni na dosta uređaja, a korisnik će moći da pročita samo one podatke koji su mu namenjeni.

Tu međutim postoji jedan problem; podaci se često menjaju, tako da torent nije dobro rešenje. Interesuje me da li postoje neko srećnije rešenje, a koje nije toliko komplikovano za implementaciju? Jedino na šta sam za sada naišao je WebRTC.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 880 korisnika na forumu :: 63 registrovanih, 10 sakrivenih i 807 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: aleksmajstor, Asteker, Bojadin Strumski, Cigi, Cirkon, cole77, dankisha, Dimitrise93, DonRumataEstorski, Dovla 1980, dule10savic, dzoni19, esko_hz, gagidjuric, Gargamel008, Georgius, Helket, hellenic, Ir, ivanR164, Jakonjveliki, Kajzer Soze, kib, Kibice, loon123, Makarid, Makeitdrip, marera, MB120mm, mercedesamg, Milan A. Nikolic, moldway, mrav pesadinac, Mskok, Ne doznajem se u oružje, nelezele, Nikola0575, nikolapetkovic, Niske, nnovakis, Obrad2, Orc, Paklenica, Povratak1912, Prašinar, repac, S.Palestinac, S2M, samo opusteno, saputnik plavetnila, Sarmat, sspp, stefan95, strn, t84dar, theNedjeljko, Token, Vlada1389, voja64, vukovi, zlaya011, zziko, 800077