BOINC supplies a utility program validate to perform validation and credit-granting. This program must be linked with two project-specific functions:
int check_set(vector results, int& canonicalid, double& credit);
int check_pair(RESULT& r1, RESULT& r2, bool& match);
check_set() takes a set of results. If there is sufficient agreement, it selects one of them as the canonical result (returning its ID) and also decides what credit should be granted for correct results for this workunit.

check_pair() compares two results and returns match=true if they agree.

The file validate_test.C contains an example implementation of check_set() and check_pair().

The XML document listing the output files has the form:

<file_info>...</file_info>
[ ... ]
<result>
    <name>foobar</name>
    <wu_name>blah</wu_name>
    <exit_status>blah</exit_status>
    <file_ref>...</file_ref>
    [ ... ]
</result>
The components are:

The XML document describing the sizes and checksums of the output files is just a list of <file_info> elements, with the nbytes and md5_cksum fields present. The project back end must parse this field to find the locations and checksums of output files. "; page_tail(); ?>