GN⁺: Peerfetch – WebRTC를 이용한 P2P HTTP
(github.com/ambianic)- 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년 전인 경우가 많음
- 이 스레드에서 좋은 추천을 많이 받았음, 고마움
- 이 프로젝트는 좋아 보임: https://github.com/subins2000/p2pt
-
기대했지만 해당 저장소는 3년 넘게 업데이트되지 않았음