查了旧数据/没有,然后再去广播,就能有效避免历史信息被覆盖。
你说的方法:用户登录新客户端后,手工添加原来使用的relay
这种方式,在这个不分青红皂白就广播的客户端上,恰好可以清空用户历史数据。
没有数据则啥也不做,不要广播relay列表,relay列表数据只在用户手动post时才进行广播。就解决了这个问题。
Please Login to reply.
不管是一开始就广播,还是用户post时再广播,只要不查历史数据,直接发新数据,就会覆盖Relay Server上的信息。
Nostr的核心思想是,Relay上不要做太多事,就是存储,删除,完全靠created time和id来对应消息,剩下很多拉取,合并等工作,要在客户端完成。
或者说,可以把Nostr Relay Server的设计,当成一个消息队列服务器。
用户不主动post, 就不存在新数据, 覆盖啥?
说的是手动post前也得查
还有一种方案是,任何relay里保存的relay列表中任何元素,只能写入,不可删除。
不再喜欢的following,用户可手动Block
Nostr的核心思想是服务端做尽可能少的事,这样可以用很低廉的硬件资源就建立服务,从而让服务器遍及全球。
你想啊,要是把Twitter或者微博服务器端开源,没几个人有那么多服务器去建立一套微博服务。最终还是只有少数几个服务。也就根本谈不上一个分布式全球服务。
Nostr协议层试图协调所有relay做同一件事,比如删除历史数据。
是完全错误的理念。
真正的去中心化协议,是不会允许有删除选项的。