Main Page | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Related Pages

Technical demo files (Latest: hash-tree benchmark, 2003-09-16)

These demos are based on my actual implementation and should be representative of the performance that could be expected from it. The hashes generated should also be representative of the final implementation with any of the demo hashes if I do not opt to collapse singleton nodes.

Each demo may be updated every now and then depending on what I have been testing. When more advanced demos and proof of concept apps become available, this page should become more interesting.

Demo Index

First test/debug/demo application

This is the program I put together to test the classes I am coding for MAFS. The classes under test are : CHashContainer, CHashTreeNode and CHashTreeCtrl. CHashContainer can be considered completed and nearly final, CHashTreeNode is is roughly half-done and CTreeCtrl is not much more than an incomplete skeleton/draft implementation - it was used only because it implements the simple top node level computation.
nodeLevel = ceil(log(cFile.GetLength())/log(2)); // Damn, just disclosed one line of core code!

Sparse File Converter

This is a simple and presumably efficient test program for my flat to sparse file conversion routine.

What do sparse file do that normal files don't do?

The sparse files are used for eMule's temporary files. Since these mostly contain large NULL blocks, some file systems like NTFS are able to reclaim those unused parts of the file and make the space available for other uses while it is not required. This means that a 10GB partition could contain 100GB worth of <10% average completed files. If completed files are moved somewhere else upon completion, a relatively small partition could provide ample temporary space for huge downloads.

What it does

You can check it out by clicking the link to the right... http://MoonlightHacks.com/eMule/Releases/SparseTest.zip (Now included in Moonlight's Mod (Upcoming build: 0.42b-0.22g, 2004-03-03).) Since this was used to validate my sparse conversion, it does the following:
  1. Hash the file to determine its pre-sparse signature.
  2. Convert the file to sparse with forced rescan.
  3. Re-hash the file to verify that the hash is still the same to make sure it really worked.

That is all the demo stuff I have currently available. The next major demo app might be ready in about a month from now, somewhere around early October. In the meantime, you can expect a fair amount of documentation to be added as the project's core moves on.

Hits since December 5, 2003:
Count.cgi?display=counter|df=vllmtqtwVL2.dat

Generated on Sun Mar 7 15:02:11 2004 for Moonlight's eMule Hacks by doxygen 1.3.4