I think it'd be good to allow 0-90% of connections to the local country's IPs: gnutella is very large and connecting only to my country's IPs would optimize the search and download of local files ..
What do you think about this?
Logged In: YES
This is basically clustering by common interests. It is problematic because it can cause the network to degenerate. It might become very difficult to find the content from outside this cluster or find other content from inside this cluster. Also the effect would heavily vary for each country depending on its population and the amount of content provided by it. There's no guarantee that people from a certain country actually share any content from or related to it. Often foreigners have much more interest especially in collecting simply because the same content is very easily available in the same country but not world-wide. Further most people don't have one-dimensional interests, so ideally they'd be connected to multiple different clusters (classic music, free software, Chinese literature). LimeWire has support for reserving a connection for a peer with same language preference (which is not the same as a country preference) but they witnessed exactly this problem of clustering peers, so that they had to relax their preference scheme. Overall I see this as a hack and I am not convinced it is a good idea. I think the proper way would involve some DHT as rendezvous point and tagged content so that you could query specific sets of peers if a general search gains no or very few results. There are also other ways. Everyone can set up a DNS record for this peer and publish this on his blog and introduce others who have similar interests i.e., an open "private" network so to say. That would have a similar effect (or even better) than your suggestion but not have such a damaging side-effect due to lack of strict preferences.
Logged In: YES
Well, the network IMHO is already degenerated.
I mean, I connect to gnutella and almost all the contacts are form USA.
This may be a cache (bootstrap) problem, though..
If you're from USA then you're right: there're already enough from USA.
But Eg, I'm from Italy and I can't find quite anything in italian..
And it's very hard for me to find some italian nodes (I can only manually drop connections 'til i find some that's from italy - that's barely possible).
But I'm sure the file is somewhere on gnutella (it can't be it there isn't) ^_^
I personally think that an user sould have the possibility to well-choose all of him nodes, and what is better than manual tuning for this?
Then, you can also leave the default settings as 0%, but an advanced user would probably take advantage of these new options...
Maybe it is degenerated but degenerating it further can't be the resolution. If you can't find *anything* in Italian, there has to be something wrong, very wrong. I just searched for divx ita which yields hundreds of seemingly good results within seconds. One of the responding peers is actually another gtk-gnutella located in Miami.
You can actually choose all of your connections, there's nothing preventing this. The reason you're experience trouble to discover other Italian peers might very well be the result of such a local preference as implemented in other software (LimeWire and perhaps BearShare too). There might be one or more Italian clusters out there but it's hard to discover them if these clusters have too few to none connections to the rest of the world.
Again, if you can't find any Italian results, there has to be a big problem somewhere. You may try the following:
- make sure gtk-gnutella does not consider itself firewalled
- make sure your search terms are not longer than 30 character, LimeWire discards them without remorse
- enforce Ultrapeer mode
- get rid of PeerGuardian/BlueTack
- get rid of search filters unless you're 150% certain they do what they think they do
Logged In: YES
Excellent idea. I just posted a request for host filtering of at least the host country. In my case it is because I want only non-local connections, but it would allow you to filter out all non-local hosts as well.
My problem is that I have a habit of looking for music from various European countries. When I am connected to only US hosts, I don't get any results. If I leave it on overnight, I will eventually get some results if I end up connected to a European host at some point. Otherwise I have to keep disconnecting from US and Canadian hosts until I have mostly European hosts. This does work, but takes up to 30 minutes of work since over 90% of hosts it tries to connect to are US ones.
Essentially, I am filtering out US and Canadian hosts. I would very much like to be able to automate this long process. If it was automatic, the network wouldn't get bogged down by my computer trying to connect to US hosts just to be stopped seconds later.
To reduce this clustering effect you mention, one or two connections could be reserved as exempt from the filters. Really it only takes a few European hosts before I get good results and disconnecting to try a different host wouldn't be such a pain if I didn't have to go through so many useless US hosts first.
Actually, it might be even better to disallow more than two hosts from the same country. This wouldn't solve the problem entirely, but it would be better. Although, I think we would all end up with two Canadian hosts and two US hosts, so the filters are still the better idea.
Anyway, the point is that it would improve the efficiency of the network to allow host filters for at least half of any given node's host slots. Efficiency being that it would allow users to aim their searches at more likely targets and thus avoid excess traffic. Besides it would help the network to better achieve its goal by allowing searches to give good results more quickly in the hands of knowledgable users. Those who don't know the location of what they are looking for would benefit from the lower search traffic of those who do.