Quoting Karlan Mitchell from ml.softs.gtk-gnutella.devel:
:I'm have almost zero experience with Configure except for "./configure
:&& make && su -c 'make install'", so if I was to port the project to
:Win32, I wouldn't depend on Configure, since most Win32 systems are
:extremly similar, and most head aren't interested in source.  (also, I'm
:a mingw32 person myself)

GTKG does not use GNU autoconf but metaconfig.  The generated Configure
script does not support cross-compiling currently, as it probes the
current environment of the machine.  Therefore, the road opened by Jeroen
to freeze a config.sh (generated by Configure normally) for cross-compiling
is a good idea because it can be fed to Configure for file expansion.

:Second, the tree hashing functions I am writing are for a seperate P2P
:network, so the THEX parsing/creation code will not be included (because
:I'm not fond of it........);  I know that GNUtella has an extension
:protocol.......I know many will not approve of this, but how about a
:temporary extension for tree hashing for gtk-gnutella not using XML.......

gtk-gnutella is one program among the Gnutella network.  The Gnutella
network has made some choices regarding how some data must be exchanged
and what the format is.  I'm not fond of XML either, but when it comes
to inter-operability, we need to stick to whatever other vendors are
doing.

Therefore, THEX is a necessary evil.  Note that the XML in THEX is just
an encapsulation of the binary hash tree, so it's not entirely bad.

:Also, because I am writing my own P2P network, I would like to see your
:views on THEX, and tree hashing (such as good byte resolutions for file
:sizes, and depth resoultion).  I, personally, do not like using
:standards such XML in an environment such as this;  however, I still
:understand the purpose, but the overhead just seems to much..........

The most important part of THEX is the binary hash tree, and it is what
will take up most of the size.

In Gnutella, the binary hash tree is made up by using 1kB file blocks.
The tree is then made by hashing the hash of those blocks up to the root.
In general, servents limit the depth of the tree to 10 levels.  You don't
need to store physically the whole tree, just the leaves, and the root hash
maybe, and can recompute the tree on demand as there's only a small amount
of data to hash.

Like I said, computing the tree for files shared is easy.  Verifying files
against a tree is relatively easy, identifying which parts need to be
discarded and reloaded is trivial.

What is NOT easy is the part regarding the advertisement of hash trees
and organizing their retrieval and offer on the network.  It is also the
most important part, in that if you have everything else, that's good but
only a pre-requisite to that step.

Raphael


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642
_______________________________________________
Gtk-gnutella-devel mailing list
Gtk-gnutella-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel

Reply via email to