Client state
The complete state of the BOINC core client is saved in the running program in an object of class CLIENT_STATE. This is saved in a file called client_state.xml periodically, and whenever the client is shut down, so that it can be read back in and restored when the client is restarted. A backup copy, called client_state_prev.xml, is also kept, in case something happens to the client state file when it is being written.
See the BOINC FAQ Service for expanded definitions and discussion about many of the items in this file. See the Client Data page in the developer's wiki for some more technical details.
There are separate sections of the client state object/file for the host computer, computer time and network statistics, and for each project the client is connected to
You shouldn't rely on the client_state.xml format staying unchanged between BOINC versions. If you're writing a program or script that needs to get information from BOINC, use GUI RPCs instead.
Contents
Host Info
This block contains information about your computer. Items which begin with "p_" refer to the processor(s); Items which begin with "m_" refer to the main memory; Items which begin with "d_" refer to disk storage.
- timezone
- The difference between the computer's local timezone and GMT, measured in seconds.
- domain_name
- This is the name you assigned to your computer
- ip_addr
- This is your local IP address. If you are behind a router or a gateway, this is the address the router/gateway assign to your computer
- host_cpid
- Cross-project ID of this host
- p_ncpus
- Number of processors
- p_vendor
- Name of the manufacturer
- p_model
- CPU model
- p_features
- Features of the CPU
- p_fpops
- p_iops
- p_membw
- p_calculated
- m_nbytes
- Available processor memory, in bytes
- m_cache
- Size of the CPU cache
- m_swap
- Availalble swap space
- d_total
- Total disk space
- d_free
- Free disk space
- os_name
- Operating system name (Windows, Linux, ...)
- os_version
Operating system version
Time Stats
Net Stats
Projects
There is a separate project section for each project to which the client computer is attached. (Actually, there are several separate sections for each project, they are not all in one XML block. This might be considered a bug, but it's how the file evolved. To be more specific, for example, tasks belonging to a project are after the corresponding project element, instead of inside the project element. ) For each project there is information about
Project section
- master_url
- Project url
- project_name
- Project name
- symstore
- user_name
- Self explanatory
- team_name
- Self explanatory
- host_venue
- email_hash
- cross_project_id
- cpid_time
- user_total_credit
- Self explanatory
- user_expavg_credit
- Same as Average work done
- user_create_time
- rpc_seqno
- hostid
- Computer Numerical id assigned by the project
- host_total_credit
- Self explanatory
- host_expavg_credit
- Self explanatory
- host_create_time
- nrpc_failures
- Number of Remote Procedure Call failures
- master_fetch_failures
- min_rpc_time
- next_rpc_time
- short_term_debt
- long_term_debt
- cpu_backoff_interval
- cpu_backoff_time
- cuda_debt
- cuda_backoff_interval
- cuda_backoff_time
- resource_share
- The resources the user assign to the project
- duration_correction_factor
- sched_rpc_pending
- send_time_stats_log
- send_job_log
Here are some switches (there may be one or more). An example: <verify_files_on_app_start/> <dont_request_more_work/> <master_url_fetch_pending/> <suspended_via_gui/>
- ams_resource_share
- scheduler_url
- code_sign_key
Project Applications
This block lists the applications used by the project.
Application versions
This block lists the specific versions of applications released by the project.
Active Task Set
This is a list of tasks which are active on the machine.
BOINC Client Information
The end of the file is a collection of information about the BOINC client software itself.