Munchables
December 30th, 2002, 10:42 AM
What I am thinking is a hub system very similar to eDonkey but each hub can state what are the minim requirements to connect to the hub it would be default at 0 (I think this should be some what encouraged because of newbies) All hubs will communicate with each other strongly(you will see why in a minute.)
When you open your client it will index all of your shared folder(s) put it into a cache. It can’t do this every time (or so in-depth) because opening the client will take forever, however I think it should verify it but shouldn’t take so long maybe it will be a background task while the app is open. Now your client goes around trying to connect to what ever hub is most available with the information saying I have X gig sharing and X open download slots and X open upload slots, maybe even the speed of the computer and bandwidth. I am thinking that maybe you need X gig to connect to a given hub but you don’t need X gig to download form that person connected to that hub it should be a choice for the user to define. Now it will only connect to ONE hub, upload its shared info cache. Then the hub accepts this cache and stores it as long as that person is connected. When some one makes a search on any hub the search string is sent to the hub that, that person is on, then the hub will search its cache for that file and send out a search to all outer hubs so they can search there cache. Other hubs will send back there search results and the information is sent to the client that made the search. Then when someone downloads that file then that user gets the information of everyone with that file and keeps it while that user is downloading. Everyone with that file will show up in the transfer window (or what ever you call it) and it will tell the user what number in the queue he or she is in or that he or she is not sharing enough to download form that user. Maybe when someone downloads that file every hub is notified and when some one logs on with that file then the person downloading will have the list updated. Maybe there could be a filter like in Shareaza to filter out some of the reason why it can’t connect.
Problem: hubs might get full I know between eDonkey and DC there are a lot of hubs but you never know.
Solution: Every user that logs on to a hub will share all of its idle resources this means clock speed and Bandwidth. I think sharing IDLE should be mandatory (because no one will know because it is IDLE unless you tell them) but there should be an option in the client saying “Donate X% of clock time” and “Donate X% of bandwidth.” (So if some one downloads form them and all there slots are full and they still have idle bandwidth then they will upload with what ever idle bandwidth they have.)
Problem: If hubs still can’t handle all the users trying to connect then you will have to do this:
Say if some logs on with a p4 3 GHz connected to a t3 and every hub on the network can’t handle any more people that that person with the 3 GHz comp will have to be a “acting hub” or something like that. Basically what this means is that the 3ghz comp will do everything that the hub did but as soon as a space on one of the hubs open up that user will be transferred (uninterrupted.)
Ideas that will improve the network and really just have to be done:
Downloading for multiple sources
The name and description only aids in the search process. For instance you can call
Nelly #1.mp3, Nelly number 1.mp3 and the hub will still get it also you could call any file anything and the hub will know what it is because it looks at the file not the name. (Kazaa does this)
The ability to order search results by number of users or total bandwidth. Also RapidRoad has this future where when you download something form a user with a fast computer then the user with the fast computer will compress the file before it sends it out (I think the computer that compresses will have to see what compression method is best as well as how much to compress before you are just wasting resources.) Maybe the speed of the computer can be shown. Maybe there could be a total download factor that a user can sort by.
The ability to search for specific extensions like: .avi .zip .exe. When I download a movie I want .avi because it looks nice and it small.
Multi-platform
It would be nice if it was in java because of the Mac users and *nix. (Even though I don’t really like java because you can copy paste no right click and the list goes on but it would be worth it because of the multi-platform)
Sharing what ever you have of a download
So if you have 75% of a download whatever you have you will share if some one requests a download.
Say if I am on a public computer and I download 50% of a file then I want to take what ever I have downloaded put it in my share folder (or incomplete folder) at home and then I will complete the download.
There is a program called URLBlaze it is increasing in popularity now it is a horrible program because it is not sharing p2p it is just downloading form ftp and http. Now FTP and HTTP is a user that is on 24/7 has a high speed connection and shares good files. One problem there queue is set up differently so what you will have to do is start the queue for the file at the beginning and the p2p part will start at the end eventually they will meat and you will have a complete file.
Chat rooms are really nice I am constantly asking people “is this file a fake” or “what is something cool to download” you could have a hub chat that would be fine, but I am thinking it takes up bandwidth so have like a fully functional IRC chat client where you can chat on any IRC channel but there would be a list of rooms made by p2p users. (I am also thinking that if some one types in any IRC chartroom then it will report what room it is and put it on a list that all p2p users can enjoy. Now there are open source IRC clients so it shouldn’t be too hard to put a nice GUI on it. Make sure you can click on the people in the room to see what they are sharing so newbies can download, and then maybe your client can search for more results. (People like this idea I have posted on a couple of different forums) Later you could even have a trillion type chat (connects to aim, yahoo messenger ICQ…)
An idea for making money:
You could create a service where you rent cache. Ok what the service would do is you tell the a server to download a file the moment some one logs on with this file then it would download it using it’s high speed connection store it. Then the person can download it. This will really help people will slow connections so they can download all week without interruptions. It will also help people trying to get rarer files.
In conclusion you have a really nice decentralized network that rivals fasttrack.
When you open your client it will index all of your shared folder(s) put it into a cache. It can’t do this every time (or so in-depth) because opening the client will take forever, however I think it should verify it but shouldn’t take so long maybe it will be a background task while the app is open. Now your client goes around trying to connect to what ever hub is most available with the information saying I have X gig sharing and X open download slots and X open upload slots, maybe even the speed of the computer and bandwidth. I am thinking that maybe you need X gig to connect to a given hub but you don’t need X gig to download form that person connected to that hub it should be a choice for the user to define. Now it will only connect to ONE hub, upload its shared info cache. Then the hub accepts this cache and stores it as long as that person is connected. When some one makes a search on any hub the search string is sent to the hub that, that person is on, then the hub will search its cache for that file and send out a search to all outer hubs so they can search there cache. Other hubs will send back there search results and the information is sent to the client that made the search. Then when someone downloads that file then that user gets the information of everyone with that file and keeps it while that user is downloading. Everyone with that file will show up in the transfer window (or what ever you call it) and it will tell the user what number in the queue he or she is in or that he or she is not sharing enough to download form that user. Maybe when someone downloads that file every hub is notified and when some one logs on with that file then the person downloading will have the list updated. Maybe there could be a filter like in Shareaza to filter out some of the reason why it can’t connect.
Problem: hubs might get full I know between eDonkey and DC there are a lot of hubs but you never know.
Solution: Every user that logs on to a hub will share all of its idle resources this means clock speed and Bandwidth. I think sharing IDLE should be mandatory (because no one will know because it is IDLE unless you tell them) but there should be an option in the client saying “Donate X% of clock time” and “Donate X% of bandwidth.” (So if some one downloads form them and all there slots are full and they still have idle bandwidth then they will upload with what ever idle bandwidth they have.)
Problem: If hubs still can’t handle all the users trying to connect then you will have to do this:
Say if some logs on with a p4 3 GHz connected to a t3 and every hub on the network can’t handle any more people that that person with the 3 GHz comp will have to be a “acting hub” or something like that. Basically what this means is that the 3ghz comp will do everything that the hub did but as soon as a space on one of the hubs open up that user will be transferred (uninterrupted.)
Ideas that will improve the network and really just have to be done:
Downloading for multiple sources
The name and description only aids in the search process. For instance you can call
Nelly #1.mp3, Nelly number 1.mp3 and the hub will still get it also you could call any file anything and the hub will know what it is because it looks at the file not the name. (Kazaa does this)
The ability to order search results by number of users or total bandwidth. Also RapidRoad has this future where when you download something form a user with a fast computer then the user with the fast computer will compress the file before it sends it out (I think the computer that compresses will have to see what compression method is best as well as how much to compress before you are just wasting resources.) Maybe the speed of the computer can be shown. Maybe there could be a total download factor that a user can sort by.
The ability to search for specific extensions like: .avi .zip .exe. When I download a movie I want .avi because it looks nice and it small.
Multi-platform
It would be nice if it was in java because of the Mac users and *nix. (Even though I don’t really like java because you can copy paste no right click and the list goes on but it would be worth it because of the multi-platform)
Sharing what ever you have of a download
So if you have 75% of a download whatever you have you will share if some one requests a download.
Say if I am on a public computer and I download 50% of a file then I want to take what ever I have downloaded put it in my share folder (or incomplete folder) at home and then I will complete the download.
There is a program called URLBlaze it is increasing in popularity now it is a horrible program because it is not sharing p2p it is just downloading form ftp and http. Now FTP and HTTP is a user that is on 24/7 has a high speed connection and shares good files. One problem there queue is set up differently so what you will have to do is start the queue for the file at the beginning and the p2p part will start at the end eventually they will meat and you will have a complete file.
Chat rooms are really nice I am constantly asking people “is this file a fake” or “what is something cool to download” you could have a hub chat that would be fine, but I am thinking it takes up bandwidth so have like a fully functional IRC chat client where you can chat on any IRC channel but there would be a list of rooms made by p2p users. (I am also thinking that if some one types in any IRC chartroom then it will report what room it is and put it on a list that all p2p users can enjoy. Now there are open source IRC clients so it shouldn’t be too hard to put a nice GUI on it. Make sure you can click on the people in the room to see what they are sharing so newbies can download, and then maybe your client can search for more results. (People like this idea I have posted on a couple of different forums) Later you could even have a trillion type chat (connects to aim, yahoo messenger ICQ…)
An idea for making money:
You could create a service where you rent cache. Ok what the service would do is you tell the a server to download a file the moment some one logs on with this file then it would download it using it’s high speed connection store it. Then the person can download it. This will really help people will slow connections so they can download all week without interruptions. It will also help people trying to get rarer files.
In conclusion you have a really nice decentralized network that rivals fasttrack.