릴레이
ZooBC 지갑은 어떤 연락처가 온라인인지 보여 주고 계정 간 통화를 연결할 수 있습니다. 두 브라우저는 보통 서로 직접 연결할 수 없으므로, 열린 인터넷 위에 만남의 장소가 필요합니다. 릴레이가 그 만남의 장소입니다. 릴레이는 두 지갑이 서로를 찾는 신호를 전달하고, 통화 자체에 어떤 서버를 쓸지 알려 주며, 누가 온라인인지 보고합니다. 릴레이는 체인에 등록되어 있으므로, 지갑은 중앙 디렉터리 없이 릴레이를 찾습니다.
릴레이가 하는 일
릴레이는 세 가지 방식으로 지갑을 돕습니다.
- 신호: 두 지갑이 통화를 연결하려고 주고받는 짧은 메시지로,
/relay/ws의 WebSocket으로 전달합니다. - 온라인 상태: 지금 어떤 계정이 온라인인지
- 연결 도움: 가정용 라우터 뒤의 두 브라우저가 통화를 위해 서로에게 닿게 하는 TURN과 ICE 서버
공식 웹 지갑은 채널 게임의 서명된 수도 릴레이를 통해 전달합니다(채널 앱).
각 릴레이는 /relay/info에서 자신을 설명합니다. 운영자의 지급 주소, 요금, TURN 서버, 신호 경로입니다. 중계된 데이터의 비용은 운영자의 주소로 ZBC를 보내 지불하며, 자금이 없는 계정은 거부됩니다.
로그인하기
릴레이는 어떤 계정이 실제로 온라인인지 알아야 합니다. 그렇지 않으면 누구나 다른 누구인 척할 수 있습니다. 그래서 지갑은 릴레이가 보낸 일회용 챌린지에 계정 키로 서명해 로그인합니다. 챌린지는 다시 쓸 수 없으며, 키는 결코 지갑을 떠나지 않습니다.
체인에 릴레이 등록하기
소유자는 RegisterRelay(유형 48)로 릴레이를 등록하며, 다음을 지정합니다.
ZBR_…로 적는 릴레이 자신의 키- 릴레이가 속한 게이트웨이의 키. 같은 계정이 소유한 활성 게이트웨이여야 합니다.
- 게이트웨이와 같은 규칙을 따르는 도메인과 URL. 도메인은 문자, 숫자, 점, 하이픈이고, URL은
https://로 시작해야 합니다.
잠그는 스테이크는 없습니다. 소유자는 UnregisterRelay(유형 49)로 항목을 철회하며, 지갑은 GET /api/v1/registry/relays에서 릴레이를 찾습니다. 게이트웨이가 실패하면 웹 지갑은 게이트웨이, 릴레이, 아카이브 서비스의 온체인 목록을 다시 읽습니다.
릴레이가 하지 않는 일
- 트랜잭션을 전달하지 않습니다. 노드는 요금을 받지 않고 직접 피어에게 트랜잭션을 전달합니다.
- 브리지를 위해 다른 체인을 감시하지 않습니다. 등록 노드 옆의 키퍼 프로그램이 그 일을 합니다(브리지와 래핑된 코인).
- 블록을 만들지 않습니다. 블록은 등록 노드만 만듭니다(노드 운영).
- 사용자의 키를 결코 보관하지 않습니다.