Skip to content

终端ID:peerid

说明:主要介绍peerid的概念、设计考虑和最终实现方案。

什么是peerid

peer是对等体,也就是点对点网络中的节点,无论是一个按需运行的手机APP,还是一个物联网设备,还是一个长期运行的中继节点,都是一个对等体,之所以叫对等体,是因为它们在星图平台下的权益和责任都是等同的,不区分角色的,所以叫对等节点ID。

用什么做peerid

一般而言,我们使用用户ID,但是设备没有用户ID。

另一个问题是假设我有两个APP下的两个用户,用户ID都是100,但是它们是不同的用户。

提案讨论

应用隔离

应用之间不互通,设施也不共用,可以允许ID在不同应用下重复,但仍未解决用户ID和设备ID重复问题,所以甚至在应用隔离下还需做一层实体隔离,那就不是对等网络了,而是需要区分不同终端类型的差异网络。

缺点

  • 无法解决用户ID和设备ID重复问题
  • 需要实体隔离,违背对等网络的设计理念

中央服务器为终端生成全局唯一ID

让终端强烈依赖中央服务器。

缺点

  • 终端对中央服务器有强依赖

自行生成唯一ID

使用RSA密钥对的公钥进行sha256+base58,这会很长,所以需要在连接后更换为连接ID,会让每次会话多一次RTT。

缺点

  • ID长度较长
  • 需要在连接后更换为连接ID
  • 每次会话多一次RTT(往返时间)

我们使用中央服务器生成

经过以上提案的讨论,我们最终选择使用中央服务器为终端生成全局唯一ID的方案。

物联网设备通信协议文档