Разработка web-приложений p2p. Обмен данными в распределенных сетях

Содержание

Слайд 2

Обмен данными в распределенных сетях Широковещание (broadcast) Широковещание на адрес Рассылка

Обмен данными в распределенных сетях

Широковещание (broadcast)
Широковещание на адрес
Рассылка соседям
Клонирование (replication)
Кэширование
Хэш-таблица (DHT)
Сеть

доверия (F2F)
Блоковая сеть (DAG или blocknet)
Слайд 3

Широковещание (broadcast) Примеры: FM-радио, ТВ-сигнал. При широковещании узел, подключенный к антенне

Широковещание (broadcast)

Примеры: FM-радио, ТВ-сигнал. При широковещании узел, подключенный к антенне или проводу, рассылает в эфир

данные, а другие узлы одновременно принимают эти данные.
Слайд 4

Широковещание на адрес Примеры: Пейджеры, Ethernet, PON, mesh-сети. Является разновидностью широковещания,

Широковещание на адрес

Примеры: Пейджеры, Ethernet, PON,
mesh-сети.
Является разновидностью широковещания, где все

узлы принимают из эфира или провода все данные. Разница в том, что данные идут не единым потоком, а в виде отдельных блоков и у каждого блока внутри задан адрес получателя. Например, каждый пейджер слушает эфир и читает блоки, но в память записывает только блоки со своим адресом, после чего выдает уведомление на экран и пищит.
Слайд 5

Рассылка соседям Примеры: RetroShare, Pandora, aMule. Рассылка данных происходит не сразу

Рассылка соседям

Примеры: RetroShare, Pandora, aMule.
Рассылка данных происходит не сразу на все

узлы сети, как при широковещании, а по очереди на каждый подключенный узел соседа. Узел соседа пересылает данные своим соседним узлам, и так далее вовне веером по цепочкам текущий соединений. Сарафанное радио…
Слайд 6

Клонирование (replication) Примеры: blockchain (Bitcoin, Etherium и другие), rsync, многие DB.

Клонирование (replication)

Примеры: blockchain (Bitcoin, Etherium
и другие), rsync, многие DB.
Представляет собой

простое копирование базы данных с узла на узел до полного выравнивания данных. При изменении данных на каком-либо узле «разница» рассылается соседним узлам.
Слайд 7

Кэширование Примеры: ZeroNet, Diaspora (точнее, её «поды»). Записи распределяются от узла

Кэширование

Примеры: ZeroNet, Diaspora (точнее, её «поды»).
Записи распределяются от узла к

узлу «широковещанием» или «рассылкой», после чего какое-то время хранятся в локальном хранилище, а по истечении заданного времени (или по другому условию) удаляются.
Слайд 8

Хэш-таблица (DHT) Примеры: Kademlia, OpenDHT, Tox. Каждому блоку данных сопоставляется некоторый

Хэш-таблица (DHT)

Примеры: Kademlia, OpenDHT,
Tox.
Каждому блоку данных сопоставляется некоторый хэш-идентификатор (обычно md5-хэш

или sha1-хэш этого блока). Каждому узлу также назначается некоторый адрес-идентификатор (обычно md5-хэш или sha1-хэш открытого ключа). После этих двух условий данные распределяются по сети «широковещанием» или «рассылкой» и сохраняются на узлах в сопоставлении адреса-идентификатора с хэшем-идентификатором.
Слайд 9

Сеть доверия (F2F) Примеры: WoT, PGP, GnuPG, RetroShare, Pandora. Записи в

Сеть доверия (F2F)

Примеры: WoT, PGP, GnuPG, RetroShare,
Pandora.
Записи в сети

доверия распределены не псевдослучайным образом как в DHT, а по доверенным узлам. Доверие – это специальная пометка (обычно в виде подписи или сертификата) открытого ключа другого узла, которому данный узел доверяет свои данные.
Слайд 10

Блоковая сеть (DAG или blocknet) Примеры: Dagcoin, IOTA, Byteball. По сути

Блоковая сеть (DAG или blocknet)

Примеры: Dagcoin, IOTA, Byteball.
По сути является комбинациями,


либо blockchain и хэш-таблицы,
либо blockchain и сети-доверия.