Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   Feature Requests & Bug Reports (https://www.gnutellaforums.com/feature-requests-bug-reports/)
-   -   [Feature Request] Connect to different UP-vendors (https://www.gnutellaforums.com/feature-requests-bug-reports/82013-feature-request-connect-different-up-vendors.html)

Klaus_1250 February 29th, 2008 06:29 AM

[Feature Request] Connect to different UP-vendors
 
It seems every time I connect, the only UP's I get are LimeWire's. Would be nice to see Phex have the ability to force/search to other UP-vendors as well.

I haven't used Gnutella in quite a while, but I do remember that it used to be the case that connecting to a BearShare-UP (in the time the real BearShare was still arround), I would get much much much more search-results.

I have the feeling this might still be the case:

searching for Phex using Limewire UP's resulted in either 0, 1 outdated or 1 valid result. The bulk of the times, the net results where 0. Same goes for FrostWire. Searching for it has yet to find a single source. On other file I know is around but relatively rare (~200 sources) resulted in 1 result, 3 sources of which 2 invalid. (Eventually, the 1 valid source provided me with 100 alternative locations.)

In the case of Frostwire btw; Why is it that a search for Frostwire seems to be translated to a search for Limewire? I get ~200 sources for Limewire 4.16.6 in a split second, while doing a search for Frostwire.

arne_bab March 1st, 2008 06:51 AM

The reason why you get so many LimeWires is, thath there are just so many of them out there (and that BearShare is dead - sold out to the Music Industry).

Given time, your phex should acquire some Phex-hosts (we have only slight preferencing for Phex hosts: A Phex with at least 2h uptime (a decent Phex) is the preferred choice).

The "translated" search might be a LimeWire "feature".

ToNneTje January 24th, 2009 06:02 AM

So that's why i'm connected to so many Phex-Leafs :D

As "new" Phex-user AND stable Ultrapeer, i do NOT prefer too many Limewire/Frostwire Ultrapeers, they giving me too many FAKE search-results!
When i'm connected to more Phex and Bearshare Ultrapeers, and LESS Limewire/Frostwire Ultrapeers, my search-results are ALOT better!

"A Phex with at least 2h uptime (a decent Phex) is the preferred choice)"

Please keep it that way! :xeri_ok1ani:

BTW, Bearshare seems to be alive again, there is already Bearshare version 7... or did i miss something???

arne_bab January 24th, 2009 10:42 AM

I'm glad that you have good results with more Phex UPs :)

Bearshare sadly isn't alive again, but turned zombie: The bearshare developers crumbled when the Music industry threatened to sue them - they gave up all their money and all their code, so Bearshare is now a shackled program, controlled by those who are working for enslaving p2p.

Tells me "don't use unfree software, it will turn against its users as soon as that's convenient to it".

Just read the technology description page from its new owners:

Technology - musiclab

Quote:

Acoustic Fingerprinting - MusicLab protects the rights of artists by employing a unique acoustic fingerprinting technology. This technology allows us to identify copyrighted content on the fly. We maintain a list of songs that should be filtered using our acoustic fingerprinting technology, and artists and music labels may contact us with a sample of their music for inclusion in the acoustic filter's database.
And it gets worse:

- Kommerzialisierung der Tauschbörsen

MusicLab LLC belongs to the company behind iMesh, which bought the Bearshre software, website and user datbase.

(that's what you can find after just 5 minutes of googling)

ToNneTje January 24th, 2009 12:37 PM

@arne_bab

Thanks for the information... since i'm using Linux, for more then 2 years now, i haven't search and read alot about Windows p2p like Bearshare...

Well, some minutes ago i was connected to 23 Phex-clients :D
All of them are using OLD versions of Phex, so maybe it is an idea to show Phex-users an update-message by default when starting Phex???

At download.com is still an OLD version available, NOT the newest version... hope this will be updated soon.

:xeri_ok1ani:

Lord of the Rings January 24th, 2009 02:34 PM

There are still some old early BearShare 5 versions out there, you may see them occasionally. The version before the sell off. I think it was the later v.5 versions when the sale happened.

arne_bab January 24th, 2009 02:40 PM

Quote:

Originally Posted by ToNneTje (Post 336931)
Thanks for the information... since i'm using Linux, for more then 2 years now, i haven't search and read alot about Windows p2p like Bearshare...

Same for me, but 5 years ;)

But I try to keep informed about the GNutella apps for Windows just to be up to date - and the Bearshare sellout was major (bad) news.

Quote:

Well, some minutes ago i was connected to 23 Phex-clients :D
All of them are using OLD versions of Phex, so maybe it is an idea to show Phex-users an update-message by default when starting Phex???

At download.com is still an OLD version available, NOT the newest version... hope this will be updated soon.
We're displaying an update message during the first week, if a new version is available, and Phex has an internal download mechanism to get the newest version from Gnutella and the sourceforge servers simultaneously (in chunks).

But it's possible that users of old versions disabled the update message, just ignore it or didn't install the downloaded Phex (currently it only downloads the new version, but doesn't install it).

ToNneTje January 26th, 2009 12:36 PM

About connecting to UP-vendors... as UP and Phex user i would like to connect ONLY to Phex UP's and Leafs.
Limewire connects to Limewire UP's, Bearshare connects to Bearshare UP's, but Phex connects mostly to Limewire/Frostwire (i was connected to 29 Phex-leafs yesterday, and NO Phex UP's).

As far i understand, Phex prefer other Phex clients to connect to when they are online for at least 2 hours.
Is there a possibility to change this so that Phex will ALWAYS connect to other Phex clients when available?
I want to test this to see if i get other (better?) searchresults, less fake-files, and offcourse because it looks better in my Connection field :D

arne_bab January 26th, 2009 11:25 PM

Quote:

Originally Posted by ToNneTje (Post 337093)
As far i understand, Phex prefer other Phex clients to connect to when they are online for at least 2 hours.
Is there a possibility to change this so that Phex will ALWAYS connect to other Phex clients when available?
I want to test this to see if i get other (better?) searchresults, less fake-files, and offcourse because it looks better in my Connection field :D

Sure. Do you build your Phex from subversion?

Gregor wrote some very efficient and readable comparator code in

src/main/java/phex/host/CaughtHostComparator.java
src/main/java/phex/host/CaughtHost.java

It first checks if the last connection succeeded. Then it checks if the Host is a DecentPhex.

You can make Phex prefer Phex hosts at all times by reducing the requirements for being a DecentPhex in CaughtHost.java:

just comment out the avgDailyUptime if clause in

Code:

    public boolean isDecentPhexHost()
    {
        if ( !StringUtils.equals( vendor, "PHEX" ) )
        {
            return false;
        }
        if ( avgDailyUptime < 7200 )
        {
            return false;
        }
        if ( !isUltrapeer )
        {
            return false;
        }
        return true;
    }


ToNneTje January 27th, 2009 02:29 AM

Hi Arne,

"Do you build your Phex from subversion?"

I haven't build anything, i'm not an expert :(
But changing some settings is even for me possible to do :D
Do you know a good (free) .class editor, beause i can't open the files :confused:

Thanks.

arne_bab January 27th, 2009 04:35 AM

Hi ToNneTje,

Quote:

Originally Posted by ToNneTje (Post 337169)
"Do you build your Phex from subversion?"

I haven't build anything, i'm not an expert :(

Since you're using GNU/Linux, you don't need to be :)

Which distribution do you use?
(you need subversion, everything else should already be in place)

ToNneTje January 27th, 2009 04:46 AM

I'm using Ubuntu 8.10.

But even build Phex from subversion sounds difficult to me :(

(Maybe i must spend some time to learn stuff like that)

arne_bab January 27th, 2009 06:28 AM

It really isn't hard :)

You just need to open a terminal and do the following few steps.

First step: Getting subversion (for downloading the code) and maven (to build phex):

Code:

sudo apt-get install subversion maven2
Second step: Getting the phex code:

Code:

svn co https://phex.svn.sourceforge.net/svnroot/phex/phex/trunk phex
Third step: Building and Running Phex:


Code:

cd phex
./build-and-run

That's it, you can now always run the bleeding edge version of Phex via

Code:

svn update ; ./build-and-run
:)

To now change Phex to always prefer Phex, just open the following file from the phex folder in your text editor and change the section I named in the earlier post:

src/main/java/phex/host/CaughtHost.java

And you can run ./build-and-run to run it.

Voilà, your own modified Phex version :)

ToNneTje January 27th, 2009 06:48 AM

Thanks alot, i will try to do this tonight.

:xeri_ok1ani:

arne_bab January 27th, 2009 09:12 AM

Happy sharing!

ToNneTje January 27th, 2009 01:38 PM

@Arne

It works, i can now edit CaughtHost.java :xeri_ok1ani:

But... do i need to change 3 time False into True ?
Or do i have to delete if ( avgDailyUptime < 7200 ) ?

And Ubuntu has installed OpenJDK after i follow your instructions and now the program isn't look very well.
I was using Sun Java... can i uninstall OpenJDK or is it necessary ?

Thanks.

T.

arne_bab January 28th, 2009 12:07 AM

Great!

You should be able to use sun-jdk (I use it on my Gentoo box):

Code:

sudo apt-get install sun-java6-jdk
The package is in multiverse, though: Ubuntu -- Package Search Results -- sun-java6-jdk


In the Phex code, you can just comment out the avgDailyUptime if clause. Commenting out in Java can be done by writing "/*" before the part and "*/" after the part,for example like this:

Code:

    public boolean isDecentPhexHost()
    {
        if ( !StringUtils.equals( vendor, "PHEX" ) )
        {
            return false;
        }
/*
        if ( avgDailyUptime < 7200 )
        {
            return false;
        }
*/
        if ( !isUltrapeer )
        {
            return false;
        }
        return true;
    }


Besides: What this code does:
* The first if clause checks if the other one is a Phex
* The second checks if it has high uptime (decent client)
* The third checks if it is an ultrapeer

Only if all three are fullfilled, the host is called "decent Phex", and Phex preferences decent Phex'.

By commenting out the second if clause, you preference all Phex ultrapeers. If you'd comment out the second and third, you'd also preference Phex leaves (which doesn't help you get connections and might even render your Phex unable to find Ultrapeers).

All this applies only for the connections your program starts. Incoming connections have no preferencing.

arne_bab January 28th, 2009 12:20 AM

PS: I just adapted this thread to turn it into a guide in our development section: http://www.gnutellaforums.com/develo...ntu-linux.html

ricoil July 22nd, 2009 04:36 PM

Quote:

Originally Posted by arne_bab (Post 337221)
All this applies only for the connections your program starts. Incoming connections have no preferencing.

Where must the code be modified in order to introduce preferencing in Incoming connections as well?

arne_bab July 22nd, 2009 11:03 PM

I think you might have to add a new comparision feature to incoming connections. It will have to decide, if it wants to drop a working connection when it gets a new incoming one, and that code can get quite complicated (including a setting to reserve slots for other vendors to make sure that Phex doesn't isolate itself - or a setting to only grant at most 2/3rd of the slots to a specific vendor or similar to avoid isolation in a single-vendor-island).

I'm not perfectly sure about the right place, but the OIOServer looks fitting: https://phex.svn.sourceforge.net/svn...OIOServer.java

Gregor should know that better...


All times are GMT -7. The time now is 09:01 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.