NIP-66: 릴레이 탐색 및 가동 모니터링
NIP-66은 릴레이 모니터링 데이터를 Nostr에 게시하는 방법을 표준화한다. 모니터 서비스는 릴레이의 가용성, 지연 시간, 프로토콜 준수, 지원 NIP을 지속적으로 테스트하고 결과를 kind 30166 이벤트로 게시한다.
작동 방식
모니터는 릴레이에 연결하고 테스트 구독을 보내 가용성을 확인한다. 지연 시간 측정은 연결 시간, 구독 응답 시간, 이벤트 전파 지연을 추적한다. 프로토콜 준수 테스트는 릴레이 동작이 사양과 일치하는지 검증하여 구현 버그나 의도적 편차를 포착한다.
NIP 지원 검증은 NIP-11 선언을 넘어 광고된 기능이 실제로 올바르게 작동하는지 테스트한다. 릴레이가 NIP-50 검색 지원을 선언하지만 검색 쿼리가 실패하면, 모니터는 검증 목록에서 NIP-50을 제외한다. 이를 통해 릴레이 기능에 대한 실측 데이터를 제공한다.
Kind 30166 이벤트는 릴레이 URL을 d 태그로 사용하여 매개변수화된 교체 가능 이벤트로 만든다. 각 모니터는 릴레이당 하나의 이벤트를 게시하고, 측정값이 변경될 때 업데이트한다. 여러 모니터가 같은 릴레이를 추적하여 중복성과 교차 검증을 제공할 수 있다.
왕복 시간(rtt) 태그는 다양한 작업의 지연 시간을 측정한다:
rtt open: WebSocket 연결 수립rtt read: 구독 응답 시간rtt write: 이벤트 게시 속도
모든 값은 밀리초 단위이다. 클라이언트는 이 지표를 사용하여 시간에 민감한 작업에 저지연 릴레이를 선호한다.
지리 정보는 클라이언트가 더 나은 지연 시간과 검열 저항성을 위해 가까운 릴레이를 선택하는 데 도움이 된다. geo 태그는 국가 코드, 국가 이름, 지역을 포함한다. network 태그는 클리어넷 릴레이를 Tor hidden service나 I2P 엔드포인트와 구분한다.
왜 중요한가
NIP-66은 릴레이 품질을 일화적 정보에서 기계 판독 가능한 데이터로 전환한다. 클라이언트는 더 이상 릴레이 자체의 NIP-11 문서나 하드코딩된 허용 목록만 신뢰할 필요가 없다. 하나 이상의 모니터에서 측정된 가동 시간, 측정된 지연 시간, 테스트된 기능 지원을 비교할 수 있다.
이는 outbox 모델에서의 릴레이 선택에 가장 중요하다. 클라이언트가 많은 릴레이에 동적으로 연결할 때, 죽거나 잘못 구성된 릴레이는 느린 피드 로딩과 더 많은 실패한 요청이라는 직접적인 비용을 발생시킨다.
활용 사례
모니터 데이터는 클라이언트의 릴레이 선택기, 탐색 웹사이트, 신뢰 평가 시스템에 활용된다. 릴레이 자체 보고와 독립적인 실시간 릴레이 상태를 제공함으로써, NIP-66은 정보에 기반한 릴레이 선택을 가능하게 한다.
NIP-11(자체 보고 기능) 및 Trusted Relay Assertions(신뢰 평가)과 결합하여, 생태계는 하드코딩된 기본값에 의존하는 대신 데이터 기반 릴레이 선택으로 나아간다.
신뢰 모델
NIP-66은 단일 권위 있는 모니터를 만들지 않는다. 여러 모니터가 같은 릴레이에 대한 결과를 게시할 수 있고, 클라이언트가 이를 비교할 수 있다. 이 설계는 한 운영자의 판단에 대한 의존도를 줄이지만, 결과가 충돌할 때 누구의 측정값을 신뢰할지에 대한 정책이 클라이언트에 필요하다는 의미이기도 하다.
주요 출처:
- NIP-66 사양 - 릴레이 탐색 및 가동 모니터링 표준
언급된 뉴스레터:
같이 보기: