Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General Gnutella Development Discussion (https://www.gnutellaforums.com/general-gnutella-development-discussion/)
-   -   yet another Gnutella client?? (https://www.gnutellaforums.com/general-gnutella-development-discussion/13995-yet-another-gnutella-client.html)

dangermaus July 28th, 2002 05:47 PM

yet another Gnutella client??
 
Hi people!

We are a team of three Delphi Developers. We are developing a gnutella client with a transparent distributed computing framework (where everybody can send out computational jobs). The actual prototype allows you to download files, chat with others and share CPU-time.

Perhaps you want to download it and try it out, the site of the Open Source project is:

http://sourceforge.net/projects/gpu

(but the important file upload and host catchers are still not implemented)

Thank you for any comments, bug reports, ideas, criticism and feature requests...

The GPU development team

Here the project description:
-------------------------------------------------------------------------------
GPU is yet another Gnutella client. In addition to the standard functionality for sharing files, GPU is able to share CPU-time among users. GPU will provide a robust framework for distributed computing, but unlike Kaazaa, GPU won't hurt the basic principle of Gnutella: "every node is able to use services from other nodes and has to offer services to other nodes". This means that the computational tasks will be fully transparent to the users, and all users will have the privilege of starting a computation.
-------------------------------------------------------------------------------

and the prototype description
-------------------------------------------------------------------------------
GPU is a prototype for an application which shares CPU-time of normal computers connected to the Internet.
To do this, the application connects to the Gnutella network and, as any other Gnutella client does, is able to share files with others. In addition the application, from now on simply called the node, is able to send, receive and perform some computational jobs.
Jobs travel through the Gnutella network disguised as search string for files, until they find a node willing to execute them or until their short life terminates, limited by a counter decreased every time the job is retransmitted again.
Once the good-willing node finishes the job, it returns the result to sender. The sender has to collect results the same way he does for files found on the network.
Jobs are described with the polnish notation, which can be interpreted as commands for a stack. "1 + 1" becomes "1,1,+" and although at first look it seems more complicated, it frees the node from some difficult issues, like operator precedence and bracket management.
The application implements the commands for the computation in an elegant way, making easy to extend the set of basic computing functions the node knows.

At the moment the following plugins exist and work:


- a simple plugin that computes Pi using the method of throwing randomly a point and checking if it is in the circle with radius one. This is one of the easiest montecarlo computations, easy to understand for people willing to implement their first plugin

- a plugin with simple operations on vectors, like dot and cross product.

- a complex plugin for computing the discrete logarithm over huge integers, the inverse function of the most used one-way function in cryptography (although cryptographers won't fear this plugin, even if all computers on Internet will run the plugin! It takes an hour for solving the discrete log problem on one machine with a 42 bit integer, cryptographers use 2048 bit numbers!).

GPU was tested in different network topologies (trees and graphs), but the number of workstations involved never exceeded 10.
GPU seems stable. (at the moment we runned it for about 8 hours without having any problems)


Other possible applications are the search for prime numbers and golomb rulers, montecarlo integrations, stochastic solving of PDEs, number factorisation, cryptographic applications and repetitive tasks over huge chunks of data, e.g. a Fast Fourier Transform over data recorded from telescopes, to find out special events in the Universe, like the project Seti@home does.
At the moment, a working prototype exists, written in Delphi for Windows.

We search for Delphi developers, testers, volunteers running GPU on their Windows webservers, a Kylix porter and a promoter!

dangermaus July 29th, 2002 03:04 AM

please stop downloading Gnutella people
 
we experience too many problems in finding the entry host to the Gnutella network. Until a working host catcher system is implemented, there is no need to spend time using GPU.

However, if you want to see GPU connecting to the network: run another Gnutella client that connects to the network. then copy the file where the client has an updated list of hosts in the directory where GPU lies and rename it 'gnutella.txt'. after a while GPU v0.6 will connect to the network.
sorry for the inconvenients, we are at development stage

dangermaus July 29th, 2002 09:33 PM

GPU 0.63 now implements the GWebCache system and seems stable. The download system works at the moment with only one thread. Two other people joined the open source project: Simon Wichtermann and Wesley Petersen, professor at the Swiss Federal Institute of Technology. He will survey the scientific side of the project.

any comments and feature requests are welcome!

James Connolly August 19th, 2002 07:14 AM

I downloaded it a few days ago and ran it and my system (Windows 98) crashed. Not just the program but the whole system. The program did look interesting before it crashed, I was confused what a lot of the stuff was though. I would try to make the program more user-friendly, or make sure documentation was somewhere explaining what it's doing.

dangermaus August 19th, 2002 07:51 AM

thanks for your criticism. I now uploaded version 0.64c which is less aggressive in trying to build up connections to the Gnutella network. There is no reason to try so much, now the host catcher seems to work acceptably. Probably Windows 98 crashed because it can't do a lot of connections. The TCP / IP stack of Win 9x is also known for some bugs (the new TCP/IP stack of Windows NT/2000 and XP is probably copied 1:1 from Unix, as some hackers say)

In these two weeks of holidays I tried to write some documentation more, perhaps you'll find chapter 6 and 7 interesting, although my English should be revised. I hope my professor will come back soon from holidays to look at my docs.
Hyperlinks in the Help page should also help finding things...

Another thing which should work: we have now a permanent host running GPU 24 hours a day: GPU is installed on an Internet coffee host called zaf.homeip.net
If you connect to this host (clicking on the "Add" Button), you can then choose a predefined job in the computing page and play with the "Compute globally" button.

The program looks complex, I tried to do it with an interface a little bit like Bearshare. It looks like this also because it bases on the Gnutellatrans component written by Capn'Bry.
Perhaps we could write a beginner/advanced interface!

bye

James Connolly August 19th, 2002 10:33 AM

I downloaded the new one and it seems to have less problems. I did a couple of global computations and they came back. I also did a computation for someone else.

One nice thing about this is usually, like in distributed.net, someone else chooses what computations are done globally. With this, the people who use the program can also decide what is being computed.

One thing that would be cool is some number theory functionality like "gcd(240,600) = 120" or "2^3 (mod 9) = 8" and so forth. The algorithms to do this are published in virtually every language. In fact, the gcd pascal code is only 5 lines so I'll post it here, it finds the great common divisor between two numbers -

function GCD(a,b : integer):integer;
begin
if (b mod a) = 0 then Result := a
else Result := GCD(b, a mod b);
end;

It would be cool if I could input "240,600,gcd" and get the response "120". Or do similar number theory functions.

I got two programs while running the program. One was -
Der Index der Liste ueberschreiret das Maximum (6)

and the other was -

Windows-Socket-Fehler: (11001), auf API 'ASync Lookup'

With the previous version, I got about 50 error windows that said "windows-socket" before it crashed. So make sure you're catching all the possible socket errors in your code.

dangermaus August 19th, 2002 12:49 PM

Hi James, thanks for your questions! and sorry if sometimes GPU crashes your system!

GPU v0.64c has to function that do the power modulo a number:

"2,3,9,powmod" is the old one and is implemented in the plugin basic.dll . For checking if the discrete logarithm is exact, I normally use the faster "2,3,9,squareandmul" that uses the Square and Multiply algorithm for fast factorisation. This one is implemented in the plugin crypto.dll
Refer to both cryptodll.pas and basicdll.pas in the source code for see how they are implemented.

I know from your other post that you are implementing a Gnutella client in C, it should be possible to write plugins in C, if you respect the methods signature which is a pointer to a struct that contains an array of floating numbers and an integer used for the stack pointer.

See chapter 9 of the documentation, perhaps you could try to implement your own plugin with a gcd() method.

I know about the two errors, the exception of 10001 should be catched, but I don't treat them correctly.

and of course if you want to help in some way, I would be very happy to welcome you in our development team.

dangermaus August 19th, 2002 12:53 PM

hei I didn't catch the exception 11001, thanks again!

dangermaus August 22nd, 2002 02:07 AM

IMPORTANT: zaf.homeip.net is down since tuesday and I can't contact the Internet coffee administrator.

algol.homeip.net should also become a permanent host the next week.

version 0.65 now is a little bit better documented:
chapter 5: examples of possible distributed computing (I found interesting the research for a cure project http://www.researchforacure.com )
chapter 6: VM description
chapter 7: implemented commands for computations

dangermaus August 23rd, 2002 04:47 PM

zaf.homeip.net is up. Challenge: try to repeat what James did!


All times are GMT -7. The time now is 06:06 AM.

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.