Слайд 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
Программа – работает
                                                            
                                    всегда когда может
При запуске – процесс подключения
Затем ответ на вопросы пиров
Когда нужно делает запросы к сети