ZooBC 维基
集成

中继

ZooBC 钱包可以显示哪些联系人在线,并在账户之间建立通话。两个浏览器通常无法直接相互连接,因此它们需要在开放的互联网上有一个会合点。中继就是这个会合点。它传送信令,两个钱包借此找到彼此;它告诉钱包通话本身该使用哪些服务器;它还报告谁在线。中继登记在链上,因此钱包无需任何中央目录就能找到它们。

中继做什么

中继以三种方式为钱包服务:

  • 信令:两个钱包为建立通话而交换的简短消息,通过 /relay/ws 上的 WebSocket 传送。
  • 在线状态:此刻哪些账户在线。
  • 连接协助:TURN 和 ICE 服务器,让位于家用路由器后面的两个浏览器能够互相连通以进行通话。

官方网页钱包还通过中继传递通道游戏的签名走子(通道应用)。

每个中继在 /relay/info 描述自己:运营者的收款地址、费率、TURN 服务器和信令路径。经中继传送的数据通过向运营者的地址发送 ZBC 来付费,没有资金的账户会被拒绝。

登录

中继必须知道哪个账户真正在线,否则任何人都可以冒充任何人。因此,钱包用自己的账户密钥签署中继发来的一次性质询来登录。质询不能重复使用,密钥也从不离开钱包。

两个钱包各自连接到中继以获取信令和在线状态,用账户和签名登录,通话本身经由 TURN 在两者之间进行;RegisterRelay 记录中继密钥、域名、URL 和所有者的网关
两个钱包各自连接到中继以获取信令和在线状态,用账户和签名登录,通话本身经由 TURN 在两者之间进行;RegisterRelay 记录中继密钥、域名、URL 和所有者的网关

在链上登记中继

所有者用 RegisterRelay(类型 48)登记中继,其中写明:

  • 中继自己的密钥,写作 ZBR_…;
  • 它所属网关的密钥,该网关必须是同一账户拥有的活跃网关;
  • 它的域名和 URL,规则与网关相同:域名只能使用字母、数字、点和连字符,URL 必须以 https:// 开头。

不锁定任何质押。所有者用 UnregisterRelay(类型 49)撤回该条目,钱包在 GET /api/v1/registry/relays 查找中继。当自己的网关失效时,网页钱包会重新读取链上的网关、中继和归档服务列表。

中继不做什么

  • 它们不转发交易。节点自己把交易传给对等节点,并且不为此收费。
  • 它们不为跨链桥监视其他链;这由已注册节点旁边的守护者程序完成(跨链桥与封装币)。
  • 它们不产出区块;只有已注册节点才出块(运行节点)。
  • 它们从不持有用户的密钥。

另见