Описанный выше браузер CENO также работает в сетях P2P. Алгоритм следующий. Когда сайт запрашивается пользователем (узлом), он сохраняется и непрерывно распространяется среди всех пользователей, запускающих браузер. Контент доступен для всех в этой зоне. Для получения дополнительной информации см. руководство пользователя.
Peer-to-peer
Peer-to-peer (P2P) — это распределенная компьютерная сеть одноранговых сетей, основанная на равных правах всех участников. Такая структура делает сеть более безопасной, поскольку нет возможности дублировать отдельные серверы. Все участники сети одновременно являются и серверами, и клиентами. Технология блокчейн основана на сетях P2P.
Одноранговые системы использовались во многих областях применения в прошлом, но эта архитектура стала известна благодаря системе обмена файлами Napster, выпущенной в 1999 году.
Технические особенности править
В одноранговой сети работа или рабочая нагрузка равномерно распределяется между одноранговыми сетями с равными привилегиями. Отдельные узлы делят часть своих ресурсов, таких как вычислительная мощность, дисковое хранилище и пропускная способность сети, со всеми участниками сети. Не требуется централизованная координация с помощью серверов или стационарных центральных компьютеров.
Это означает, что, в отличие от традиционной модели «клиент-хункер», отдельные концентраторы в сети выполняют функции как сервера, так и клиента. То есть как потребители, так и поставщики веб-сайтов. В первом случае узлы посылают запросы на требуемые ресурсы, а во втором — отвечают на такие запросы, предоставляя собственные ресурсы.
В некоторых случаях частично децентрализованные сети имеют отдельные серверы, которые координируют работу сети и предоставляют информацию об активных узлах и их состоянии.
Новые кооперативные системы P2P ищут решения, предоставляющие уникальные ресурсы, которые приносят пользу всему виртуальному сообществу, а не отдельным членам сети, предоставляющим те же ресурсы. Это позволяет выполнять более сложную работу сети, чем если бы все узлы делали одно и то же.
Использование P2P в криптовалюте править
Horrowner Networks используется для обмена файлами. В этом случае пользователь предоставляет другим участникам сети, выступающим в роли серверов, доступ к файлам на своих компьютерах. Клиент находит файл и инициирует загрузку с компьютера. Один файл также может быть загружен из нескольких источников.
Еще одним применением пиринговых сетей является распределенная информатика. В этом случае сложная задача анализируется на множество мелких задач, решается участниками сети, а результаты «собираются» в единое целое.
Наконец, современные одноранговые платежные системы были разработаны на основе децентрализованных сетей, которые обеспечивают более справедливые условия использования. Это принцип, по которому работают все криптовалюты.
Это означает, что, в отличие от традиционной модели «клиент-хункер», отдельные концентраторы в сети выполняют функции как сервера, так и клиента. То есть как потребители, так и поставщики веб-сайтов. В первом случае узлы посылают запросы на требуемые ресурсы, а во втором — отвечают на такие запросы, предоставляя собственные ресурсы.
Почему подход Р2Р эффективнее традиционного
В основном это связано с тем, что форма P2P упраздняет иерархию, характерную для традиционного образовательного процесса. Когда на первый план выходят критическое мышление, креативность и гибкость, простое представление информации «сверху вниз» кажется устаревшим и не охватывает всю имеющуюся информацию. Такая система воспитывает только послушных исполнителей.
Второй недостаток этих вертикальных отношений между учителем и учеником — это разрыв, возникающий из-за того, что один человек является «носителем знаний», а другой пытается их получить. Это усугубляется страхом «задавать глупые вопросы», возражать или выражать другую точку зрения, которая может быть подавлена властью учителя.
Кроме того, иерархия знаний учителя и абсолютных приоритетов недооценивает знания и опыт учеников. P2P дает каждому возможность поделиться знаниями и навыками и быть принятым другими.
Пример использования P2P в обучении команд
В Google 80% процесса обучения происходит через внутреннюю сеть G2G-Googler-to-Googler. Более 6 000 сотрудников Google обучают друг друга по этой программе. Такой подход не только сохраняет внутренние знания, но и приумножает их, поскольку в процессе обсуждения и обмена создается еще больше знаний. Внутренние эксперты могут организовывать уроки, наставлять и разрабатывать учебные материалы.
Оптимизация затрат на привлечение внешних экспертов.
Расширение участия в рабочем процессе для признания опыта существующих работников.
Система накопленных знаний и опыта, обратная связь с коллегами и, как следствие, повышение квалификации.
Пример использования P2P в обучении взрослых
В Ecole 42, современной некоммерческой частной школе программирования во Франции, тысячи студентов изучают программирование в форме сверстников. Им даются задания для самостоятельного и группового выполнения. И все они находятся на одном уровне — нет никаких учителей или инструкторов. В ходе урока учащиеся также оценивают работу своих одноклассников.
Все задания, которые выполняют студенты, являются реалистичными — такими, с которыми вы могли бы работать в реальной жизни в качестве инженера-программиста или разработчика веб-сайтов. У студентов есть возможность сотрудничать, обсуждать и искать информацию в Интернете, а также проводить мини-тренинги для тех, кто знает и умеет меньше. Каждый раз, когда они решают задачу, они получают очки опыта. Работой остальных управляют их одноклассники и компьютерная программа. Чтобы получить степень по программе, вы должны просмотреть работу двух других студентов и получить два комментария к коду.
Каковы преимущества этой формы образования? Этот метод обучения предотвращает основные проблемы традиционной системы образования, где студенты являются пассивными получателями знаний. Помимо развития навыков требовательности, студенты учатся работать в группах, представлять идеи и сохранять их в памяти. Все это важно в ИТ и других профессиональных областях.
Эксклюзивное исследование российского сектора корпоративного обучения: тенденции, практики и инструменты. Опыт 70 компаний с общей численностью сотрудников 800 000 человек. Скачать бесплатно прямо сейчас.
Самая известная файлообменная сеть P2P — BitTorrent. Сети P2P отличаются от других сетей тем, что происходит частичный обмен файлами. Каждый клиент загружает детали, одновременно загружая их другим клиентам. Это снижает нагрузку и важность отдельных узлов.
Peer-to-peer
Peer-to-peer — это архитектура передачи данных, основанная на идее равных прав для всех участников сети. В сети нет эксклюзивных серверов. В отличие от традиционных сетей, каждый участник является одновременно и клиентом, и сервером. Основное преимущество такой сети заключается в том, что производительность сети почти не зависит от ее размера. Создать и поддерживать сервер для сотен тысяч пользователей непросто, но пиринговые сети работают очень хорошо.
Идея общения с равными заключается в том, чтобы все равные были в курсе информации о других участниках. Когда новый клиент подключается к сети, он может запросить у пользователя-аналога информацию о том, какие файлы доступны в данный момент и где они находятся. Когда клиент начинает скачивать файлы на свой компьютер, часть файла, которую он скачивает, сразу же становится доступной для других пользователей. Хотя никто не может гарантировать, что каждый сервер будет подключен и доступен в течение длительного периода времени, это нормально, когда сервер не работает во время процесса получения. В этом случае может быть найден новый сервер, который продолжит передачу данных. Для поддержания списка активных одноранговых пользователей каждый сервер посылает пульс другим серверам. Сердцебиение — это сообщение, которое сервер посылает другому серверу, чтобы сообщить ему, что он все еще жив. Поэтому, если сердцебиение не приходит в течение длительного времени, этот сервер должен быть удален из списка активных peers. Постоянный обмен пульсовыми сообщениями с большим количеством серверов обременителен. Поэтому каждый сервер имеет два параметра: нижний предел и верхний предел для размера каталога активного сервера. Когда это число падает ниже порогового значения, новые члены ищут новые пределы. Сервер запрашивает список активных пользователей-ровесников у других серверов и добавляет некоторых из них в свой собственный список, но следит за тем, чтобы размер каталога не превышал потолок.
Частично децентрализованные сети править
Помимо одноранговых узлов, в некоторых одноранговых сетях есть серверы, которые выполняют административные функции, например, поддерживают онлайн-базу. К частично децентрализованным сетям относятся edonkey, Bittorrent, Direct Connect и Onion-маршрутизаторы.
BitTorrent протокол править
Протокол BitTorrent был разработан Коэном Брамом в 2001 году для того, чтобы дать возможность набору узлов быстро и легко обмениваться файлами.
Сам протокол состоит из небольшого торрент-файла, содержащего информацию о трекере, отслеживающем файл, и список разделов, где файл был создан. (-512kb) Таким образом, когда вы скачиваете файл, вы можете считать из него хэш и убедиться, что все, что вы скачиваете, не содержит ошибок. Помимо торрент-файлов, существуют детекторы. Peers — серверы, которые отслеживают состояние узлов, связанных с распределением. После получения торрент-файла пир получает список пиров, которые подключены к детектору, уже имеют часть файла и готовы его доставить. Затем клиент узнает адрес семпла, предлагающего скачивание, переходит непосредственно на семпл и скачивает файл оттуда. Таким образом, все данные передаются напрямую от пира к пиру, а детектор участвует только в качестве координатора процесса.
Таким образом, протокол не является централизованным (нет эксклюзивного хранилища данных), но решает проблему «где я могу найти, где я могу скачать этот файл».
Чтобы избежать проблем с поиском частей файла, детектор предлагает сначала загрузить раздел минимального количества членов сети. Это позволяет избежать проблемы, характерной для последовательных бросков, когда многие участники загружают весь файл, но никто не заканчивает.
Эта система хорошо работает, когда каждый участник скачивает документ, остается, чтобы раздать его, и уходит домой. К сожалению, клиенты скачивают все, что им нужно, и решают не сохранять дистрибутив. Если в системе много владельцев лицензий, никто не будет распространять файлы. Скорость загрузки снижается. Для решения этой проблемы трекеры могут применять систему вознаграждений. Новые разделы могут быть предложены сверстникам только в том случае, если соотношение полученного и прочитанного не превышает определенного показателя. К сожалению, это не всегда хорошо работает. Это связано с тем, что некоторые компьютеры имеют хорошую скорость съемки и низкую скорость загрузки. Таким клиентам трудно иметь хорошие показатели и страдать от этой системы.
Слабым местом системы является система слежения. Детектор всегда должен быть в режиме онлайн и готов координировать работу большого количества равноправных пользователей. Конечно, это гораздо проще, чем рекламировать весь файл желающим, но это также очень требовательно к ресурсам. Однако, несмотря на борьбу с компаниями по защите авторских прав, в мире сегодня существует несколько отличных торрент-трекеров. (Правда, торрент-трекеры всегда были центром пиратского контента — судиться с трекерами за хранение редко удается).
Децентрализованные сети править
DHT править
Давайте рассмотрим некоторые примеры децентрализованных, структурированных P2P-сетей
DHT: Предположим, у вас есть задача, которая поддерживает распределенные хэш-таблицы. DHT представляют собой распределенные таблицы фрагментации, размещенные на разных узлах, с ценами, хранящимися на разных узлах сети. Кроме того, система должна быть децентрализованной. Ни один эксклюзивный сервер не отвечает за поддержание структуры сети.
Распределенные таблицы фрагментации могут найти множество применений. Например, есть данные, к которым нужно получить доступ, но их слишком много для хранения на сервере — используйте DHT. Возможно, вам нужна собственная торрент-система, где каждый участник отвечает за некоторые файлы в сети — DHT работает и для вас.
Рассмотрите варианты, предложенные кодексом. Например, допустим, ключ на панели фрагментации — это 160-битное число (например, формирование формы объекта). Назначив столько 160 бит (по желанию, случайным образом), каждый узел отвечает за объект, ключ которого является ближайшим номером к этому узлу среди всех узлов.
В целях инициализации мы можем предположить, что в сети есть несколько узлов. Каждый из них узнает ключи других узлов и инициализирует свою часть таблицы фрагментации.
Предположим, что клиент подключен к одному из узлов сети и хочет найти сервер, ответственный за ключ k. Простой способ сделать это состоит в том, чтобы каждый узел хранил информацию о следующем и предыдущем узле (на основе связанного ключа). Если ключ не находится в зоне его ответственности, запрос можно смело передавать следующему узлу. Если узел хочет покинуть сеть, он сообщает соседу, что узел больше не будет функционировать, и передает часть своей платы этому узлу. Подключение нового узла происходит аналогичным образом.
К сожалению, это не очень хорошо работает. В среднем, не рекомендуется проходить через половину сервера на один запрос. Вместо этого можно хранить что-то вроде двоичного лифта. (k + 2 ^ 0) % 2 ^ 160, (k + 2 ^ 1) % 2 ^ 160 на сервер, ответственный за ключ, а также ссылку на следующий сервер и т.д. Таким образом, логарифм операции может быть использован для обращения к соответствующему серверу.
Для повышения надежности отчеты могут храниться не только на предыдущем/следующем узле, но и на многих (3-5) ближайших узлах. Это необходимо для того, чтобы сетевое соединение не прерывалось, если узел, не успевший договориться с соседом, внезапно закроется. Также необходимо периодически отправлять сообщения на сервер быстрого соединения. Если вы добавляете узлы и честно вычисляете все 2 ^ n переходов по всем узлам сети, что невозможно, дайте узлам это задание и регулярно проверяйте их. Точность этих данных — хорошая идея.
Поэтому мы рассмотрели пример децентрализованной, структурированной P2P-сети.
Blockchain править
Блокчейн — это распределенная база данных, каждый блокчейн содержит список транзакций.
Bitcoin править
Биткойн — это децентрализованная цифровая валюта, которая работает через интернет. Биткойн основан на технологии блокчейн.
Идея децентрализованной криптовалюты имеет подводные камни, в основном это проблема двойных платежей. В отличие от обычных банкнот, их нельзя просто взять и скопировать. Легко сделать копию электронного файла, содержащего информацию о кошельке, и потратить деньги в одном месте в разных частях света. Поскольку система децентрализована, ни один сервер не может запросить информацию о текущем счете. С одной стороны, это сильно усложняет дело, но с другой — дает значительные преимущества в плане распределяемости.
В примере с WhatsApp архитектура называется «клиент-сервер». Это самый распространенный тип: каждый сайт в Интернете функционирует таким образом с 1970-х годов.
Применение P2P в других сферах
P2P был изобретен профессионалами в области информационных технологий, но экономисты используют аналогичный подход. В финансовой сфере этот термин относится к обмену цифровыми активами без посредника. Платформы P2P связывают покупателей и продавцов, а также кредиторов и заемщиков.
P2P-биржа Bitzlato — это форум для покупки и продажи криптовалют. Пользователи находят друг друга и в частном порядке определяют условия договора. Например, можно найти человека, который хочет продать биткоины по текущему курсу и получить деньги на карту Сбербанка. Bitzlato помогает защитить транзакции только путем блокировки криптовалюты на время транзакции. Обычные биржи взимают высокие обменные курсы и комиссионные за каждую транзакцию, что делает их менее прибыльными.