Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.78k stars 443 forks source link

autonomous self-replicating code #2925

Closed synctext closed 2 weeks ago

synctext commented 7 years ago

Goal: creating healthy exit-node network through cybercurrency.

Previously a TUDelft thesis project created an initial implementation of the autonomous self-replicating code concept.

next step: go live

Key features:

Planning:

Include in the report a detailed analysis of why the previous code could not be re-used and why clean-slate implementation was started.

thijmensjf commented 6 years ago

As our cycle in the project is ending, we will provide a final status update regarding the project.

First of all there is a final version of the report, which can be found here

The slides of our final presentation can be found here

All in all it can be concluded that PlebNet is working end-to-end now, which is demonstrated in the following videos.

stage 1 - initialization of a agent stage 2 - create an offer on the market stage 3 - buying a new VPS via cloudomate stage 4 - replicating on a new instance monitoring via the IRC

synctext commented 6 years ago

Official TUDelft repo of thesis (has link to .pdf)

synctext commented 4 years ago

Related work: image "Mitogen is a Python library for writing distributed self-replicating programs."

devos50 commented 4 years ago

This ticket will be used for the upcoming software project, starting this Monday. Project description (locked in ProjectForum):

The goal of this Bachelor end project is to create a Bitcoin-based entity which can earn money, mutate, multiply, and dies. We provide a crude starting project which needs decades of further work in order to be considered 'really' living. This project builds upon existing code that creates autonomous life. Two previous groups have worked on this system and their documentation can be found in the TU Delft repository (see here and here). Recently, two groups of master students have expanded the project.

You will create an Internet-deployed system which can earn money, replicate itself, and which has no human control. In the past, humanity has created chess programs that it can no longer beat. The distant future of an omniscient computer system that on day chooses to exterminate humanity in the Terminator films is not the focus of your project. You will create software that is beyond human control and includes features such as earning money (Bitcoin) and self-replicating code (the software buys a server and spawn a clone). Earning money consists of helping others become anonymous using the Tor-like protocols developed at TUDelft and our own bandwidth token designed for this purpose, called Tribler tokens. A cardinal unanswered question is how to securely pass the wallets with Tribler tokens and Bitcoin to the offspring servers. You Python software is able to accomplish some parts of the following functionality: • Earn income in a form of a bandwidth token (existing code). • Sell these earned tokens on a decentralized market for Bitcoin or other currencies. • Buy a server with Bitcoin or Ethereum without human intervention (see our existing PyPi scripts). • Login to this Linux server and install itself with code from the Github repository. • Automatically buy and install VPN protection to hide the outgoing traffic from the servers.

The software should be able to have a simplistic form of genetic evolution. Key parameters will be inherited to offspring servers and altered with a mutation probability. For instance, what software version of yourself to use (latest release?), what type of server to prefer buying (quad core, 4GB mem, etc), and whether you offer Tor exit node services for income or not. Bitcoins owned by TUDelft will be used to bootstrap your research.

synctext commented 4 years ago

@devos50 This will be used instead of Gitlab, feel free to give a 1-line pointer to this repo of TUDelft rules require you to leave notes there. All weekly meeting notes will be posted here (unless you GDPR-protest...)

Sprint staring point suggestion:

devos50 commented 4 years ago

@synctext I'm also using our other tickets on the Tribler repo for meeting notes so I'm totally fine with that.

daangoossens22 commented 4 years ago

Screenshot from 2020-06-19 11-22-44 Getting the qtables through the IRC chat has been implemented, by calling !qtables{nick} you can get the qtable of the node that has that specific nick.

daangoossens22 commented 4 years ago

I made the pull request both for Dollynator and cloudomate. Sorry for the delay.

most important changes made in Dollynator:

Changes made in cloudomate:

For a short summary of the gossiping and qd-learning, I will point to the readme in the dollynator repo. The best explaination of the specific parts, I will point to the related sections in our final report (which I linked in this message) Dollynator - Final Report.pdf.

Another future recommendation that I forgot to say during the presentation Q&A, is if you want to run dollynator reliable for long periods of time, probably some dynamic adding of vps providers should be added or changing the vps providers code while it is still running (so while it replicated it get the latest code for cloudomate, which is probably already done, but should be checked). This is because the vps providers sites change a lot, which makes them not work anymore for dollynator/cloudomate, but if you want the botnet to run for a long time this should be accounted for. This is probably a hard problem, but maybe a good problem for a next group to solve.

Another tip while fixing cloudomate is to first buy an instance of the vps provider manually and check if that provider works for dollynator and then fix the code for it. Don't make the same mistake that I made to first fix the code and then later find out that it doesn't work with dollynator anymore, because of a kernel version (or something else).

qstokkink commented 2 weeks ago

It seems like this project has been completed years ago. I'll close this issue now.