P2P-сеть в Ethereum | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 5 февраля, печатный экземпляр отправим 9 февраля.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №28 (266) июль 2019 г.

Дата публикации: 14.07.2019

Статья просмотрена: 27 раз

Библиографическое описание:

Крохин, М. О. P2P-сеть в Ethereum / М. О. Крохин. — Текст : непосредственный // Молодой ученый. — 2019. — № 28 (266). — С. 12-14. — URL: https://moluch.ru/archive/266/61602/ (дата обращения: 22.01.2022).



Цель этой статьи — объяснить реализацию концепции Р2Р-сетей в рамках Ethereum. Технология P2P имеет потенциал для устранения недостатков централизованных систем за счет использования богатых ресурсов конечных устройств, и с 1990-х годов она была внедрена в популярных программах, таких как eMule, bitTorrent и Skype. Это также ключевой компонент систем блокчейнов, таких как биткойн или Ethereum.

Что такое сеть P2P?

Peer-to-Peer (P2P) — это оверлейная сеть, то есть построенная поверх общедоступного Интернета. С математической точки зрения его можно рассматривать как ориентированный граф G = (V, E), где V — это набор одноранговых узлов в сети, а E — набор связей между одноранговыми узлами. Каждый узел p имеет уникальный идентификационный номер pid. Ссылка (p, q) в E означает, что p имеет прямой путь для отправки сообщения q; то есть, p может отправить сообщение q по сети, используя pid q в качестве пункта назначения. Хотя в базовой сети TCP / IP подобные IP-адреса могут транслироваться в близлежащие физические местоположения, такая прямая корреляция редко встречается.

https://miro.medium.com/max/700/0*oiR8-gn0z60XcbYQ

В идеале все узлы должны быть соединены путем. Поскольку отдельные одноранговые узлы имеют только неполное представление о топологии сети и членстве одноранговых узлов, наложение зависит от промежуточных одноранговых узлов для пересылки сообщений в правильные области наложения. Структура графа обеспечивает несколько путей между каждой парой одноранговых узлов и способствует устойчивости, обеспечивая возможность соединения, несмотря на изменения одноранговых узлов. На уровне каждого узла связь графа отражается с точки зрения его смежности с другими узлами. Когда одноранговые узлы присоединяются или покидают сеть, смежные одноранговые узлы могут иметь неверную информацию о смежности. Механизмы обслуживания оверлеев используются для обновления информации о смежности, что позволяет поддерживать связь между всеми узлами. [1]

https://miro.medium.com/max/664/0*eZXxhO--7v_Ft13n

Участники сети P2P предоставляют часть своих ресурсов другим участникам сети. Каждый одноранговый узел обеспечивает вычислительные циклы, дисковое хранилище и пропускную способность сети без необходимости в центральном координационном экземпляре. Пиры являются как поставщиками, так и потребителями сетевых ресурсов, в отличие от традиционной модели клиент-сервер, где потребляют только серверы и клиенты. Следовательно, P2P-сети потенциально способны устранить ограничения модели клиент-сервер, такие как масштабируемость и единая точка отказа.

Часто существует минимальный порог вклада ресурса для однорангового узла, чтобы присоединиться к оверлею P2P. Ресурсный вклад должен быть справедливым. Критерий справедливости может диктовать, что, например, средний вклад любого партнера должен быть в пределах статистической границы общего среднего значения системы P2P. Ресурсный вклад также должен быть взаимовыгодным. Пользователи поощряются к участию в приложениях P2P, если выгода сопоставима с предоставляемыми ресурсами. [2]

Как работает P2P-сеть Ethereum?

Официальное программное обеспечение клиентского узла Ethereum, Geth, реализует свой протокол обнаружения одноранговых узлов (протокол обнаружения узлов RLPx), основанный на механизме обслуживания оверлеев, называемом Kademlia DHT. В то время как Kademlia предназначена для эффективного поиска и хранения контента в P2P-сети, P2P-сеть Ethereum используется только для обнаружения новых партнеров.

Kademlia

В сети Ethereum каждый клиентский узел связан с идентификатором enode, который затем хэшируется с SHA3 в 256-битное значение. Kademlia определяет расстояние по метрике XOR, поэтому расстояние между двумя 256-битными числами является их побитовым исключающим ИЛИ. Каждый одноранговый узел имеет структуру данных, состоящую из 256 различных сегментов, где сегмент i хранит информацию о 16 одноранговых узлах на расстоянии от 2 ^ (i-1) до 2 ^ i от своего собственного идентификатора энода. Чтобы обнаружить нового партнера, узел Ethereum выбирает себя в качестве цели x, смотрит в свои сегменты, чтобы найти 16 узлов, ближайших к цели x, и просит каждого из них вернуть 16 узлов из своих сегментов «ближе» к цели x, в результате чего до 16x16 вновь обнаруженных узлов. Из этих 16x16 вновь обнаруженных узлов 16 узлов, ближайших к цели x, затем просят вернуть 16 узлов даже ближе к x. Процесс продолжается итеративно, пока не будут найдены новые узлы.

Peer Communications

Geth использует соединение UDP для обмена информацией о сети P2P. Существует четыре типа сообщений UDP. Сообщение ping требует сообщения pong в ответ. Эта пара сообщений используется для определения, реагирует ли соседний узел. Сообщение findnode запрашивает сообщение соседей, которое содержит список из 16 узлов, которые были обнаружены отвечающим узлом. После установления одноранговых соединений узлы Geth обмениваются информацией блокчейна через зашифрованные и аутентифицированные TCP-соединения.

https://miro.medium.com/max/597/0*eHjQwApvFYQhsd0-

Структура данных

Клиент Geth хранит информацию о других узлах в двух структурах данных. Первая — это долгосрочная база данных с именем db, которая хранится на диске и сохраняется при перезагрузках клиента. БД содержит информацию о каждом узле, который видел клиент. Каждая запись в БД состоит из идентификатора узла, IP-адреса, порта TCP, порта UDP, времени последнего пинга, отправленного на узел, времени последнего понга, полученного от узла, и количества раз, когда узел не смог ответить на сообщение findnode. Если время последнего понга, полученного от узла, было старше 1 дня, этот узел будет удален из БД.

Вторая структура данных — это краткосрочная база данных, называемая таблицей. Таблица пуста, когда клиент перезагружается. Таблица состоит из 256 сегментов, каждый из которых может содержать до 16 записей. Каждая запись записывает информацию о другом узле Ethereum — его идентификатор, IP-адрес, порт TCP и порт UDP. Если узел не отвечает на findnode более 4 раз подряд, он будет удален из таблицы.

Когда клиент впервые запускается, он имеет пустую базу данных и знает только шесть жестко запрограммированных узлов начальной загрузки. Затем, когда клиент начинает обнаруживать одноранговые узлы, он добавляет их в базу данных и таблицу в соответствии с механизмами, описанными выше.

Заключение

В рамках данной статьи были получены следующие результаты:

– Была рассмотрена общая структура Р2Р сетей;

– Было рассмотрено функционирование Р2Р концепции сети в реализации Ethereum;

– Изучен механизм хранения данных в Ethereum;

Литература:

  1. Vasilios Darlagiannis. P2P Systems and Overlay Networks, [PDF file] URL: https://www.iti.gr/iti/files/document/seminars/p2p_eketa_090610_v2.pdf
  2. S. Umamaheswari and Dr. V. Leela,. P2P Overlay Maintenance Algorithm, [PDF file] URL: http://journals.sagepub.com/doi/pdf/10.1260/1748–3018.6.3.555
  3. Ethereum Whitepaper [PDF file] URL: http://blockchainlab.com/pdf/Ethereum_white_paper-a_next_generation_smart_contract_and_decentralized_application_platform-vitalik-buterin.pdf
Основные термины (генерируются автоматически): узел, UDP, TCP, структура данных, DHT, XOR, клиентский узел, механизм обслуживания оверлеев, ресурсный вклад, участник сети.


Похожие статьи

Оптимизация размещения данных по узлам...

Оптимальный выбор количества файлов и их размещение в узлах сети может значительно увеличить эффективность сети. Поэтому первоочередной задачей становится наилучшее распределение файлов по узлам. Из-за большой размерности очень трудно получить точное...

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

В данной статье рассмотрены основные виды сетевых атак. Проведено детальное рассмотрение каждой из атак и описаны способы защиты. Статья должна послужить руководством по максимальной защите персонального компьютера подключенного к сети и личных данных...

Роль протокола TCP в современных компьютерных сетях.

Представить современный мир без компьютерных сетей практически невозможно. Компьютерные сети, или сети передачи данных, проникли практически во все области жизни человека: теперь мы можем общаться, несмотря на расстояние...

Организация аутентификации по протоколу «Kerberos»

Представленные в статье материалы работы посвящены важным вопросам построения сложных гибких систем аутентификации. С проблемами взаимной аутентификации пользователей любой открытой системы непременно сталкиваются разработчики. Дополнительным достижением...

Системы сбора информации в аспекте кибербезопасности

– внутренних уязвимостей корпоративной сети. – внешних атак на корпоративную сеть

Logstash — это механизм сбора данных с открытым исходным кодом с возможностями конвейерной обработки в реальном времени.

– Munin, для анализа трафика и обслуживания.

Реактивный алгоритм динамической маршрутизации...

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

Алгоритмы балансировки в сети OSPF | Статья в журнале...

Испытуемые сети являются случайными сетями, генерируемыми механизмом, описанным в [7]. Используем три различных сценария трафика. В первом (рисунок 7) из них случайные колебания трафика во временной шкале измерений игнорируются, учитывая параметр флуктуаций.

Организация сбора технологических данных с буровой и передачи...

Использует порт 5432/tcp/udp. PostgreSQL использует только один механизм хранения данных под названием Postgresstoragesystem (система хранения Postgres), в котором транзакции и внешние ключи полностью функциональны, в отличии от MySQL, в котором InnoDB и BDB...

Модель системы передачи данных с использованием...

В последнее время существует тенденция стремительного увеличения объема передаваемой информации в пакетных сетях передачи данных. В действующих пакетных сетях, как правило, используются два способа передачи информации: дейтаграмный (посредством протокола...

Похожие статьи

Оптимизация размещения данных по узлам...

Оптимальный выбор количества файлов и их размещение в узлах сети может значительно увеличить эффективность сети. Поэтому первоочередной задачей становится наилучшее распределение файлов по узлам. Из-за большой размерности очень трудно получить точное...

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

В данной статье рассмотрены основные виды сетевых атак. Проведено детальное рассмотрение каждой из атак и описаны способы защиты. Статья должна послужить руководством по максимальной защите персонального компьютера подключенного к сети и личных данных...

Роль протокола TCP в современных компьютерных сетях.

Представить современный мир без компьютерных сетей практически невозможно. Компьютерные сети, или сети передачи данных, проникли практически во все области жизни человека: теперь мы можем общаться, несмотря на расстояние...

Организация аутентификации по протоколу «Kerberos»

Представленные в статье материалы работы посвящены важным вопросам построения сложных гибких систем аутентификации. С проблемами взаимной аутентификации пользователей любой открытой системы непременно сталкиваются разработчики. Дополнительным достижением...

Системы сбора информации в аспекте кибербезопасности

– внутренних уязвимостей корпоративной сети. – внешних атак на корпоративную сеть

Logstash — это механизм сбора данных с открытым исходным кодом с возможностями конвейерной обработки в реальном времени.

– Munin, для анализа трафика и обслуживания.

Реактивный алгоритм динамической маршрутизации...

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

Алгоритмы балансировки в сети OSPF | Статья в журнале...

Испытуемые сети являются случайными сетями, генерируемыми механизмом, описанным в [7]. Используем три различных сценария трафика. В первом (рисунок 7) из них случайные колебания трафика во временной шкале измерений игнорируются, учитывая параметр флуктуаций.

Организация сбора технологических данных с буровой и передачи...

Использует порт 5432/tcp/udp. PostgreSQL использует только один механизм хранения данных под названием Postgresstoragesystem (система хранения Postgres), в котором транзакции и внешние ключи полностью функциональны, в отличии от MySQL, в котором InnoDB и BDB...

Модель системы передачи данных с использованием...

В последнее время существует тенденция стремительного увеличения объема передаваемой информации в пакетных сетях передачи данных. В действующих пакетных сетях, как правило, используются два способа передачи информации: дейтаграмный (посредством протокола...

Задать вопрос