Similar presentations:
Разработка web-приложений p2p. Обмен данными в распределенных сетях
1. Разработка web-приложений
Разработка webприложенийp2p
Цыгулин Алексей Александрович к.т.н.
2. Обмен данными в распределенных сетях
• Широковещание (broadcast)• Широковещание на адрес
• Рассылка соседям
• Клонирование (replication)
• Кэширование
• Хэш-таблица (DHT)
• Сеть доверия (F2F)
• Блоковая сеть (DAG или blocknet)
3. Широковещание (broadcast)
• Примеры: FM-радио, ТВ-сигнал.При широковещании узел, подключенный к антенне или проводу,
рассылает в эфир данные, а другие узлы одновременно
принимают эти данные.
4. Широковещание на адрес
• Примеры: Пейджеры, Ethernet, PON,mesh-сети.
Является разновидностью широковещания, где все узлы
принимают из эфира или провода все данные. Разница в том, что
данные идут не единым потоком, а в виде отдельных блоков и у
каждого блока внутри задан адрес получателя. Например,
каждый пейджер слушает эфир и читает блоки, но в память
записывает только блоки со своим адресом, после чего выдает
уведомление на экран и пищит.
5. Рассылка соседям
• Примеры: RetroShare, Pandora, aMule.Рассылка данных происходит не сразу на все узлы сети, как при
широковещании, а по очереди на каждый подключенный узел
соседа. Узел соседа пересылает данные своим соседним узлам, и
так далее вовне веером по цепочкам текущий
соединений. Сарафанное радио…
6. Клонирование (replication)
• Примеры: blockchain (Bitcoin, Etherium• и другие), rsync, многие DB.
Представляет собой простое копирование базы данных с узла на узел до полного
выравнивания данных. При изменении данных на каком-либо узле «разница»
рассылается соседним узлам.
7. Кэширование
• Примеры: ZeroNet, Diaspora (точнее, её «поды»).Записи распределяются от узла к узлу «широковещанием» или
«рассылкой», после чего какое-то время хранятся в локальном
хранилище, а по истечении заданного времени (или по другому
условию) удаляются.
8. Хэш-таблица (DHT)
• Примеры: Kademlia, OpenDHT,Tox.
Каждому блоку данных сопоставляется некоторый хэшидентификатор (обычно md5-хэш или sha1-хэш этого блока).
Каждому узлу также назначается некоторый адрес-идентификатор
(обычно md5-хэш или sha1-хэш открытого ключа). После этих двух
условий данные распределяются по сети «широковещанием» или
«рассылкой» и сохраняются на узлах в сопоставлении адресаидентификатора с хэшем-идентификатором.
9. Сеть доверия (F2F)
• Примеры: WoT, PGP, GnuPG, RetroShare,Pandora.
Записи в сети доверия распределены не псевдослучайным
образом как в DHT, а по доверенным узлам. Доверие – это
специальная пометка (обычно в виде подписи или сертификата)
открытого ключа другого узла, которому данный узел доверяет
свои данные.
10. Блоковая сеть (DAG или blocknet)
• Примеры: Dagcoin, IOTA, Byteball.По сути является комбинациями,
либо blockchain и хэш-таблицы,
либо blockchain и сети-доверия.
11. DHT сеть
• Сеть хранения• Файл и его описание
• Наивная реализация UDP
• Программа – работает всегда когда может
• При запуске – процесс подключения
• Затем ответ на вопросы пиров
• Когда нужно делает запросы к сети