Context Navigation

The BOINC scheduling server protocol

Protocol nucleus

The core client communicates with scheduling servers using HTTP. The following 'nucleus' of the protocol should be considered immutable. This will allow any version of the core client to talk to any version of the scheduling server, and for the server, if needed, to tell the core client that it's out of date. The form of the request is:

If the priority is 'high', the core client should try to ensure that the participant sees the message; for example, by displaying it in a popup window. It should not, however, wait for user input, as this could starve other projects. This should be reserved for situations where definitive action is required, e.g. the user must download a new version of the core client in order to continue participating in this project.

If the priority is 'low' (default) the core client should allow the participant to see the message, but should not require it. For example, it could write the message to a log file.

A reply message can contain multiple message elements.

A request_delay element instructs the client to not issue another request until the indicated number of seconds has elapsed.

A redirect element gives the URL for a scheduling server for this project. If present, the core client should replace its list of scheduling servers for this project. The reply may contain multiple redirect elements.

Extensible protocol

The remaining protocol may evolve over time. Request elements include

<prefs_mod_time>0</prefs_mod_time>
<authenticator>3f7b90793a0175ad0bda68684e8bd136</authenticator>
<hostid>1</hostid>
<work_req_seconds>1000</work_req_seconds>
<host_info>
<timezone>28800</timezone>
<domain_name>localhost.localdomain</domain_name>
<ip_addr>127.0.0.1</ip_addr>
<conn_frac>0.000000</conn_frac>
<on_frac>0.000000</on_frac>
<p_ncpus>1</p_ncpus>
<p_vendor>GenuineIntel</p_vendor>
<p_model>Pentium</p_model>
<p_fpops>0.000000</p_fpops>
<p_iops>0.000000</p_iops>
<p_membw>0.000000</p_membw>
<p_calculated>0.000000</p_calculated>
<os_name>Linux</os_name>
<os_version>2.2.14-5.0</os_version>
<m_nbytes>197427200.000000</m_nbytes>
<m_cache>131072.000000</m_cache>
<m_swap>178012160.000000</m_swap>
<d_total>22108344320.000000</d_total>
<d_free>18332545024.000000</d_free>
<n_bwup>0.000000</n_bwup>
<n_bwdown>0.000000</n_bwdown>
</host_info>
<result>
<name>uc_wu_0</name>
<client_state>4</client_state>
<final_cpu_time>0.020000</final_cpu_time>
<stderr_out>
The following fields are used to report errors to the server, They
are not present if there is no error while downloading, computing
or uploading files for this result.
[ <message> some text describing the error </message>] ]
The state of the active_task assigned to compute this result at
the time of the error
[ <active_task_state>0</active_task_state> ]
The exit_status of the application running the computation for the result
[ <exit_status>0</exit_status> ]
The signal raised by the application if any.
[ <signal>0</signal> ]
If the error corresponds to downloading input files for the
work_unit for this result, then:
<download_error>
<file_name>input</file_name>
<error_code>-114</error_code>
</download_error>
If the error corresponds to uploading outfiles for this results
then:
<upload_error>
<file_name>output</file_name>
<error_code>-114</error_code>
</upload_error>
the std_err output of the application, if any, goes here.
</stderr_out>
<file_info>
<file_name>uc_wu_0_0</file_name>
<md5_cksum>3f7b90793a0175ad0bda68684e8bd136</md5_cksum>
<nbytes>54691.0000000</nbytes>
<max_nbytes>1000000.00000</max_nbytes>
<url>http://localhost/hamid_cgi/test/file_upload_handler</url>
</file_info>
</result>

Download in other formats:

Site migrated to: https://github.com/BOINC/boinc-dev-doc/wikiCopyright (c) 2014 University of California. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.