Webcache 3.0 Recode the old implementation
#1
Posted 07 August 2005 - 08:47 PM
In our opinion the current implementation of WebCache is not the best and we would like to recode it.
At the moment we don’t want to do the whole work alone, because we won’t lose compatibility to the rest of the world (and the ISPs that we use don’t have proxies)
So we would like to find some modders, to build a cooperation and recode the WebCache togehther.
IoNiX has good first lines, but recoding the whole stuff is a long way.
The best solution here would be teamwork to have the job done fast and efficiently.
Is there anybody who would be interested in recoding the whole WebCache together with us?
Owen
#2
Posted 07 August 2005 - 08:52 PM
#3
Posted 07 August 2005 - 09:49 PM
#4
Posted 09 August 2005 - 08:54 PM
I don’t think that the Webcache dev’s will recode the whole stuff, and make a clean implementation…
Is there someone else out there who would like to help us?
Owen
#5
Posted 11 August 2005 - 12:00 AM
Just curious, what would you like to change?
This post has been edited by yonatan: 11 August 2005 - 12:01 AM
#6
Posted 11 August 2005 - 06:03 AM
- modification/checks in upload/download engine, often a WC client will just get 1 block then get dropped, makes for me 9.3MB-180kB loss (my reason why I don't use it anymore)
- behaviour while passing on cached blocks, very often it happens to me that I receive blocks which aren't cached anymore, so I suggest something more "intelligent", e.g. "verified cache upload/download", meaning you only pass on links if you're sure the clients can handle them
- code rewrite, it seems to me that there are lot's of unneeded codelines, e.g. in PeerCache, those should and will never be reached and make understanding hard... plus it might wreck havoc on peercache (can't test that)
This post has been edited by tHeWiZaRdOfDoS: 11 August 2005 - 08:50 AM
#7
Posted 11 August 2005 - 08:12 AM
Stuff like thePrefs.variable = or so shouldn’t be used in eg. WebCahce.cpp,
thePrefs.SetVariable(…), is more professional.
Or you make many includes in headers where an class name; would be enough.
Or putting so many help variables inside of CPreferences looks also not so good.
I know such stuff is in the end not so relevant, but it makes the code looks more pretty.
The point is the code is not so well designed as the rest of the eMule.
You keep to many old commented out code…
Remove the 1.2f boost for port 80 users this is unfair, you may instead punish webcache clients that don’t use this port, this would be fairer…
Their should be a possibility to completely disable the WebCache not only disable the Download.
Owen
#8
Posted 11 August 2005 - 09:14 AM
OwenBurnett, on Aug 11 2005, 10:12 AM, said:
thePrefs.SetVariable(…), is more professional.
Well Cleaning up code is an whole other ballpark. You can do this all alone. Just make sure your changes are well marked up, and i am quite sure some mods will take up your changes.
If you can find ways to use less code all over emule it will also implify the merging process. But cleaning up code will not cost you compabibly at all.
Quote
This only should have an effect for transparent proxy users. the idea is that it should help the network! If it does not (pleas prove this), this feature shoudl be removed.
But i think this only a very , very small thing. 4 lines of code is not a good reason to recode webcache..
Quote
finally a real functional change.
I have a more extensive functional/implementation wishlist:
1. Not only allow disabling webccache complete , but also allow enabling/disabling webcache without restarting emule. restarting emule is very intensive to the client &network since all sources have to be gathered again and reasked.
2. Better autodetection of webcache. Now it works by a webchahe.csv/xml. However my excellent proxy has been deactivated on this list (active=0 ) BUT IT DOES CACHE (see my post in the webcache thread). This only proves the current autodetection is flawed. And as a real p2p program it should detect clients within the same ip range/isp and exchange proxy information for this.
3. Prevent using an open proxy somewhere on the internet, this is not the idea of webcache. (only useful for testing purposes, but it hurts the proxy). Use only the proxy of you isp.
4. optionally use the internet explorer dll to do the proxy request. This way proxy autodetection scritps and proxy load balancing starts to work. Also autologin into a proxy start to work this way.
5. Maintain backward compatible . Webcache only starts to work when a lot of clients use it. Since it is not in official (That might take a while , see sticky in feature request) every clietns counts. So at a lot of effort do not loose the current
6. Make the entire client to client protocol work over a proxy . That way clients that are burried behind a proxy can use emule. Note that a emule client can still be blocked by testing for the user-agent tag and the encrypted-data path of the request. Yes, you can upload through an proxy, so these clients can also help the network. (give these clients a 1:1 ratio???)
7. Add ftp upload to a webserver, and access using the same webcahche/http protocol.
I know, some of these idea are a little vague and hard to implement.
This post has been edited by leuk_he: 11 August 2005 - 09:46 AM
Trouble connecting to a server? Use kad and /or refresh your server list
Strange search results? Check for fake servers! Or download morph, enable obfuscated server required, and far less fake server seen.
Looking for morphXT translators. If you want to translate the morph strings please come here (you only need to be able to write, no coding required. ) Covered now: cn,pt(br),it,es_t,fr.,pl Update needed:de,nl
-Morph FAQ [English wiki]--Het grote emule topic deel 13 [Nederlands]
if you want to send a message i will tell you to open op a topic in the forum. Other forum lurkers might be helped as well.
#9
Posted 11 August 2005 - 09:32 AM
Sounds like stuff I've been meaning to do before I lost my ability to concentrate on any sort of coding ~8 months ago. You might want to turn SINGLEProxyClient into a proper singleton while you're at it.
If you add the ability to turn off uploading via webcache, please make sure the users understand that this will only affect clients downloading from them, and probably not in a good way (since webcache users need as many webcache-upload enabled mods as possible).
@Wizard:
I have a feeling that the problems you bring up are gonna be much harder to solve, the first two are ISP specific (meaning dependent on your proxys' config).
The PeerCache issue is also a real bitch, the "right" object-oriented thing to do is probably to put functionality shared by both peercache and webcache into a class (like CacheClient) and derive PeerCacheClient and WebCacheClient from it. But that might make merging with new official versions harder. That's why I took the (uglier) cut-n-paste road.
Anyway.. good luck with it.
PS: I think JP and Superlexx are still working on the code, so you might want to come up with a different name for it (edit: or maybe work with them on it?).
This post has been edited by yonatan: 11 August 2005 - 09:49 AM
#10
Posted 11 August 2005 - 09:54 AM
#11
Posted 11 August 2005 - 10:04 AM
#12
Posted 11 August 2005 - 11:39 AM
leuk_he, on Aug 11 2005, 10:14 AM, said:
#13
Posted 11 August 2005 - 12:24 PM
dani_555, on Aug 11 2005, 01:39 PM, said:
leuk_he, on Aug 11 2005, 10:14 AM, said:
Well, that is 15% the isp does not have to transfer over the international backbones. If the isp can think it can save bought bandth with by providing proxy's let them!
As i read the webcache threath T-oneline has an y complex cache hierachy. So the proxy someone in north germany is not the same as someone in south germany. It should be possible to find the "real" proxy if the uploader detects the ip of the downloader proxy instead of relying on the dns name of proxy. However this is not how it works right now (for a reason i think). That is why i suggested to (optinally) use the internet explorer api to find the proxy, since most isp's have instuctions (scripts) to set the proxy in internet explorer.
Transparent proxy's and proxy's in a hierachy will stay a problem since the isp's do not report how they operate, if they cache anything at all.
Trouble connecting to a server? Use kad and /or refresh your server list
Strange search results? Check for fake servers! Or download morph, enable obfuscated server required, and far less fake server seen.
Looking for morphXT translators. If you want to translate the morph strings please come here (you only need to be able to write, no coding required. ) Covered now: cn,pt(br),it,es_t,fr.,pl Update needed:de,nl
-Morph FAQ [English wiki]--Het grote emule topic deel 13 [Nederlands]
if you want to send a message i will tell you to open op a topic in the forum. Other forum lurkers might be helped as well.
#14
Posted 22 August 2005 - 01:38 PM
Sebastian
#15
Posted 01 September 2005 - 03:49 PM
Sebastian
#16
Posted 01 September 2005 - 04:00 PM
I used proxy that eMule detects,but when i test it it says the test has failed.
How can i test proxy if it's still working? I know my ISP had it before,but that was 4 years ago...
Stulle @ Dec 7 2005, 06:16 PM
#17
Posted 02 September 2005 - 04:43 PM
Your Errormessage appears if there are too many open connections. So the test dont run even if WC works.
Sebastian
#18
Posted 02 September 2005 - 04:58 PM
Stulle @ Dec 7 2005, 06:16 PM
#19
Posted 03 September 2005 - 02:37 PM
With autodetect you should find the right settings.
Sebastian