2P by neo 2달전 | favorite | 댓글 1개
  • HTTP over WebRTC
  • WebRTC DataChannel을 통해 http 클라이언트 Wrapper(HTML Fetch와 비슷)와 서버 측 HTTP 프록시를 구현
  • 웹 브라우저에서 방화벽 뒤에 숨겨진 엣지 디바이스(IoT 또는 서버)로 안전하게 직접 액세스 가능
  • 주요 특징:
    • 안전한 애플리케이션 공간에서 실행 (sudo 필요 없음)
    • 종단 간 암호화
    • 맞춤형 VPN 설정 불필요
    • 데이터 터널링을 위한 클라우드 중개자 불필요
    • 동적 DNS 서비스 불필요
    • 맞춤형 방화벽 규칙 불필요
    • 프로그래밍 언어에 구애받지 않음 (현재 JavaScript와 Python에서 사용 가능)

사용 사례:

  • 클라우드 제공자와 영상을 공유하지 않고 웹 앱에서 개인 홈 보안 카메라에 직접 사용자 접근
  • 직접 p2p 통신이 가능한 IoT 장치 메쉬
  • 개인 웹 앱이 데이터를 공개 IP 주소를 노출하지 않고 최종 사용자와만 직접 공유 (파일, 노트, 사진 등)
  • 연합 학습 - ML 모델이 로컬 사용자 데이터에서 학습하고 중앙 집중식 모델 집계 서버 없이 서로 학습된 상태를 직접 공유

GN⁺의 정리

  • peerfetch는 WebRTC를 통해 직접적이고 안전한 P2P HTTP 통신을 가능하게 하는 프로젝트임
  • 클라우드 중개자나 맞춤형 VPN 설정 없이도 종단 간 암호화를 제공하여 보안성을 높임
  • IoT 장치나 개인 웹 앱에서 프라이버시를 유지하면서 데이터를 직접 공유할 수 있는 유용한 도구임
  • 유사한 기능을 제공하는 프로젝트로는 WebRTC 기반의 다른 P2P 통신 라이브러리들이 있음
Hacker News 의견
  • Camect는 WebRTC를 통해 개인 서버의 카메라에 접근할 수 있게 하는 시스템임

    • 중앙 인증 시스템을 사용하고 WebRTC와 물리적 NVR을 통해 비디오를 효율적으로 제공함
    • Google Nest Cams처럼 클라우드 서비스가 재정적 부담이 되어 취소될 위험이 낮음
    • 매우 훌륭한 아키텍처임
  • Webtorrent는 흥미로운 아이디어임

    • 이미 양방향 WebRTC 연결이 있다면 왜 HTTP를 사용하는지 궁금함
    • 애플리케이션에 따라 다를 수 있음
  • 신호 서버 없이 이 작업을 수행할 수 있는 방법이 있는지 궁금함

  • WebRTC로 비디오를 녹화할 수 있는 솔루션이 있는지 궁금함

    • HLS와 Dash를 녹화할 수 있는 도구는 충분히 많음
    • WebRTC를 통해 전송되는 비디오 스트림을 녹화할 수 있는 PoC조차 찾지 못함 (예: agora.io)
  • 신호 서버가 어디에 있고 어떻게 작동하는지 이해하지 못함

  • Tailscale 같은 대안도 있음

  • 서비스 워커를 결합해 분산 웹사이트를 구현하는 아이디어를 시도해본 적이 있음

  • 흥미로운 프로젝트가 게시되고 HN에서 큰 토론이 벌어지지만, 라이브러리를 시도해보면 유지보수가 되지 않고 마지막 업데이트가 3년 전인 경우가 많음

  • 기대했지만 해당 저장소는 3년 넘게 업데이트되지 않았음