Changes between Version 5 and Version 6 of HostId

08/07/14 13:06:03 (5 years ago)



  • HostId

    v5 v6  
    1 = Computer identification =
    3 == How computers are identified ==
     1= How BOINC identifies computers =
    53We haven't found a universal hardware-level mechanism (CPU chip ID, MAC address)
    64for uniquely identifying computers.
    7 So we do it in software as follows:
    8 When a computer first contacts a project's scheduling server,
    9 the server creates a database record for the computer ,
    10 which includes a host ID and an RPC sequence number.
    11 The computer ID and the RPC sequence number are also stored in the client's `client_state.xml` file.
    12 The client increments the RPC sequence number on each scheduler request.
     5So we use two software mechanisms.
    14 If the scheduling server receives an RPC with a sequence number less than the expected sequence number
    15 (usually indicating that the user has copied the `client_state.xml` file between computers)
    16 it creates a new database record and returns a new ID.
     7== Database ID ==
    18 == Merging duplicate computer records ==
     9A computer attached to a project has a corresponding record in
     10the "host" table of that project's database,
     11and is identified by the integer ID of that record.
     12The ID in the '''<hostid>''' element in the client's `client_state.xml` file.
    20 This mechanism can lead to situations where a project's server has multiple database records for a single computer.
    21 For example, this will occur if the user deletes the `client_state.xml` file.
    22 The user can merge these duplicates into a single record via a web interface.
     14BOINC has mechanisms to
     15 * Prevent two computers from having the same ID when a volunteer
     16   clones their BOINC data directory;
     17 * Avoid creating duplicate host records when a host loses its ID
     18   (e.g. because its client state file is deleted).
     19 * Allow users to merge duplicate host records.
    24 You may only merge two computer records if
    25  * They have the same processor type (Intel, AMD etc.) and operating system.
    26  * They don't overlap in time; i.e. computer 1's last RPC happened before computer 2's first RPC, or vice-versa.
     21These mechanisms are described
     22[ here].
    28 There are two ways of merging computer records:
     24== Cross-project host ID ==
    30  * To merge a single computer, open its Summary page, and click on "Merge this computer".  You will see a list of computers eligible to be merged with this one, and you can select any or all of them.
    31  * The "Your computers" page has a link '''Merge computers by name'''.  This feature lets you automatically merge all eligible computers having the same domain name.  This is handy if you run a "computer farm" and periodically reformat all the drives.
     26Leaderboard sites show statistics from multiple BOINC projects,
     27and may want to show credit for hosts
     28summed across all the projects in which they participate.
    33 == Alternate identification method at World Community Grid ==
    35 In absence of a merge feature at this project, WCG introduced an alternate method called ''host matching'' to recognise previously existing devices to prevent new / duplicate registrations. For that the server compares standard information exchanged during server-client communications being:
    37  * user name
    38  * domain_name
    39  * ip_addr (the ip of the client on the local network)
    40  * operating system name
    41  * processor vendor
    42  * memory
    44 The most recent record that matches this criteria (if found) will be re-used. It will cancel any results currently assigned to the client, and then issue new work. This is because a user might be trying to clear out some work that was causing some form of trouble. If any of this information is hidden through for instance setting the <suppress_net_info> flag in the cc_config.xml file suppressing the IP address or domain_name, the method fails and will create a new device registration.
     30Each host generates an '''internal cross-project ID''',
     31which is the MD5 of the concatenation of its
     32domain name, IP address, free disk space, and a timestamp.
     33This is reported to the projects that to which the host is attached.
     34The projects convert it to an '''external cross-project ID'''
     35by hashing it with the owner's email address
     36(this is intended to prevent spoofing).
     37The external ID is exported in statistics files.