BOINCクライアント-サーバ技術
サーバはC++で記述された2つのCGIプログラムと(通常は)5つのデーモンで構成されている。クライアントが実行する計算をワークユニットと呼ぶ。結果はワークユニットのインスタンスを記述する(それが完了していなくても)。プロジェクトでは明示的に結果を作成することはなく、サーバがワークユニットからそれらを自動的に作成する。
スケジューラー(scheduler)CGIプログラムは、クライアントからの要求を処理し、完了した結果を受け取り、新しい作業を計算機に送信する。スケジューラーは、データベースから直接に利用可能な結果を取得するわけではない。その代わりに、フィーダー(feeder)デーモンがデータベースからタスクをロードして共有メモリブロックに保持し、スケジューラーがそれを読み取る。スケジューラーがそれらの結果をクライアントに送信した後、フィーダーは、共有メモリブロックの空の「スロット」を定期的に埋める。
ワークユニットのすべての結果が完了して返されると、バリデーター(validator)はそれをチェックする。一般的な方法の一つは、結果を相互に比較することである。バリデーターは、結果どうしのファジー比較を行うカスタムプロジェクトコードを持つことも、ビット単位で比較することもできる。