A P2P Vision for QUIC (2024)
В статье рассматривается применение протокола QUIC для решения проблем обхода NAT в P2P-сетях. Авторы отмечают, что за годы было стандартизировано множество протоколов (STUN, ICE, TURN), но процесс остается сложным из-за разнообразия реализаций NAT, которые переписывают IP-адреса пакетов и действуют как файрволы. Основная проблема P2P-сетей — соединение двух узлов, находящихся за разными NAT, независимо от их типа.
Традиционные решения включают использование STUN для обнаружения публичных IP-адресов, ICE для координации пробивания дыр в файрволах и TURN как запасной вариант с ретрансляцией трафика. Авторы предлагают, что QUIC может предоставить комплексное решение для обхода NAT, объединяя все эти функции в одном протоколе и упрощая P2P-сетевое взаимодействие. Это потенциально может заменить несколько отдельных протоколов единой, более эффективной реализацией.
Комментарии (40)
- Обсуждение вращается вокруг проблемы NAT и hole punching при попытке установить прямое P2P соединение, включая то, что некоторые NAT ведут себя непредсказуемо и не позволяют hole punching.
- QUIC и WebTransport обсуждаются как потенциальные решения, но оба стандарта ещё не реализованы в браузерах и их поддержка ограничена.
- Обсуждается, что для P2P соединений не требуется централизованный сервер, но вопрос в том, что сервер может всё ещё потребоваться для ретрансляции трафика в случае, если оба клиента находятся за NAT.
- Поднимается вопрос о том, что TLS сертификаты могут быть самоподписанными и не обязаны быть выданы удостоверяющим центром, что может быть использовано для P2P соединений.
- Участники обсуждают, что хотя WebTransport и был предложен как стандарт для web-платформ, он всё ещё не реализован в браузерах и его будущее неясно.
Iroh-blobs
Выпущен iroh-blobs 0.95 с несколькими значительными новыми функциями, главной из которых является пул соединений (util::connection_pool). Этот компонент оптимизирует работу с большим количеством конечных точек, сохраняя верхнюю границу одновременных соединений — критически важно при загрузке blobs из множества провайдеров. Пул через метод get_or_connect либо возвращает существующее соединение, либо создает новое, автоматически управляя временем жизни и закрывая простаивающие соединения по необходимости.
Доступны продвинутые опции настройки: максимальное количество соединений, таймауты подключения и простоя, а также колбэк on_connected для выполнения дополнительной логики перед выдачей соединения. Например, можно настраивать передачу только через прямые соединения для повышения производительности. Важно отметить, что пул возвращает ConnectionRef, а не Connection, для корректного отслеживания времени жизни — клонирование Connection из ConnectionRef нарушит этот механизм. После выпуска iroh 1.0 пул будет перемещен в отдельный крейт.
Комментарии (24)
- Iroh предоставляет P2P-соединения, но при разработке возникают проблемы с подключением к серверу, а Windows Defender блокирует бинарники, что делает невозможным безопасную поставку клиенту.
- Пользователи отмечают, что Iroh упрощает создание проектов, обеспечивает безопасную передачу данных и предоставляет гибкие возможности для хранения и синхронизации данных.
- Некоторые участники обсуждения сравнивают Iroh с другими инструментами, такими как Tailscale и vanadium, и задаются вопросом о различиях в использовании и функционале.
- Вопросы о версионировании, масштабируемости и производительности при использовании Iroh для хранения и синхронизации данных поднимаются в контексте обсуждения.
Testing “Exotic” P2P VPN
Стандартный WireGuard блокируется сигнатурными методами, поэтому автор ищет альтернативные P2P VPN-решения с меш-топологией, открытым исходным кодом и без зависимости от WireGuard. Рассмотрены два варианта: EasyTier и Nebula.
EasyTier — минималистичный проект из Китая, использующий общий пароль для шифрования и поддерживающий множество протоколов для обхода блокировок. Не требует сложной настройки, но не позволяет закреплять IP-адреса за устройствами. Nebula от создателей Slack предлагает PKI на эллиптических кривых, собственный файрвол и зонирование, но требует ручного распределения сертификатов и имеет неудобный интерфейс через SSH. Оба решения упакованы в nixpkgs и подходят для создания самохостанных сетей без центрального сервера.
Комментарии (22)
- Обсуждаются альтернативы P2P VPN: упоминаются Tinc, WireGuard, Nebula, Iroh, Yggdrasil, vpncloud, а также устаревшие проекты (Social VPN, Remobo и др.).
- Критикуется исключение Headscale из сравнения, так как он, по мнению участников, не связан с Tailscale и является полноценной open-source альтернативой.
- Уточняется, что SSH-интерфейс в Nebula предназначен только для отладки, а не для конфигурации, что было неверно истолковано в исходном посте.
- Отмечаются проблемы поддержки некоторых проектов (Tinc, по мнению ряда комментаторов, выглядит заброшенным).
- Обсуждаются технические нюансы: работа derper за обратным прокси, обфускация в AmneziaVPN без уменьшения MTU, идея использования VPN на втором уровне (L2).
Download responsibly 🔥 Горячее 💬 Длинная дискуссия
Geofabrik обновила сервер для скачивания данных OpenStreetMap, сделав загрузки быстрее и доступнее. Теперь запросы на файлы с суффиксом «…latest» автоматически перенаправляются на актуальную версию через HTTP-редирект.
Однако сервер сталкивается с проблемами из-за нерационального использования: некоторые пользователи массово скачивают одни и те же большие файлы (например, 20-ГБ данные Италии тысячи раз за сутки), что замедляет работу для всех и вынуждает блокировать IP-адреса, затрагивая и невинных. Geofabrik призывает скачивать ответственно: использовать единый планшетный файл с planet.openstreetmap.org для глобальных данных, применять pyosmium-up-to-date для инкрементных обновлений крупных регионов (это экономит 98% трафика) и контролировать автоматизированные скрипты во избежание сбоев.
Комментарии (185)
- Предлагается использовать BitTorrent или аналогичные P2P-технологии для распределения нагрузки при скачивании больших файлов, таких как данные OSM.
- Обсуждается необходимость внедрения базовых мер защиты: ограничение запросов (rate limiting), обязательная авторизация (API-ключи) для предотвращения злоупотреблений.
- Основная проблема — безответственное использование ресурсов, часто из-за ошибок в автоматизированных скриптах и CI/CD-пайплайнах, которые многократно загружают одни и те же файлы.
- Высказывается мнение, что часть пользователей не осознаёт последствий своих действий, и простые технические решения могли бы предотвратить проблему.
- Отмечается, что некоторые корпоративные среды блокируют P2P-трафик, что ограничивает применимость решений на основе BitTorrent.
PayPal to support Ethereum and Bitcoin 🔥 Горячее 💬 Длинная дискуссия
PayPal открывает новую эру P2P-платежей
Компания PayPal представила функцию персонализированных платежных ссылок, которые можно отправлять через любые мессенджеры. Пользователи из США уже могут создавать одноразовые ссылки для переводов, а в ближайшее время функция станет доступна в Великобритании, Италии и других странах.
В скором времени в приложение PayPal будет интегрирована возможность отправки криптовалюты (Bitcoin, Ethereum, PYUSD) другим пользователям PayPal, Venmo и сторонних кошельков, поддерживающих криптоплатежи.
Компания также подтвердила, что личные переводы между друзьями и родственниками через Venmo и PayPal не подлежат налоговой отчетности по форме 1099-K. Это касается подарков, возмещений расходов и разделения счетов.
«PayPal в очередной раз меняет то, как люди переводят деньги друг другу», — заявил представитель компании.
Комментарии (363)
- Домен paypal-corp.com признан легитимным, несмотря на подозрения в фишинге.
- Пользователи скептически относятся к вовлечению PayPal в криптовалюты, учитывая историю блокировок счетов и средств.
- Подчеркивается противоречие между децентрализованной природой криптовалют и централизованной моделью PayPal как посредника.
- Высказываются опасения по поводу высоких комиссий, регуляторных сложностей и отсутствия реального самоходного кошелька (not your keys, not your crypto).
- Отмечается, что поддержка криптовалют PayPal уже существует годами, и новость касается в основном стабильных монет (stablecoins).
- Указывается на ограниченность запуска: сначала только для пользователей в США, что противоречит заявлению «для всех и везде».
- Многие видят в этом шаге в основном попытку соответствовать регуляторным требованиям и освоить новый рынок, а не технологический прорыв.
- Поднимается вопрос о практической полезности криптовалют с высокими комиссиями и медленными транзакциями для повседневных расчетов.
- Высказывается недоверие к корпорациям в целом из-за неповоротливости, плохой поддержки и неэтичных практик.
Make any site multiplayer in a few lines. Serverless WebRTC matchmaking
Trystero — безсерверный WebRTC-матчмейкинг.
Добавь мультиплеер в пару строк.
Прямо сейчас все на этой странице соединяются напрямую и синхронизируют курсоры и клики.
Поддерживаются BitTorrent, Nostr, MQTT, IPFS, Supabase, Firebase.
Пример:
import {joinRoom} from 'trystero'
const room = joinRoom({appId: 'trystero-lounge'}, '101')
room.onPeerJoin(addCursor)
room.onPeerLeave(removeCursor)
const [sendMove, getMove] = room.makeAction('mouseMove')
const [sendClick, getClick] = room.makeAction('click')
window.addEventListener('mousemove', e => sendMove([e.clientX, e.clientY]))
window.addEventListener('click', () => sendClick(randomFruit()))
getMove(([x, y], id) => setCursorPosition(id, x, y))
getClick((fruit, id) => dropFruitFrom(id, fruit))
Также доступны аудио/видео-потоки и файлы.
Комментарии (59)
- Демо-страница Trystero вызвала восторг: «круто», «весело», «отличный API», но подчёркнули, что это не «serverless» — просто чужие серверы для SDP-сигналинга.
- Вопросы масштабируемости: p2p-видео комнаты выше 4-8 человек требуют SFU/TURN-серверов, иначе падает кодировка и сеть.
- Safari и Firefox жалуются на лаги, зависания и DOMException при множестве PeerConnection.
- Сравнение с PeerJS: тот использует один центральный сервер, Trystero — гибкий мульти-сигналинг.
- Подняли юридические риски: в UK и штате Mississippi такой «социальный» сайт обязывает собирать ID пользователей.