All matches with real situations and project titles are random.
On the rights of fanfica.
A fairy tale is a lie, but there is a hint in it - a good lesson for the good fellows!
Once upon a time there lived a Cheburashka, as usual, in a telephone booth. He lived - he did not hurt, and he had a dialup - neither to say in a fairy tale nor to describe with a pen. Not 4G, of course, but he regularly downloaded books with ice cream recipes and helicopter drawings from the tracker volshebnik.su. And pictures with oranges. And he would live in clover, but the evil Shapoklyak sent a provider to Lariska with a special task to his provider: block Cheburashka from accessing volshebnik.su!
Soon the tale is affected, but it is not done soon. For thirty days, the rat Lariska gnawed at the wires, somewhere short-circuited something and tapped on the keyboard at nights. And on the thirty-first day Cheburashka dialed the address of his favorite site - and he stub: so they say, and so, the site is blocked.
Cheburashka got sad, lowered his big ears, scratched the back of his head and thought: “What do I have this blocking? I have the TOR Browser. I'll go and download the torrent file.” No sooner said than done. A file was downloaded, a client was launched ... But the trouble: Cheburashkin transmission cannot request a list of participants from the server! And KTorrent can not. I thought up Cheburashka proxy in the settings to specify - and then all the traffic through the proxy goes. And not only to volshebnik.su, but also to nagarmoshke.info. And not only the request peers, but the contents of the torrent. Cheburashka twisted and went to his comrade Gene, a crocodile, and said Cheburashka: "Help me set up a torrent, you crocodile."
Gene immediately guessed: torrent rocking Cheburashki just do not understand that some sites can be blocked .
Crocodile Gena, like all crocodile programmers, used openSUSE. After rereading the transmission sources from the morning, Gena went to work at the zoo, where he worked part-time as the leading alligator of the first category (mostly, of course, for long years). The remaining half-time, Gene spent on freelancing - together with a pension, life was enough, and even compassionate visitors to the zoo no-no and feed it. Having thought it over carefully (the main work of intellectual efforts did not require it), in the evening our crocodile began to write code, and by the morning at Cheburashka a freshly assembled torrent client was lying on the mailbox, which had a special proxy list. If any request to the site ended in failure - the program consistently tried to send a request through a proxy from the list.
Cheburashka cheered up, bought glue, scissors, glued a blue helicopter according to the freshly drafted drawings and presented it to Gene. Gene was deeply moved.
“And what,” he thought, “if poor Cheburashka fails to find new proxy lists, or is the site with their catalog also attacked by Shapoklyak?”
For three days and three nights, Gena thought, three iron roaches gnawed, three iron mice screamed, and three features zakommitil.
The first feature allowed clients of the new version to exchange lists of proxies. The second feature allowed the client with whom the site is unavailable to ask any other client with a new version to independently make a request from the participants to the tracker, in fact, be a proxy server. And the third feature allowed in one click to install and run TOR / I2P / Freenet and make requests through them if it’s impossible to reach a certain site through a proxy (classic or "friend" - after all, they still didn’t have time to install a new version of the program ). He sent Gene pullkrequest on a githaba and went to work - sleep.
Shapoklyak was indignant. “Damn green log!” She wrote to Gene by e-mail. “I will show you! I’m so izgazhu server site volshebnik.su that you cannot ever restore!”. Gene unknown address in Google drove in, drove in Yandex, did not find anything and realized that the evil old woman registered a disposable box in the mail "Soap - clean as the sky", where the phone does not require.
And again, three days and three nights, Gena thought. And I didn’t come up with anything better than adding a new kind of message to the torrent protocol - “share torrent file”. "The torrent files are small," he decided, "and the hard drives are now roomy. They won't lose anything from a couple of dozen megabytes, it’s not necessary to keep the entire central tracker base. Now let each client save as many torrent files as the user allows him, and periodically exchanges them with all the feasts he sees. " I wrote Gene code, started up, sent a pull-request and went to work.
Gena comes home from work in the evening - and the lion Chandr reviews him: "You did badly, Gena. Spammers will be expanse. Throws our Cheburashka Shapoklyak with fake torrent files with viruses and horror stories, what then?".
And again, for three days and three nights, Gena thought, three iron pipes gnawed, three iron caps shrunk. And Gena decided to apply the good old proof-of-work: in order to generate a container with a torrent file and a description, you need to select a number so that the hash of the container consisting of the classic torrent file, its description and this very "nonce" number is less certain value. Just like in Bitcoin, but without the blockchain.
"That's just who will spend hours computing the power of their computers to smirin torrent container?" - Gene thought. "And let those who mine, add to the description of the announcement of the search for friends, if they are alone!" - Tobik came to his aid.
Gene was delighted, he remade pullrequest ...
Many again updated to a new version of the torrent client, in which a new menu item appeared - "Catalog of known torrents". That's just a mess reigned in him - no ratings, no comments. Yes, and valuable torrents, for example, the author's bard albums for nagarmoshke.info, were often lost sight as soon as the person who posted posted it went offline.
“What wonderful friends I have!” Thought Gena, “how well we taught Shapoklyak well! And at the same time we strengthened the position of open-source on this front - users prefer those customers who better shake bypassing locks! And most importantly: users did not have to install and set up additional programs, everything was done by updating the already familiar client, and backward compatibility is preserved! "
PS Habr is omniscient, and haven't they started to realize this fairy tale somewhere (in some torrent client)? Probably, qBitTorrent is moving in a similar direction (written in C ++ / Boost / Qt, actively developing).
Source: https://habr.com/ru/post/307022/
All Articles