Chodzi mi po głowie od dłuższego czasu taki pomysł na program. Czasem jak się coś ściąga z torrentów to brakuje seedów albo peerow , a co jak by stworzyć taką sieć że każdy udostępnia np. 1 gb swojego dysku i 1 mb każdego pliku wczytywanego do tej sieci trzymał każdy użytkownik tej sieci. Oczywiście potrzebne są kopie zapasowe więc ten sam 1 mb trzymał by więcej niż jeden użytkownik. Danych nie można było by kasować , ale w momencie w którym kończy się miejsce nowe dane oznaczane były by jako pamięć krótkotrwała. Przebywały by w niej 48 godzin i w tym czasie liczone były by ściągnięcia danego pliku. Jeśli liczba odwołań w ciągu tych 48 godzin była by wyższa niż najniższa liczba odwołań z "pamięci długotrwałej" to dane z pamięci długotrwałej były by zastępowane nowymi.

Zauważcie że 99 % tego co mamy na dyskach to są takie same informacje jakie posiada cała reszta społeczeństwa. 1 procent to to co my wytworzyliśmy. A więc jeśli każdy z nas zrobiłby kopie zapasową swego dysku do tej sieci to większość danych by się pokrywała a więc nie zajmowała by miejsca. Z takiej sieci możemy pobierać dane z właściwie nieskończoną prędkością! Wystarczy puścić informację że chcemy takiego a takiego pliku , rozpoczynamy pobieranie o tej godzinie i pobieramy z taką prędkością. Wszystkie komputery wysyłały by do nas dane wyliczając sobie kiedy powinny to zrobić(udp). Wczytywanie danych do sieci też było by potwornie szybkie , ponieważ większość danych by się pokrywała.

Aby jeszcze przyśpieszyć pobieranie można by dodać do programu opcje korzystania z sieci sąsiada. Sąsiedzi tworzą sieć lokalną i jeśli chcesz pobrać dużo danych to twój komputer wpierw wysyła zapytanie po sieci lokalnej do sąsiadów. Sąsiedzi automatycznie ściągają cześć danych i przesyłają po sieci lokalnej. A więc jeśli masz 10 sąsiadów z łączem 50 mb to mamy 500 Mb szybkości pobierania!! To samo oczywiście można było by robić z wysyłaniem danych. A przy okazji ludzie dążąc do zwiększenia swojej prędkości łączyli by się w sieci. Co z kolei można wykorzystać do stworzenia internetu po sieci lokalnej. Ja wiem że taka się ma mały ping , ale można nią wysyłać dane wieloma kanałami więc jest jak pociąg towarowy. No i jest niezależna od jakiegokolwiek rządu przy okazji.

Jak by tego było mało to można by dodać do tego kompresje plików. Przy kompresji słownikowej , gdzie każdy komputer miał by część słownika , osiągnęlibyśmy olbrzymi stopień kompresji! Każdy komputer musiał by co prawda ściągać cały plik(a nie 1 mb) ale potem analizował by sobie powoli te dane i patrzał co się zgadza z jego słownikiem. Całość można było by jeszcze przyśpieszyć przez kartę graficzną. (w c# świetnie nadaje się do tego slimdx). Ponadto kompresja powodawała by znaczne przyśpieszenie ściągania danych. Wysyłane były by dane skompresowane słownikowo a więc 3 krotne przyśpieszenie pobierania danych z sieci. Przy kompresji można by uzyskiwać właściwie eksabajty pojemności. Im więcej danych tym lepsza kompresja.

Przy założeniu że mamy 100 000 użytkowników co jest niewielką liczbą przy torrentach ! daje nam to 100 terabajtów. Jeśli teraz podzielimy to przez 10 ze względu na kopie zapasowe to mamy 10 terabajtów. A przecież udostępniliśmy tylko 1 GB. W dzisiejszych czasach udostępnienie np. 10 gb to żaden problem , nawet 100 gb to żaden problem. Ja w chwili kiedy to pisze w torrencie udostępniam 120 GB. Daje nam to 1 petabajt (bez kompresji).

W rzeczywistości , użytkowników było by co najmniej 1 milion ponadto większość danych się powtarza. Przy udostępnieniu 200 gb i 1 000 000 użytkowników daje nam to 20 petabajtów bez żadnej nawet najprostszej kompresji.

Wszystkie gry i filmy nie były by w stanie zająć tej olbrzymiej powierzchni. Można by więc wykorzystać to miejsce pod strony internetowe. Zupełnie darmowe serwery dla najczęściej odwiedzanych stron internetowych. Dzięki łatwemu dostępowi do danych, każdy mógłby zrobić konkurencje dla korporacji takich jak google czy youtube.

Co sądzicie o takim pomyśle ? Da się to zrobić ? Bo z punktu widzenia programistycznego jest to wręcz banalny program. Tzn. 4 pliki na dysku , plik danych , plik z listą nazw plików pamięci długotrwałej, plik z lista nazw pamięci krótkotrwałej, plik z listą ip. Nawiązać połączenie i dograć dane, wysłać dane. Użytkownik ustala jaki procent pliku ma się znajdować na jego dysku, a program losuje który mb ma się tam znaleźć.