Back end functions
The general functions of a project back end include:
- Generate work.
- Reissue results.
Hosts may fail to return results for various reasons;
such results are "lost".
Lost and erroneous results may prevent
finding a canonical result for a workunit.
The "result reissue" mechanism generates additional
results as needed to find a canonical result.
- Select canonical results.
Communication from the core client can easily be altered or forged.
Output files may be wrong.
This can result from tampering or hardware failures.
This problem can be addressed
by redundant computing
In this approach, each workunit is processed at least twice.
The project back end waits until a minimum number of results have been returned,then compares the results and decides which are considered correct.
The notion of equality of results,
and the policy for deciding which are correct, are project-specific.
- Grant credit.
Some users will attempt to get undeserved credit
by falsifying their CPU metrics or CPU times.
The back end
finds the minimum reported credit for the correct results of a given workunit,
and assigns this amount of credit to all the correct results.
This ensures that as long as a reasonable majority of participants
don't falsify credit, almost all credit accounting will be correct.
- Assimilate results.
- Delete files.
- Detect "problem" workunits.