Слайд 1Разработка 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 и сети-доверия.
Слайд 11DHT сеть
Сеть хранения
Файл и его описание
Наивная реализация UDP
Программа – работает
всегда когда может
При запуске – процесс подключения
Затем ответ на вопросы пиров
Когда нужно делает запросы к сети