<? require_once("docutil.php"); page_head("Storage"); echo " <h3>Files and data servers</h3> <p> The BOINC storage model is based on <b>files</b>. The inputs and outputs of applications, and the application executables, are files. <p> The BOINC core client transfers files to and from <b>data servers</b> operated by the project, using HTTP. <p> A file is described by an XML element of the form <pre> <file_info> <name>foobar</name> <url>http://a.b.c/foobar</url> <url>http://x.y.z/foobar</url> ... <md5_cksum>123123123123</md5_cksum> <nbytes>134423</nbytes> <max_nbytes>200000</max_nbytes> <status>1</status> [ <generated_locally/> ] [ <executable/> ] [ <upload_when_present/> ] [ <sticky/> ] [ <signature_required/> ] </file_info> </pre> The components are as follows: <ul> <li> The <b><name></b> element gives the file's name, which must be unique within the project. <li> Each <b><url></b> element gives a URL where the file is (or will be) located on a data server. <li> The <b><md5_cksum></b> element is the MD5 checksum of the file. <li> The <b><nbytes></b> element is the size of the file in bytes (may be greater than 2^32). <li> The <b><max_nbytes></b> element is the maximum allowable size of the file in bytes (may be greater than 2^32). This is used to prevent flooding data servers with bogus data. <li> The <b><status></b> element is 0 if the file is not present, 1 if the file is present, or a negative error code if there was a problem in downloading or generating the file. <li> The <b><generated_locally></b> element, if present, indicates that the file will be generated by an application on the client, as opposed to being downloaded. <li> The <b><executable></b> element, if present, indicates that the file protections should be set to allow execution. <li> The <b><upload_when_present></b> element, if present, indicates that the file should be uploaded after it is created. <li> The <b><sticky></b> element, if present, indicates that the file should be retained on the client after its initial use. <li> The <b><signature_required></b> element, if present, indicates that the file should be verified with an RSA signature. This generally only applies to executable files. </ul> These attributes allow the specification of various types of files: for example, input or output files that are retained for use as input to later computations. <p> Once a file is created (on a data server or a participant host) it is immutable. <h3>File references</h3> <p> Files may be associated with <a href=work.html>workunits</a>, <a href=result.html>results</a> and <a href=app.html>application versions</a>. Each such association is represented by an XML element of the form <pre> <file_ref> <file_name>foobar</file_name> [ <open_name>input</open_name> ] [ <main_program/> ] </file_ref> </pre> The components are as follows: <ul> <li> The <b><file_name></b> element specifies a file. <li> The <b><open_name></b> element is the name by which the application will refer to the file. <li> The <b><main_program/></b> element is used for files associated with application versions. It indicates that this file is the application's main program. </ul> "; page_tail(); ?>