olegy123 писал(а):Про уровни OSI знаете?
На каком уровне будет работать ваше?
На прикладном уровне. Внутри будет реализация под разные протоколы, а снаружи прикладной уровень. То есть спросил у системы файл и она выплюнула тебе файл. Спросил у системы строку базы данных и она выплюнула строку.
Планирую сделать такую архитектуру
1. Сервис или демон который висит в памяти с одной стороны принимает запросы через сокеты, с другой после обработки запроса отправляет их в сеть чтобы найти нужные данные и вернуть эти данные тому, кто запросил.
2. Приложение, которое будет висеть в памяти и держать открытым какой-нибудь порт, для подключения к нему браузера, и которое будет представлять из себя web-сервер, который у сервиса из пункта 1 будет периодически запрашивать файлы и данные для того, чтобы прогнать их через php и выплюнуть html в браузер.
Такая двухпрограммная штука задумана на случай если кто-то ещё для каких-нибудь целей решит использовать эту децентрализованную сеть. Например мессенжер решит написать. А тут всё готово. Шли запрос в сокет и жди ответа, а потом выводи, если надо.
Лекс Айрин писал(а):И как ты собираешься хранить все это на компах? Да у тебя накладные расходы, скорее всего, съедят всю выгоду.
Этого я достоверно не знаю, но подозреваю, что в случае правильного распределения уровня данных на компьютерах конечных пользователей данных будет лежать ни так много, да и по сети передаваться будет в целом ни так много. Больше конечно чем при простой клиент-серверной технологии, но не много.
Лекс Айрин писал(а):Да и не факт, что пользователям надоест и они просто сотрут левые для них данные.
Во-первых это будет сделать сложно. Данные будут кусками лежать в виде зашифрованных пакетов. Не понятно будет где чужие данные, а где твои. А во-вторых это не окажет существенного влияния на сеть. Удалил. Программа проверила и сообщила в сеть, что данных на этом узле нет. И либо обратно всё закачалось, либо перераспределилось по другим узлам. Есть правда шанс, что данные оказались только на том узле, с которого удалили. Значит ресурс с этими данными будет не доступен в сети.
Лекс Айрин писал(а):Ничего незаконного если это делает админ на уровне всей сети или одного (2, 3... 10) компов. Во всех остальных случаях это нарушение. Дома ты, конечно, можешь делать это, но с учетом последствий.
Вы прочитали то, что я по ссылке показал? Там технология основанная на принципах работы NAT. Более того, так многие уже имеющие приложения работают.
Лекс Айрин писал(а):Ну и чисто для справки, ты хочешь это все натянуть поверх TPC/IP? Или все же подняться чуть повыше?
Я думаю реализовать возможность доработки протокола, поверх которого будет работать сеть. Изначально можно сделать поверх tcp/ip, а можно например поверх Жабера всё это натянуть. Чтобы данные от узла к узлу передавались через Жабер. Чего проще будет, то и сделаю на первом этапе. Но целевой вариант поверх tcp/ip.
serbod писал(а):Я этой темой занимался довольно долго, да и сейчас занимаюсь, но на совсем другом уровне.
https://habr.com/post/238575/https://habr.com/post/79439/Вот все исходники -
https://github.com/serbod/talariaРеализована инфраструктура связи между узлами, ведение распределенных "профилей" пользователей, общих ресурсов. Для наглядности - в виде приватных и публичных чатов, но нет проблем отдавать готовые файлы (html, картинки) и динамический xml/json контент. Были попытки интеграции с движками форумов, для синхронизации контента и профилей пользователей с другими узлами, но я потерял наработки, не выложил их в SVN, и они где-то на старой работе остались.
А абстрактные денные с помощью этого протокола передавать можно? Хотелось бы на уровне протокола абстрагироваться от данных. Чтобы я делал запрос в которо указывал, что я хочу получить и получал это. Указал, что хочу получить файл, получил файл, данные из БД, получил данные. Захотел конфиг, получил конфиг. И всё это с подписью владельца, чтобы быть уверенным, что не подделка пришла.