[[T(Incomplete)]] = GUI RPC protocol = BOINC uses the GUI RPC protocol to make the BOINC Manager communicate with the core client. The protocol is based on XML. Both requests and responses are terminated with the control character `0x03`. Requests are inside `` tags, and replies from the client are inside `` tags. A response is never sent without getting a request first. Note that the RPC '''server''' is the core client, and the RPC '''client''' is a GUI or add-on communicating with it (such as BOINC Manager). It may seem confusing. This terminology will be used on the rest of the page. == Authentication == #auth The RPC protocol allows the RPC client to authenticate itself using a password. Most RPC operations can only be done by an authenticated client. Some can be done without authentication, but only by a client running on the same machine. Authentication on the RPC protocol is based on a challenge-response system. To initiate the authentication process, send an command: {{{ #!xml }}} The response will be the authentication challenge: {{{ #!xml 1198959933.057125 }}} The value of `nonce` is to be used as a salt with the password. It is randomly generated for each request. To calculate the response, concatenate the nonce and the password (nonce first), then calculate the MD5 hash of the result, i.e: {{{md5(nonce+password)}}}. Finally, send an `` request with the calculated hash, in hexadecimal format. {{{ #!xml d41d8cd98f00b204e9800998ecf8427e }}} The reply will be either {{{}}} or {{{}}}.