Cheburashka and torrents (fairy tale)

    All coincidences with real situations and project names are random.
    As a fan fiction.


    A fairy tale is a lie, but a hint in it - a lesson for good fellows!


    Once upon a time there lived Cheburashka in a telephone box. He lived - did not grieve, and he had a dialup - neither in a fairy tale to say, nor a pen to describe. Not 4G, of course, but he regularly downloaded books with ice cream recipes and drawings of helicopters from the tracker volshebnik.su. And pictures with oranges. And he would have lived happily ever after, but the evil Shapoklyak sent Lariska the rat to his provider with a special task: to block Cheburashka’s access to volshebnik.su!
    Soon the fairy tale affects, but not soon the thing is done. For thirty days, the rat Lariska nibbled wires, somewhere short-circuited and with its tail on the keyboard beat at night. And on the thirty-first day Cheburashka dialed the address of his favorite site - and he was a stub: so they say and so, the site is blocked.


    Cheburashka was saddened, dropped his big ears, scratched the back of his head with his paws and thought: “But what do I need this lock? I have a TOR Browser. I’ll go and download the torrent file.” No sooner said than done. A file has been downloaded, a client has been launched ... Yes, the trouble is: Cheburashkin transmission cannot request a list of participants from the server! And KTorrent can't. Cheburashka thought of a proxy in the settings to specify - and then all traffic through the proxy goes. And not only to volshebnik.su, but also to nagarmoshke.info. And not only request peers, but also the contents of the torrent. Cheburashka twirled up and went to his friend, the crocodile Gene, and said to Cheburashka: "Help me set up the torrent, you're a crocodile."


    Gene immediately guessed: Cheburashka’s torrent rocking chairs simply do not understand that certain sites can be blocked .
    Crocodile Gene, like all crocodile programmers, used OpenSUSE. After reading the source codes of transmission from the utroz, Gene went to work at the zoo, where he worked part-time as a leading alligator of the first category (mainly, of course, for his long service). Gene spent the remaining half time on freelance - along with his pension, he had enough for life, and even compassionate visitors to the zoo, no, no, and they will feed him. Having thought it over thoroughly (the benefit of the main work of intellectual efforts was not required), in the evening our crocodile began to write code, and by morning in Cheburashka there was a freshly picked up torrent client on its mailbox that had a special proxy list. If any request to the site failed, the program sequentially tried to send the request through a proxy from the list.


    Cheburashka was amused, bought glue, scissors, glued a blue helicopter according to freshly downloaded drawings and presented it to Gene. Gene was feeling sorry.
    “And what,” he thought, “if poor Cheburashka fails to find new proxy lists, or if the site with their catalog is also attacked by Shapoklyak?”
    For three days and three nights, Gena thought, he gnawed three iron roaches, worn out three iron mice, and committed three features.
    The first feature allowed clients of the new version to exchange proxy lists. The second feature allowed the client whose site is unavailable to ask any other client with the new version to independently request the participants to the tracker, in fact, to be a proxy server. And the third feature made it possible to install and launch TOR / I2P / Freenet in one click and make requests through them, if it was not possible to reach a certain site through proxies (classic or "friendlies" - still not everyone managed to install a new version of the program ) Gene sent a pullrequest on a github and went to work - to get enough sleep.


    Shapoklyak was indignant. “Damned green log!” She wrote to Gene via e-mail. “I will show you! I will sojar the server site volshebnik.su so that you can’t restore it forever!”. Gena drove an unknown address into Google, drove it into Yandex, didn’t find anything and realized that the evil old woman had registered a one-time mail box “Soap is as clear as heaven”, where the phone is not required.
    And again three days and three nights, Gena thought. And I didn’t come up with anything better than adding a new type of message to the torrent protocol - “share a torrent file”. “The torrent files are small,” he decided, “and the hard drives are now capacious. They won’t decrease a couple of tens of megabytes, it’s not necessary to store the entire base of the central tracker. Now, let each client save as many torrent files as the user allows, and periodically exchanges them with all the feasts he sees. " He wrote the code to Gene, started up, sent a pull request and went to work.


    Gena comes home from work in the evening - and the lion Chandr writes a review to him: "You’ve done bad, Gene. Spammers will be expanse. Throws our Cheburashka Shapoklyak fake torrent files with viruses and horror stories, then what?"
    And again, three days and three nights, Gena thought, he gnawed three iron pipes, and worn three iron caps. And Gene decided to apply the good old proof-of-work: to generate a container with a torrent file and description, you need to select a number, so that the hash of the container consisting of a classic torrent file, a description of it and this very “nonce” number is less a certain value. Everything is like in bitcoin, only without blockchain.
    "But who will spend hours of computing power on their computers to mine a torrent container?" - thought Gena. "And let those who mine in the description add an ad to find friends if they are single!" - Tobik came to his aid.
    Gene was delighted, redid the pullrequest ...


    Many again updated to the new version of the torrent client, in which a new menu item appeared - "Directory of known torrents". That's just a mess reigned in him - no ratings, no comments. Yes, and valuable torrents, for example, copyright bard albums for nagarmoshke.info, often disappeared from view as soon as the uploader went offline.


    • And all because, said the girl Galya, that distributing a container smoked by someone is unprofitable, there is someone else’s announcement about finding friends, and recounting hashes is resource-intensive. Let's make it possible to distribute comments on distributions, which also need to be duplicated, and insert the following rule in the catalog: the comment transmitted first, that is, along with the distribution, is displayed first, and then, according to estimates or something else. Let the comment be mined by orders of magnitude easier, then those who distribute distributions will be able to write their friends search ads!

    “What wonderful friends I have!” Thought Gena, “how well we taught Shapoklyak! And at the same time, we strengthened the open source’s position on this front - users prefer those customers who are better at circumventing locks! And most important: users didn’t have to set and configure additional programs, everything turned out to be an update of an already familiar client, and backward compatibility is preserved! "


    PS Habr is all-knowing, but haven't they started to realize this tale somewhere (in some torrent client)? Probably, qBitTorrent is moving in a similar direction (written in C ++ / Boost / Qt, is actively developing).


    Also popular now: