The parts of a hub list
January 17, 2007 Leave a comment
In DC today, a hub list is a vital part of the infrastructure. We all experienced it very well when Hublist.org (one of DC++’s default hub lists) went down.
A hub list consist of primarily two things. The actual hub list, a file, and a hub list bot (or crawler).
The former is what you insert in DC++, that DC++ download and display to you. The latter is something you as a user (of a client) never see. You might see the latter if you are running a hub.
The file is the actual hub list. It contain all the information you need; Hub addresses, hub names, requirements , rating, etc. The file can be distributed in two ways. (1) The file is sent clearly and DC++ (and other clients) start to parse it immediately. (2) The file is sent compressed. This technique is also used for the file lists. This means that the file being sent is smaller than the actual hub list. You have probably experienced it in other places, eg .zip or .rar. Having the hub list be compressed mean that whoever distributes the file and you will have to download/upload less information. If you see .bz2, the hub list is compressed. When DC++ see this, it decompresses the file and continues parsing the hub list, as in (1).
The actual hub list is of either DcLst style or XML. The former has been deemed deprecated by DC++ ( as of 0.696.). The file extensions for the two styles are .config respectively .xml. The difference between the two is very simple: You cannot change the formatting of a DcLst. It means that if someone want to add a field, eg rating, it is pointless since the clients can’t parse them. The XML allow hub list administrators to add and remove fields at their will, and client implementors can choose to display them or not. According to the DC++ wiki, the only available information in a DcLst is name, address, description and user count. If you look at a hub list supplied in DC++, you will probably notice more fields.
The second major thing a hub list need is a bot. This is essentially a normal client (like DC++) that is specialized in hub lists. The client, or bot, will connect to a hub, say “hello, I am a hub list bot. I just want to get some hub information. Bye.” The bot then proceed to process the information and (presumably) generate an appropriate hub list file. The file is then distributed by whatever means.
As a user of a hub list, you will most certainly never see this. However, most hub owners might. Most hub softwares out there today allow a hub owner to register with the hub list distributor and say “Hello. Can you please add my hub to your list”, and the crawling begin. (One might argue that registration is the third vital part of hub lists.)