iroh
SHA-256공개 키 다이얼을 IP 주소 대신 사용하는 모듈식 Rust 네트워크 스택, 자동 홀 펀칭 및 중계, 내장 blob, gossip, docs 프로토콜 조합.
스마트 다운로드
Download 버전 다운로드
v1.0.0 · 4.8 MB
전화 걸듯이 네트워크에 연결하면, IP 地址는 변하지만 公钥는 변하지 않습니다.
주요 기능
- 공개 키 신원 식별자를 사용하여 IP 주소 변경에 신경 쓸 필요 없음
- 자동 NAT 홀 펀칭으로 직접 연결 구현, 실패 시 공용 릴레이로 폴백
- QUIC 프로토콜 기반, 내장 암호화, 다중 스트림 및 datagram 지원
- 세 가지 즉시 사용 가능한 프로토콜 제공: blobs (콘텐츠 주소 지정 전송), gossip (발행-구독), docs (키-값 저장소)
- 지속적인 성능 테스트로 연결 속도 보장
할 수 없는 것
- •현재 버전은 주로 Rust 개발자를 대상으로 하며, 다른 언어는 FFI 바인딩(iroh-ffi, 아직 개발 중)을 통해 사용해야 합니다. 공용 릴레이 서버는 추가 지연을 유발할 수 있으므로, 프로덕션 환경에서는 자체 릴레이를 구축하거나 개인정보 보호 요구 사항을 평가하는 것이 좋습니다. 홀 펀칭 성공률은 네트워크 환경에 따라 달라지며, 특정 엄격한 NAT 환경에서는 항상 릴레이를 사용할 수 있습니다.
사용 사례
- 点대점 파일 동기화 및 콘텐츠 배포
- 탈중앙화 소셜 네트워크 또는 메시징 시스템
- 사물인터넷 장치 간 직접 안전 통신
상세 설명
Iroh는 Rust로 작성된 모듈식 네트워크 스택으로, 핵심 개념은 취약한 IP 주소 대신 공개 키로 다이얼링하는 것입니다. QUIC 프로토콜을 기반으로 하며, NAT 구멍 뚫기와 중계 폴백을 자동으로 수행하고 암호화, 다중 스트림 및 저지연 전송을 제공합니다. libp2p와 같은 기존 프레임워크와 비교하여 iroh는 더 가볍고 배우기 쉽습니다. 전화 걸듯 상대방의 공개 키를 입력하기만 하면 나머지 라우팅 최적화는 라이브러리가 처리합니다. 프로젝트에는 세 가지 조합 가능한 고급 프로토콜이 내장되어 있습니다: Blobs(BLAKE3 기반 콘텐츠 주소 지정 전송), Gossip(확장 가능한 발행-구독 오버레이 네트워크), Docs(최종 일관성 키-값 저장소)로, 바로 사용할 수 있습니다. 현재 GitHub에서 9.4K 스타를 보유하고 있으며, 듀얼 라이선스 정책을 채택하고 있어 분산 애플리케이션, IoT 직접 연결, 파일 동기화 등 시나리오에 적합합니다. 참고: 현재 주로 Rust 언어를 지원하며, FFI 바인딩은 아직 개발 중입니다. 공용 중계 서버에 의존할 경우 지연 시간에 유의해야 합니다.
태그
시작하기
소프트웨어 설치
다운로드한 설치 프로그램을 더블 클릭하고 안내에 따르세요
Rust 툴체인(rustup)이 설치되어 있는지 확인한 후, cargo add iroh를 실행하여 의존성을 추가합니다.
코드에서 Endpoint::bind()를 사용하여 엔드포인트를 생성하고, connect(공개키, ALPN)를 호출하여 연결을 설정합니다.
QUIC 스트림을 통해 데이터를 전송하고, 수신 측에서는 ProtocolHandler를 구현하여 메시지를 처리한 후 컴파일 및 실행하면 됩니다.
- Rust 툴체인(rustup)이 설치되어 있는지 확인한 후, cargo add iroh를 실행하여 의존성을 추가합니다.
- 코드에서 Endpoint::bind()를 사용하여 엔드포인트를 생성하고, connect(공개키, ALPN)를 호출하여 연결을 설정합니다.
- QUIC 스트림을 통해 데이터를 전송하고, 수신 측에서는 ProtocolHandler를 구현하여 메시지를 처리한 후 컴파일 및 실행하면 됩니다.
SHA-256 체크섬 확인됨
GitHub 공식 Release 페이지에서 추출된 체크섬
SHA256 체크섬
9a3113360f882b510b55e18dfaed57899d8c350d0108ea8827daf42ce3353a3c이 체크섬은 GitHub Release 페이지에서 추출되었습니다. 다운로드 후 파일 무결성을 확인하세요.
이 플랫폼의 모든 SHA-256 체크섬은 프로젝트의 공식 GitHub Release 페이지에서 추출되었으며, 어떠한 변경도 없습니다. GitHub Releases 페이지에서 직접 검증할 수 있습니다.
오픈소스 투명성
GitHub 소스 보기제거 정보
Cargo.toml에서 iroh 의존성 라인을 삭제한 다음, cargo update를 실행하여 캐시를 정리합니다. 소스에서 클론한 경우 프로젝트 디렉토리를 직접 삭제합니다.
추가 의존성 없음
다운로드 후 바로 사용 가능. 추가 런타임이 필요하지 않습니다.