mirror of https://github.com/BOINC/boinc.git
149 lines
5.0 KiB
HTML
149 lines
5.0 KiB
HTML
<h2>The BOINC client/server protocol</h2>
|
|
|
|
<h3>Protocol nucleus</h3>
|
|
<p>
|
|
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:
|
|
<pre>
|
|
<scheduler_request>
|
|
<platform>intel-linux</platform>
|
|
<version_num>1</version_num>
|
|
... other elements
|
|
</scheduler_request>
|
|
</pre>
|
|
The "platform" and "version_num" elements identify the
|
|
version of the core client originating the request.
|
|
|
|
<p>
|
|
The form of the reply is:
|
|
|
|
<pre>
|
|
<scheduler_reply>
|
|
[ <message priority="low"> arbitrary text </message> ... ]
|
|
[ <request_delay>3600</request_delay> ]
|
|
[ <redirect>URL</redirect> ]
|
|
... other elements
|
|
</scheduler_reply>
|
|
</pre>
|
|
|
|
<p
|
|
Each <b>message</b> element is a message to the participant.
|
|
<ul>
|
|
<li>
|
|
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.
|
|
<li>
|
|
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 the message to a log file.
|
|
</ul>
|
|
<p>
|
|
A reply message can contain multiple message elements.
|
|
|
|
<p>
|
|
A <b>request_delay</b> element instructs the client
|
|
to not issue another request until the indicated number
|
|
of seconds has elapsed.
|
|
<p>
|
|
A <b>redirect</b> 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 <b>redirect</b> elements.
|
|
|
|
|
|
<h3>Extensible protocol</h3>
|
|
<p>
|
|
The remaining protocol may evolve over time.
|
|
Request elements include
|
|
|
|
<pre>
|
|
<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>
|
|
<exit_status>0</exit_status>
|
|
<cpu_time>0.020000</cpu_time>
|
|
<output_file>
|
|
<md5_cksum>3f7b90793a0175ad0bda68684e8bd136</md5_cksum>
|
|
<file_name>uc_wu_0_0</file_name>
|
|
</output_file>
|
|
</result>
|
|
</pre>
|
|
|
|
<p>
|
|
Reply elements include
|
|
<pre>
|
|
<request_delay>10</request_delay>
|
|
<message priority="low">no work available</message>
|
|
<code_sign_key>
|
|
1024
|
|
ec8b7f60fa494ce65d70afa98f91f2ab08fb5fac3931a27524e0eb954d587846
|
|
29e94ce79d61f4d4bc4f9660578a06e941ca271646f11ef4d2be67f4a155e0a9
|
|
9908b6c814d08f0f59e9dc85afcc9d65f89a33d329d963e3fd359351ee25ca7f
|
|
71c3bd49a88ae609152559984b3fd7cdc4937d416a43c3357a59e7ed6cf3d30d
|
|
0000000000000000000000000000000000000000000000000000000000000000
|
|
0000000000000000000000000000000000000000000000000000000000000000
|
|
0000000000000000000000000000000000000000000000000000000000000000
|
|
0000000000000000000000000000000000000000000000000000000000010001
|
|
.
|
|
</code_sign_key>
|
|
<prefs_mod_time>123123</prefs_mod_time>
|
|
<preferences>
|
|
<low_water_days>1.2</low_water_days>
|
|
<high_water_days>2.5</high_water_days>
|
|
<disk_max_used_gb>0.4</disk_max_used_gb>
|
|
<disk_max_used_pct>50</disk_max_used_pct>
|
|
<disk_min_free_gb>0.4</disk_min_free_gb>
|
|
<project>
|
|
<master_url>http://localhost.localdomain</master_url>
|
|
<email_addr>david@localdomain</email_addr>
|
|
<authenticator>123892398</authenticator>
|
|
<resource_share>10</resource_share>
|
|
<project_specific>
|
|
<color-scheme>Tahiti Sunset</color-scheme>
|
|
</project_specific>
|
|
</project>
|
|
</preferences>
|
|
<result_ack>
|
|
<name>uc_wu_0</name>
|
|
</result_ack>
|
|
</pre>
|
|
|