个人中继更多还是为了备份自己帖子吧。

设计Outbox是为了去中心化,但nostr不是同步网络,用对点拓扑分发内容效率不高,这种大量连接开销就不小。

Reply to this note

Please Login to reply.

Discussion

测试过,amethyst 应该连接的中继也不是很多,我只有9个。其他中继是有需要的时候,再去连接的。

如果只有 inbox 用户是不回去你的个人中继拉取数据的。但是 outbox 的话,客户端会尝试从你的个人中继中拉取数据。

是的,以现在大中继的中心化程度,还有聚合中继,用到的场合应该不多。

如果浏览关注人 feed 的话,你关注了一百多个人,不太可能只用到 9 个中继器

😂 原来其他中继还都是一直在重试链接,就是连不上而已

以现在的数据重复率,估计绝大部分情况即使连不上用户声明的outbox,也能取到几乎所有用户贴文。

以前是从十几个甚至是几十个中继中获取重复的数据,现在是从若干个用户的outbox中继中获取数据 按理说,流量是不是节省了?

只是维护巨量中继列表需要耗费不少资源吧?

以前都不用连十几个,几个就可以,比如relay.nostr.band一个就能覆盖的七七八八,使用outbox机制要连接的才会更多,数据更分散了,outbox机制耗费的资源远超过旧机制,还引入隐私问题。

在以前,使用 relay.nostr.band 确实可以让你看到大部分的内容,但是当你提及某人的时候,如果他没有使用 relay.nostr.band 就收不到你的通知。所以最终就会引导用户都使用 relay.nostr.band。那为什么我们不用 X 呢

嗯,我理解outbox产生的过程背景,但个人看法和社区主流不太一样,outbox是dumb relay理念下的产物,这是很莫名其妙的口号。nostr就是nostr,不会因为relay的局部中心化变成X,原来的机制下relay不论免费收费都受到博弈资源限制不可能绝对中心化,去中心化是给予用户平等权利,而不是义务,比如比特币,用户可以去运行矿机或节点,但不是必须运行矿机或节点,去中心化的用户行为都是博弈出来的,而不是设计出来的。

我觉得不能类比比特币,因为比特币只要你运行节点就对网络有影响。而在 nostr 以前的逻辑下,你运行自己的 relay 几乎是毫无意义的,你需要有足够的影响力说服足够多的人加入你。更像是现在大家都用微信,你有权利开发新的聊天软件,但是没有人加入你,你最终还是要留在微信的圈子里

比特币的确是目前最成功的去中心化现象。但相比用户数量,节点和矿机数量远远地少,个人节点和小矿机同样没什么意义,这还是一个准同步网络的前提下。健壮的去中心化系统一定会广泛存在局部中心化,否则无法产生抗扰能力。

我觉得我们能容忍比特币出现局部中心化的关键在于必要时全世界的用户可以参与进网络对抗大节点。outbox model 也是为了必要时所有用户可以运行自己的节点。如果继续使用以前的策略,我们没有退路,你运行自己的节点也没有人能找到你。推广 outbox model 不代表每个人都要运行自己的节点,我们依然可以继续使用那几个大节点

这种系统的个体不具备全局视野,只有博弈行为,统计行为只会按成本梯度走。非同步网络数据则有博弈权重,并不追求数据到处可达,也就是说如果有帖子始终看不到,那么这个帖子对该用户也没什么价值。我是觉得outbox为了边缘数据能被找到,引入额外开销和隐私风险,性价比低。而用户基于关注链的数据再广播是这种非同步网络的关键行为。

别介意,我习惯关注系统动力学,角度比较小众,纯发牢骚,哈哈哈。我前面还挖过很多奇怪坑,比如引用取代回复,取消赞,取消关注者数量,用ecash取代闪电,把dm改造成private timeline等一堆,下个档期我也想做个先锋实验性质的客户端,把这些牢骚坑填一填。

oxchat的朋友圈就有用dm顯示private timeline,就是僅朋友可見

是的,0xchat是用dm模拟了朋友圈。

我是期望用private timeline接收bots或者服务号发的只针对个人的帖子,和通常的public timeline平行。

outbox 确实引入了更高的开销和隐私风险,这或许也是难以推广的原因。现阶段我觉得值得尝试,说不定过段时间我又会站另一个模式上哈哈。就像你说的,各方博弈下最后在某个平衡点达成共识

完全不介意哈哈,不和你们讨论我都没意识到 outbox 的隐私问题,属于是闭门造车了

其实也没所谓,我一直都是旧机制兼容用法,读写relay都设置成相同的两三个大中继,哈哈哈

我也是用的几个大中继,然后搭配一个我本地的中继。可以保证哪天我不用这几个大中继了,也不需要费尽心思转移我的数据,大家依然可以从我的本地中继获取到我以前的数据

你的个人中继绝对是个好主意。我觉得如果能够把一定数量个人中继池化,形成众多个人中继池,对于移动端友好,个人信息主权,去中心化都是极好的。

也包括互为冗余,改善连通和延迟。

将个人中继器池化可能是个有意思的尝试,但目前使用我的个人中继代理服务的用户不是很多,不太好实验,我会往这个方向走走看

中继池的gateway可以隔离隐私并分发请求,个人可以选择存储自己或关注的数据。

很看好你的个人中继👍

想法很多,但现在精力都在 Jumble 上了,那个项目已经半年没更新了哈哈

隐私问题还好,假设一个中继通过你的 outbox 引入到我这边客户端的话,肯定是涉及你的信息时,才会去这个中继中查询。

不过,貌似我的 IP 确实被你拿到了

自动连接未知中继是个不小的隐患,尤其是IP带有你既往发的帖子作为上下文。

确实,这个问题有些棘手

正确 🙆 问题在于长连接太多了。如果真要节省流量,应该每个客户端都集成一个中继,这可以大量减少重复数据的获取。点赞、转发数量如果有更高效的获取方式,也可以减少很多流量

这难度很高吧,特别是中国还有长城防火墙

像 fiatjaf 这样的用户,使用的中继很冷门,9 个必然覆盖不到的。如果要用 outbox 又要数据完整的话,目前保守估计 50 个连接起跳。随着去中心化的趋势越来越强,所需的连接只会越来越多。这也是 fiatjaf 最近在推浏览中继而不是关注人的原因。保持关注人在 50 以内,主要是用精选中继浏览内容

outbox机制资源耗费太大,最后就只能直接浏览中继了。点对点拓扑在非同步网络上分发内容效率很低。

是的,但是如果我们目的是去中心化就意味着最终每个人都分散在不同的中继上,直接拉取关注人 feed 的时候必然是效率低下的。

对于 nostr 来说,精选中继可能是一条路,由不同品位的运营者收集并维护一个 feed,就像杂志那样。也可以用户自己在本地运行一个这样的中继,按设定的过滤器定时从世界各地拉取数据,形成自己喜欢的 feed

开销是不小,所以我不推荐使用 jumble 浏览关注人 feed。如果你关注一百多个人,大概需要发起 50 个连接。我在探索使用个人中继做聚合操作,定时拉取关注人的事件,当需要看关注人 feed 时,只需要浏览这个个人中继即可。