Cheburashka und Ströme (Märchen)

    Alle Zufälle mit realen Situationen und Projektnamen sind zufällig.
    Als Fanfiction.


    Ein Märchen ist eine Lüge, aber es gibt einen Hinweis - eine Lektion für gute Leute!


    Es war einmal Cheburashka in einer Telefonzelle. Er lebte - trauerte nicht, und er hatte eine Einwahl - weder in einem Märchen noch in einem Stift, den er beschreiben konnte. Natürlich nicht 4G, aber er hat regelmäßig Bücher mit Eisrezepten und Zeichnungen von Hubschraubern vom Tracker volshebnik.su heruntergeladen. Und Bilder mit Orangen. Und er hätte glücklich gelebt, aber der böse Shapoklyak schickte Lariska die Ratte zu seinem Versorger mit einer besonderen Aufgabe: Blockiere Cheburashkas Zugang zu volshebnik.su!
    Bald wirkt sich das Märchen aus, aber nicht bald ist die Sache erledigt. Dreißig Tage lang knabberte die Ratte Lariska an Drähten, die irgendwo kurzgeschlossen waren und mit dem Schwanz nachts auf der Tastatur standen. Und am einunddreißigsten Tag wählte Cheburashka die Adresse seiner Lieblingsseite - und er war ein Stummel: so heißt es, und so ist die Seite gesperrt.


    Cheburashka war traurig, senkte die großen Ohren, kratzte sich mit den Pfoten am Hinterkopf und dachte: "Aber was brauche ich dieses Schloss? Ich habe einen TOR-Browser. Ich werde die Torrent-Datei herunterladen." Gesagt, getan. Eine Datei wurde heruntergeladen, ein Client wurde gestartet ... Ja, das Problem ist: Cheburashkins Übertragung kann keine Teilnehmerliste vom Server anfordern! Und KTorrent kann nicht. Cheburashka überlegte, einen Proxy in den Einstellungen anzugeben - und dann geht der gesamte Datenverkehr über den Proxy. Und nicht nur an volshebnik.su, sondern auch an nagarmoshke.info. Und fordern Sie nicht nur Peers an, sondern auch den Inhalt des Torrents. Cheburashka drehte sich um und ging zu seinem Freund, dem Krokodil Gene, und sagte zu Cheburashka: "Hilf mir, den Strom aufzubauen, du bist ein Krokodil."


    Gene ahnte sofort: Cheburashkas Schaukelstühle verstehen einfach nicht, dass bestimmte Websites blockiert werden können .
    Crocodile Gene verwendete wie alle Krokodil-Programmierer OpenSUSE. Nachdem Gene den Quellcode für die Übertragung aus dem utroz gelesen hatte, arbeitete er im Zoo, wo er Teilzeit als führender Alligator der ersten Kategorie arbeitete (hauptsächlich natürlich wegen seines langen Dienstes). Gene verbrachte die verbleibende Halbzeit als Freiberufler - zusammen mit seiner Pension hatte er genug fürs Leben und sogar mitfühlende Besucher des Zoos, nein, nein, und sie werden ihn füttern. Nachdem wir uns gründlich Gedanken gemacht hatten (der Nutzen der Hauptarbeit der intellektuellen Anstrengungen erforderte es nicht), begann unser Krokodil am Abend, Code zu schreiben, und am Morgen in Cheburashka befand sich ein frisch abgeholter Torrent-Client in seinem Briefkasten, der eine spezielle Proxy-Liste hatte. Wenn eine Anforderung an die Site fehlschlug, versuchte das Programm nacheinander, die Anforderung über einen Proxy aus der Liste zu senden.


    Cheburashka amüsierte sich, kaufte Kleber, Schere, klebte einen blauen Hubschrauber nach frisch heruntergeladenen Zeichnungen und gab ihn Gena. Gene hatte Mitleid.
    "Und was", dachte er, "wenn die arme Cheburashka keine neuen Proxy-Listen findet oder wenn die Site mit ihrem Katalog auch von Shapoklyak angegriffen wird?"
    Drei Tage und drei Nächte lang dachte Gena, drei nagende Eisennager, drei abgenutzte Eisenmäuse - und er verpflichtete sich zu drei Gesichtern.
    Mit der ersten Funktion konnten Clients der neuen Version Proxy-Listen austauschen. Die zweite Funktion ermöglichte es dem Client, dessen Site nicht verfügbar ist, einen anderen Client mit der neuen Version aufzufordern, die Teilnehmer unabhängig vom Tracker als Proxyserver anzufordern. Und die dritte Funktion ermöglichte es, TOR / I2P / Freenet mit einem Klick zu installieren und zu starten und Anfragen zu stellen, wenn es nicht möglich war, eine Website über einen Proxy zu erreichen (klassische oder "Freundschaftsspiele") - es gelang immer noch nicht jedem, eine neue Version des Programms zu installieren ) Gene schickte eine Pullrequest auf einen Github und machte sich an die Arbeit - um genug Schlaf zu bekommen.


    Shapoklyak war empört. "Verdammt grünes Protokoll!", Schrieb sie per E-Mail an Gene. "Ich werde es Ihnen zeigen! Ich werde die Server-Site volshebnik.su so einstellen, dass Sie sie nicht für immer wiederherstellen können!" Gena fuhr eine unbekannte Adresse in Google ein, fuhr sie in Yandex ein, fand nichts und stellte fest, dass die böse alte Frau einen einmaligen Briefkasten "Soap is so clear as heaven" registriert hatte, in dem das Telefon nicht benötigt wird.
    Und wieder drei Tage und drei Nächte, dachte Gena. Und ich habe mir nichts Besseres ausgedacht, als dem Torrent-Protokoll einen neuen Nachrichtentyp hinzuzufügen - "Eine Torrent-Datei freigeben". "Die Torrent-Dateien sind klein", entschied er, "und die Festplatten sind jetzt groß. Sie werden nicht ein paar zehn Megabyte kleiner, es ist nicht erforderlich, die gesamte Basis des zentralen Trackers zu speichern. Lassen Sie jetzt jeden Client so viele Torrent-Dateien speichern, wie der Benutzer zulässt, und das in regelmäßigen Abständen." tauscht sie mit allen Festen aus, die er sieht. " Er schrieb den Code an Gene, startete, schickte eine Pull-Anfrage und machte sich an die Arbeit.


    Gena kommt am Abend von der Arbeit nach Hause - und der Löwe Chandr schreibt eine Kritik an ihn: "Du hast es schlecht gemacht, Gene. Spammer werden groß. Wirft unsere gefälschten Cheburashka Shapoklyak-Torrent-Dateien mit Viren und Horrorgeschichten, was dann?"
    Und wieder, drei Tage und drei Nächte, dachte Gena, nagte an drei Eisenrohren und trug drei Eisenkappen. Und Gene entschied sich für den guten alten Beweis: Um einen Container mit einer Torrent-Datei und einer Beschreibung zu generieren, müssen Sie eine Nummer auswählen, damit der Hash des Containers, der aus einer klassischen Torrent-Datei, einer Beschreibung und dieser „Nonce“ -Nummer besteht, geringer ist ein bestimmter Wert. Alles ist wie bei Bitcoin, nur ohne Blockchain.
    "Aber wer wird stundenlang Rechenleistung auf seinen Computern verbrauchen, um einen Torrent-Container abzubauen?" - dachte Gena. "Und lassen Sie diejenigen, die in der Beschreibung meinen, eine Anzeige hinzufügen, um Freunde zu finden, wenn sie Single sind!" - Tobik kam ihm zu Hilfe.
    Gene war entzückt, überarbeitete die Pullrequest ...


    Viele wurden erneut auf die neue Version des Torrent-Clients aktualisiert, in der ein neuer Menüpunkt angezeigt wurde - "Verzeichnis bekannter Torrents". Das ist nur ein Chaos in ihm - keine Bewertungen, keine Kommentare. Ja, und wertvolle Torrents, zum Beispiel Copyright-Barde-Alben für nagarmoshke.info, verschwanden oft aus der Ansicht, sobald der Uploader offline ging.


    • Und alles nur, sagte das Mädchen Galya, dass das Verteilen eines von jemandem gerauchten Containers unrentabel ist, dass jemand anders angekündigt hat, Freunde zu finden, und dass das Nachzählen von Hashes ressourcenintensiv ist. Ermöglichen wir die Verteilung von Kommentaren zu Verteilungen, die ebenfalls dupliziert werden müssen, und fügen Sie die folgende Regel in den Katalog ein: Der zuerst übermittelte Kommentar, dh zusammen mit der Verteilung, wird zuerst und dann nach Schätzungen oder etwas anderem angezeigt. Lassen Sie den Kommentar um Größenordnungen einfacher abbauen, dann können diejenigen, die Distributionen vertreiben, Suchanzeigen für ihre Freunde verfassen!

    "Was für wundervolle Freunde ich habe!", Dachte Gena, "als wir Shapoklyak gut beigebracht haben! Gleichzeitig haben wir die Position von Open Source an dieser Front gestärkt - Benutzer bevorzugen diejenigen Kunden, die Schlösser besser umgehen können! Und das Wichtigste: Benutzer mussten nicht einstellen." und konfigurieren Sie zusätzliche Programme, alles stellte sich als Update für einen bereits vertrauten Client heraus, und die Abwärtskompatibilität wurde gespeichert! "


    PS Habr ist allwissend, aber haben sie angefangen, dieses Märchen irgendwo zu realisieren (in einem Torrent-Client)? Wahrscheinlich bewegt sich qBitTorrent in eine ähnliche Richtung (geschrieben in C ++ / Boost / Qt, aktiv in der Entwicklung).


    Jetzt auch beliebt: