Appearance
终端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的方案。
