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

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

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

Автор:

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

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

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

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

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

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



Цель этой статьи — объяснить реализацию концепции Р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, клиентский узел, механизм обслуживания оверлеев, ресурсный вклад, участник сети.


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

Модернизация и дополнение IT-архитектуры предприятия посредством шины данных

В статье автор рассматривает шину данных как ключевой элемент современной ИТ-архитектуры, обеспечивающий эффективное взаимодействие между различными системами предприятия. Шина данных упрощает процесс интеграции и позволяет централизованно управлять ...

Влияние нейронных сетей на бизнес и общество

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

Использование нейросетевого подхода для верификации рукописной подписи

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

Переход на облачные VPS, как способ сокращения расходов предприятия

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

Блокчейн: влияние на будущее технологий

В статье автор рассмотрел такое понятие, как «блокчейн», и выявил, как технологии блокчейна будут влиять на будущее. Также автор выявил преимущества и недостатки блокчейна и рассмотрел спектр отраслей, в которых он может применяться.

Технические инновации и их значение для экономики

В статье приводится понятие, общая характеристика инновационных разработок в сфере экономики. Обосновывается преимущества использования технологии Блокчейн, раскрывается содержание этого понятия. Аргументировано, что применение децентрализованной баз...

Выбор оптимального маршрута грузоперевозок автомобильным транспортом с использованием искусственных нейронных сетей

Планирование маршрута грузоперевозок является ключевой задачей логистов любой транспортной компании. Использование нейронных сетей для этого позволяет учитывать неопределенность и неполноту исходной информации. В работе описывается процедура выбора о...

Оценка стойкости криптосистемы Эль-Гамаля

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

Защитное кодирование оптических дисков и цифровых внешних носителей информации

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

Разработка модуля прогнозирования цен на товары для онлайн-платформы

В данной статье описывается разработка модуля машинного обучения для прогнозирования цен на товары на онлайн-платформе. Модуль использует алгоритмы машинного обучения, такие как случайные леса и деревья решений, для точного прогнозирования цен в зави...

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

Модернизация и дополнение IT-архитектуры предприятия посредством шины данных

В статье автор рассматривает шину данных как ключевой элемент современной ИТ-архитектуры, обеспечивающий эффективное взаимодействие между различными системами предприятия. Шина данных упрощает процесс интеграции и позволяет централизованно управлять ...

Влияние нейронных сетей на бизнес и общество

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

Использование нейросетевого подхода для верификации рукописной подписи

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

Переход на облачные VPS, как способ сокращения расходов предприятия

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

Блокчейн: влияние на будущее технологий

В статье автор рассмотрел такое понятие, как «блокчейн», и выявил, как технологии блокчейна будут влиять на будущее. Также автор выявил преимущества и недостатки блокчейна и рассмотрел спектр отраслей, в которых он может применяться.

Технические инновации и их значение для экономики

В статье приводится понятие, общая характеристика инновационных разработок в сфере экономики. Обосновывается преимущества использования технологии Блокчейн, раскрывается содержание этого понятия. Аргументировано, что применение децентрализованной баз...

Выбор оптимального маршрута грузоперевозок автомобильным транспортом с использованием искусственных нейронных сетей

Планирование маршрута грузоперевозок является ключевой задачей логистов любой транспортной компании. Использование нейронных сетей для этого позволяет учитывать неопределенность и неполноту исходной информации. В работе описывается процедура выбора о...

Оценка стойкости криптосистемы Эль-Гамаля

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

Защитное кодирование оптических дисков и цифровых внешних носителей информации

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

Разработка модуля прогнозирования цен на товары для онлайн-платформы

В данной статье описывается разработка модуля машинного обучения для прогнозирования цен на товары на онлайн-платформе. Модуль использует алгоритмы машинного обучения, такие как случайные леса и деревья решений, для точного прогнозирования цен в зави...

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