Рубрика «p2p-сети»

P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети - 1


Многие, кто работают с интернет-сокетами в любой сфере IT, задаются вопросом о пробросе портов. Связано это с тем, что практически во всех домашних/общественных/корпоративных роутерах реализован механизм NAT, который перекрывает прямой доступ к устройствам в этих подсетях извне, общаясь с внешним интернетом от их имени.

У NAT есть киллер-фича — он представляет собой идеальный фаервол: атаки извне не могут использовать порты локальных устройств напрямую, следовательно, это решает проблему атак на сетевую уязвимость ОС.

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

Разнообразные сервисы работают на серверах, т. е. имеют некую ноду, которая имеет белый адрес в интернете (находится не за NAT). Все пользователи же подключаются к этому единому серверу. В таком случае проблема «невидимости» пользователей отпадает. Однако чисто серверное взаимодействие ограничивает скорость участников, так ещё и не отказоустойчиво. Если сервер упадёт, то все клиенты отправятся за ним (считаем, что это одноклеточный сервис не на всяких там kubernetes).

Как вы уже могли были догадаться, даже в реалиях, когда практически все устройства находятся за NATами, P2P реален. Когда вы являетесь участником bittorrent-раздачи, трансфер больших данных осуществляется напрямую. Как это работает? Поиск ответа на этот вопрос завёл меня в глубокие дебри, разгребая которые я написал оверлейную p2p-сеть, где трекерами являются сами её участники. Интересно? Тогда добро пожаловать под кат.Читать полностью »

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

С интернетом что-то не так

Впервые я познакомился с Интернетом в 2000 году. Конечно, это далеко не самое начало — Сеть уже существовала до этого, но то время можно назвать как первый расцвет Интернета. Всемирная паутина — гениальное изобретение Тима Бернерса-Ли, web1.0 в его классической канонической форме. Множество сайтов и страничек, ссылающихся друг на друга гиперссылками. На первый взгляд — простая, как все гениальное, архитектура: децентрализованная и свободная. Хочу — путешествую по сайтам других людей, переходя по гиперссылкам; хочу — создаю свой сайт, на котором публикую то что мне интересно — например свои статьи, фотографии, программы, гиперссылки на интересные для меня сайты. А другие размещают ссылки на меня.

Казалось бы — идиллическая картина? Но вы уже знаете чем всё это закончилось.
Читать полностью »

Как узнать свой внешний IP из программы - 1

При написании различных программ для работы с сетью, особенно p2p систем, время от времени возникает необходимость узнать внешний IP своего компьютера из программы (тот адрес, по которому Ваш компьютер доступен из Большого Интернета). Часто возникает искушение пойти легким путем и использовать внешние WEB-сервисы, которые по http возвращают Вам IP, или самому развернуть таковой. Хотя такой способ решения задачи и работоспособен, он тем не менее, имеет ряд недостатков:

  • При использовании собственного сервера – нужно где-то его держать и поддерживать, заодно и c соответствующим доменным именем. В случае выхода его из строя, или принудительного отзыва домена, вся Ваша p2p сеть выходит из строя.
  • При использовании внешнего сервера – Вы вводите зависимость своей системы как от его работоспособности, так и от формата ответов, который вообще никак не стандартизирован, и который владелец сервера может поменять в любой момент. С теми же последствиями для вашей сети.
  • http, которым советуют пользоваться – базируется на tcp, то есть протокол сравнительно тяжеловесный, требующий установки соединения и тп. В общем, пользоваться можно, но перерасход ресурса как компьютера, так и сети налицо.

Читать полностью »

Представим, что у вас есть ПК на базе условного GeForce GTX 1080.

Не исключено, что вы ярый геймер, но динамика цен на эту видеокарту подсказывает, что дело не только в играх:
«Железо» в прокат: как устроена децентрализованная игровая платформа Playkey - 1
Сколько зарабатывает одна такая «машина» за сутки, если использовать ее исключительно для майнинга? Примерно 25 Мегахешей в секунду, или около $1.5 в сутки, если добывать Etherium.

«Железо» в прокат: как устроена децентрализованная игровая платформа Playkey - 2
Пруф

Сейчас в Playkey мы арендуем сотни серверов, но не у частных пользователей, а у хостинг-провайдеров. Серверов с GPU — мало, и стоят они дорого, поэтому мы берём их в лизинг. И тут нам в голову пришла гениальная идея: почему бы не использовать «железо» пользователей вместо «железа» от жадных хостеров? Мы провели нехитрые расчеты.

Допустим, в Playkey максимальная стоимость часа игры — не выше 49 рублей (по самому «дорогому» тарифу «Тренировочка», как раз на один час). Даже если представить, что с внедрением p2p-модели цены на сервис упадут вдвое (а нам это только на руку, чтобы Playkey пользовалось еще больше игроков), то одна машина-майнер может зарабатывать около $10 в сутки (и при далеко не полной своей загрузке). Вместо $1.5 за 24 часа добычи эфира.  
«Железо» в прокат: как устроена децентрализованная игровая платформа Playkey - 3

Но пойдем по порядку.
Читать полностью »

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

Пользователю это даст быстрый доступ к его локальной копии нашего сайта.

Также мы научимся переключать на локальный шлюз IPFS сайты, которые этого ещё не делают.

Напомню: InterPlanetary File System — это новая децентрализованная сеть обмена файлами (HTTP-сервер, Content Delivery Network). О ней я рассказывал в статье "Межпланетная файловая система IPFS".

image

Читать полностью »

Немного про RetroShare

Из Википедии:
RetroShare — свободное кроссплатформенное программное обеспечение для бессерверного обмена письмами, мгновенными сообщениями и файлами с помощью шифрованной F2F (и опционально P2P) сети, построенной на GPG. Не является даркнетом в строгом смысле слова, так как пиры могут обмениваться сертификатами и IP адресами со своими друзьями.
Читать полностью »

Раз уж пошла такая пляска, то и я расскажу про новый параметр магнет ссылки.

br=192000

Как правильно качать в p2p сетях или магнит с битрейтом - 1
В магнет-ссылке он выглядит так.

magnet:?dn=pop_music.mp3...&br=192000

Этот параметр позволяет совместить преимущества последовательного и случайного выбора частей для загрузки. Назовем это «смешанный способ выбора частей». Тем самым давая возможность «онлайн» просмотра/прослушивания без ущерба для скорости загрузки.
Читать полностью »

Эта заметка является полётом безудержной фантазии с претензией на аналитику на тему «куда идём мы с Пятачком».

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

Когда Интернет был ещё младенцем, он представлял собой месиво технологий, часто взаимно несовместимых. С началом стандартизации, TCP/IP и всего последующего, Интернет как ребёнок произнёс своё первое слов, перешагнул через океаны и распространился по миру. Подростком он вырастил WWW и так стал самым массовым источником и хранилищем информации за всю историю человечества. Зрелость Интернета пришла с парадигмой «юзеро-центричности» и Web 2.0, что вывело Интернет на грань становления коллективным разумом.

И сейчас мы стоим на этой грани и наклоняемся вперёд.
Читать полностью »

Есть в техническом обществе подкласс людей, которые жить не могут без переделывания, усовершенствования разного рода устройств и изобретений «велосипедов». Судя по всему я отношусь к нему, так как мои руки постоянно «чешутся» что-то собрать самостоятельно. Даже если это бывает невыгодно, забирает много времени, и просто «дешевле купить». Но сам процесс созидания, экспериментирования и наслаждения конечным результатом перекрывает все издержки с лихвой. Короче, — гики меня поймут.
Все мои компьютеры были модернизированы а девайсы подвержены моддингу. Любовь к комфорту и тишине заставляла постоянно бороться с шумом кулеров и тугим ходом клавиш. Я искал компромиссы в корпусе компьютера, делал бесшумные клавиатуры и ослаблял давление в кнопках мыши – все ради тишины. Я хотел бесшумный компьютер с низким потреблением энергии и в итоге я просто перешел на ноутбуки и нетбуки, так как мощность для меня не имеет критического значения (в игры играть нет времени, видео не монтирую).
Еще я очень честный человек, — честно! И если я скачал файл из пиринговой сети, то я обязательно должен его отдать и в большем объеме. Это мой принцип, по-другому я просто не могу. А еще я с моей девушкой очень люблю смотреть романтические фильмы о любви (ну вы поняли, о чем я ;)), поэтому мой компьютер и сеть часто были загружены. Вот и решено было собрать маломощный компьютер, который постоянно работал бы в сети. И как вы поняли,- он должен был быть компактным, бесшумным и не прожорливым. Конечно, это не является проблемой, ведь кроме готовых решений в виде неттопов, хватает и комплектующих для самостоятельной комплектации подобных устройств. Проблема в том, что бюджет моего проекта оказался сильно ограничен и составлял всего 120$ (не скажу почему). Поэтому пришлось искать дешевые решения и нестандартные подходы. Так был зачат проект «атомный чемоданчик». Почему, и что из этого вышло, — читайте далее.Читать полностью »

P2P (Peer-to-Peer) – это технология для построения компьютерных сетей, где каждый компьютер является одновременно и сервером, и клиентом, и эта технология позволяет также использовать совместно распределенные ресурсы (например файлы).
Существуют централизированные (с одним центральным сервером для управления сети), гибридные (где есть много таких серверов) и чистые P2P сети (вообще без серверов). Для коммуникации между компьютерами используются различные протоколы и в последнее время идет попытка их стандартизации, и открытости: JXTA и Gnutella открытые стандартизированные протоколы. В централизированых и гибридных сетях, когда новый компьютер подключается в P2P- сеть, он регистрируется на сервере и получает информацию о сети. В чистых P2P сетях компьютер подключается к любому компьютеру, ранее подключенному в сеть и от него получает информацию о сети. В классических P2P, предназначенных для распространнения различных файлов каждый компьютер воспринимается сетью, как анонимная сущность. В последне время появились некоторые инновативные проекты с целью построения социальной сети на основе технологии P2P.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js