Другие языки программирования и технологии

Тема диплома по программированию

Хочешь чего-нибудь полезненькое сделать?
Сделай, например, пиринговую систему хранения файлов.

Принцип действия:

У пользователя есть 1 гигабайт ценных данных. Чтобы вступить в пиринговую сеть, он должен выделить 10 гигабайт свободного места на своём винте для хранения ЧУЖИХ данных (назовём это место "сундук"). Ну и иногда бывать в сети.

Данные пользователя разбиваются на N частей так, чтобы ни одна из частей не могла быть использована самостоятельно. Например, при разбивке на 9 частей в первую часть входят первые биты каждого байта, во вторую - вторые и т. д. В девятую - биты контрольных сумм для каждого байта. И gzip'ом сверху. Части сохраняются в 10 экземплярах в сундуках других случайных ста членов пиринговой сети, так чтобы у каждого было не больше одной части (впрочем, это не обязательно - при количестве членов сети больше 1000 перекрытие будет некритичным для сохранности данных) .

При потере исходного файла его с некоторой вероятностью можно будет собрать снова. При этом владельцы сундуков понятия не имеют, что там у них хранится, и восстановить чужую иноформацию не могут.

Сколько копий данных должно храниться в сети определяется отношением объема данных пользователя к объему его сундука и процентом проводимого он-лайн времени.

Дерзай! Потомки скажут тебе спасибо :) Ну и мне - за идею :)
КП
Константин Подолянец
11 876
Лучший ответ
Систему для бэкапа компьютеров в сети с централизованным управлением на сервере.

Похожие вопросы