V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SuperMild
V2EX  ›  分享创造

一个分布式、免费、免备案、易用、可订阅的消息分享方案

  •  1
     
  •   SuperMild ·
    ahui2016 · 2021-07-28 11:41:39 +08:00 · 3691 次点击
    这是一个创建于 1243 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大概两个月前,在 V 站看到这样一篇文章

    RSS3:我们仍未知道那天所看见的花的名字 https://www.v2ex.com/t/781981

    其中提出了回归互联网精神的愿景。确实,现在我们可以看到互联网有被割裂、变得封闭的迹象。我从前几年开始也断断续续思考如何为开放的互联网贡献一点微薄的力量。

    我认为,RSS 、独立博客、长毛象等等,可以让普通人游离在各大平台之外发布消息的方案就属于“开放互联网”的一部分。而我需要做的,就是思考如何提供类似(并且在某些方面有优势)的方案,给大家提供多一个选择。

    最终,做出了一个叫做 iPelago 群岛 的东西,完全没有中心(不像长毛象那样多中心),搭建难度比搭独立博客更容易,原理及标准比 RSS 简单得多,消耗资源极少,适应性很强(只要支持公开访问 json 文件或 js 文件就行)。

    具体请看 https://github.com/ahui2016/ipelagohttps://ipelago.org

    暂时虽然把这个东西做出来了,但目前没有用户、没有内容,也不知道该如何宣传,对于普通用户来说这套东西用起来也有点麻烦,因此可以预见发展非常困难、非常缓慢。

    但我最最想做的只是给普通人提供多一个类似于独立博客那样不受中心平台管控的个人消息发布方案,如果真的没有人使用,我也理解,虽然无奈但没有遗憾(如果不做这个事情才会遗憾,做了就不遗憾了)。

    第 1 条附言  ·  2021-07-28 15:22:50 +08:00

    这个项目最想实现的几个特点是:

    • 免费
    • 任何人都可以发言
    • 可批量订阅
    • 没有管理员,没有禁言,没有封号
    • 易用(目前就这点没有做好,但其实也不算难用,最大的问题是不符合主流使用习惯)
    32 条回复    2021-07-30 17:12:25 +08:00
    shpkng
        1
    shpkng  
       2021-07-28 11:46:35 +08:00
    SuperMild
        2
    SuperMild  
    OP
       2021-07-28 11:48:56 +08:00
    @shpkng 多谢提醒,不知道为啥挂了… 已恢复
    madlifer
        3
    madlifer  
       2021-07-28 11:54:22 +08:00
    Demo 有吗? 比如你自己建的一个岛
    SuperMild
        4
    SuperMild  
    OP
       2021-07-28 12:46:30 +08:00
    @madlifer 这个其实与 RSS 非常类似,需要用客户端订阅,可订阅的小岛地址列表在这里 https://www.ipelago.org/islands
    myqoo
        5
    myqoo  
       2021-07-28 13:07:34 +08:00
    还以为是网页在线的,结果要安装程序,感觉推广不起来。好歹 chrome 插件也好,安装 exe 大部分人接受不了吧。
    cicaday
        6
    cicaday  
       2021-07-28 13:09:14 +08:00 via Android
    从传播和理解角度看文档,建议有例子,视频或者图片来辅助概念讲解。至少目前的文档不足以让我理解和产生兴趣。
    SuperMild
        7
    SuperMild  
    OP
       2021-07-28 13:19:02 +08:00
    @myqoo 这个我一时半会儿想不到解决办法,因为希望彻底没有任何中心,这就很难提供网页在线版。chrome 插件也许可以,我研究一下。
    SuperMild
        8
    SuperMild  
    OP
       2021-07-28 13:27:49 +08:00
    @cicaday 把它看作一种 RSS 就很好理解了,发布者提供一个可公开访问的文件,订阅者通过向客户端添加网址来订阅。从订阅者的角度看,与订阅 RSS 几乎一样。

    从发布者的角度看,比发布 RSS 更容易一些(如果不考虑 RSS 有很多现成插件的话)。

    从开发者的角度看,开发一个 ipelago 客户端应该也比较简单,因为只需要处理一个结构极度简单的 json 文件。
    roiding
        9
    roiding  
       2021-07-28 14:02:37 +08:00
    说实话 我没有闹明白这个东西出来能取代什么? 这不是简单的访问了下 json 文件嘛,订阅还是要依赖自己去订阅啊
    wms
        10
    wms  
       2021-07-28 14:15:24 +08:00
    我最近也准备建一个这样的平台,目标一样,思路不一样
    lumotian
        11
    lumotian  
       2021-07-28 14:23:54 +08:00
    没看懂怎么去中心的,其实就和建了一个个人站一样吗?
    SuperMild
        12
    SuperMild  
    OP
       2021-07-28 14:42:15 +08:00
    @roiding 不是取代,RSS 、独立博客、长毛象各有各的好处,iPelago 也只是提供多一个选择。在技术上可以非常轻松做到自动订阅,但我不希望形成任何形式的中心,所以才不得不让用户自行订阅。

    @lumotian 对,与个人网站一样,独立的个人网站、独立博客本来就是最去中心的形式。但搭网站难度稍大一些,而且网站本身没有 “订阅” 的特性。而通过 iPelago 发布消息,去中心化的效果与独立网站一样,但难度低,可订阅,消耗资源极少。
    woctordho
        13
    woctordho  
       2021-07-28 14:42:47 +08:00 via Android
    感觉还不如做个对普通用户更友好的 RSS 阅读器
    SuperMild
        14
    SuperMild  
    OP
       2021-07-28 14:45:40 +08:00
    @wms 非常期待。

    不管哪个平台、哪个网站,我都看到不少人抱怨被禁言、被封号,因此才做了这个东西,告诉大家这里有不禁言、不封号的发布消息方法,至少多一个选择。
    SuperMild
        15
    SuperMild  
    OP
       2021-07-28 14:49:42 +08:00
    @woctordho 不冲突的,RSS 阅读器已经有很多人去做了,优秀的阅读器也有啊。

    RSS 更注重订阅多一点,在发布消息方面还是比较复杂的。从发言者的角度看,iPelago 的适应性比 RSS 更强一点,只要可以输出 json 文件或 js 文件就可以发布消息。
    6IbA2bj5ip3tK49j
        16
    6IbA2bj5ip3tK49j  
       2021-07-28 14:50:45 +08:00
    这一堆概念把我给整不会了。

    把官网文档看完,就写个 json 放 cdn/github 上……
    建议把 json 换成 markdown,用户就能直接用自己喜欢的编辑器写东西了。
    再建议把 markdown 换成 html,这样阅读者也不需要专门的客户端了。
    就成功发明了一个 20 年前流行的静态个人博客空间。
    lumotian
        17
    lumotian  
       2021-07-28 14:51:05 +08:00
    这种做社区的有网络效应,建议把 RSSHub 先接进来,慢慢再找找定位
    madlifer
        18
    madlifer  
       2021-07-28 14:54:26 +08:00
    用户发布博文后 是先上传到 ipelago 上储存起来 对吧?

    还是说 用户发布博文后,实际上是开了一个 http 服务器,生成了一个 ipelago 的订阅链接。

    订阅者是从 博主的机器上同步的博文 还是从 ipelago 上同步的?
    SuperMild
        19
    SuperMild  
    OP
       2021-07-28 15:01:25 +08:00
    @xgfan 考虑到读者范围包括完全不懂编程技术的人,所以我无法直接简单地使用 json 、cdn/github 、markdown 这些单词。

    不能用 markdown 和 html,因为我希望做到四点:1.可订阅 2.最大限度地方便编程开发 3.尽可能利用各种免费服务 4.最大限度节省资源

    而使用 markdown 和 html 是违背这四个优点的。
    SuperMild
        20
    SuperMild  
    OP
       2021-07-28 15:08:32 +08:00
    @madlifer 用户发布的是一个 json 文件,需要手动上传到 github 之类的地方(目前我提供了六个平台的上传教程),因此博主不需要自己拥有服务器。

    订阅者从 ipelago.org 或其他渠道获取小岛地址列表(就是一堆网址),然后 ipelago 客户端可以从这些网址直接拉取最新消息(博文)。

    简单来说,就是和 RSS 几乎一样的玩法。
    SuperMild
        21
    SuperMild  
    OP
       2021-07-28 15:11:12 +08:00
    @lumotian 你提醒了我,可以做一个 RSS to iPelago 转换器,这个要是做出来,也许可以直接订阅 RSS 源。
    madlifer
        22
    madlifer  
       2021-07-28 15:58:20 +08:00
    来个核心问题:文章评论互动怎么实现?
    SuperMild
        23
    SuperMild  
    OP
       2021-07-28 16:27:02 +08:00
    @madlifer 我考虑过互动功能,比如,假设我的岛名字为 abc,别人发言时直接 @abc 即可。然后在客户端对包含 @abc 的消息特殊处理一下就可以了(比如专门做一个包含字符串 "@abc" 的消息的列表)。

    但目前我没有实现这个功能,主要是想到频繁互动并不适合 iPelago,而且现在网上讨论的氛围并不好,我在想也许可以削弱互动功能,因此暂时保留这个功能,没做想好具体怎么实现,等待更好的想法。
    AX5N
        24
    AX5N  
       2021-07-29 06:16:08 +08:00
    说白了,楼主搞的玩意儿就是个 json 解析器(不是 parse 那个意思),你把想说的话写在 json 里,然后随便选个地盘把这个 json 发布过来,他这个 app 就帮你把这个 json 解析渲染出来,并且还能按时更新。其实就是 rss ( rss 就是个 xml 解析器)。

    这种去中心化的东西根本就做不了社交,订阅者得一个一个作者去找,而社交平台不仅是一大片一大片推送给你,而且还有热度、推荐算法。禁言、封号都是社交才有的东西,这种没法社交的东西从根本上就和禁言、封号无缘,更别提解决禁言、封号的问题了。
    SuperMild
        25
    SuperMild  
    OP
       2021-07-29 08:27:09 +08:00
    @AX5N 是否社交倒不是重点,比如独立博客,也不是社交平台,很多人写博客,也知道大概率不会有很多读者。而 ipelago 在这方面已经比独立博客有所增强,可以批量订阅。另外,其实我还不希望社交属性太强,至少在早期希望若化社交特性。我主要是想提供多一个发布消息的渠道的选择。
    wdssmq
        26
    wdssmq  
       2021-07-29 18:02:49 +08:00
    简单说就是个「微博」形式的 RSS ??客户端我儿完全跑不起来。
    然后「 Secure Scuttlebutt 」了解一下。。
    SuperMild
        27
    SuperMild  
    OP
       2021-07-29 22:23:46 +08:00
    @wdssmq 谢谢反馈!已修复。

    你这个形容很好,简单来说就是个极度简化版的 RSS 。我去看了 Secure Scuttlebutt,那个对用户的要求更高,需要服务器,我选择 json 文件的原因是目前有很多免费服务商可以利用起来,用户不需要服务器。

    而对于原本已经有服务器或网站的人来说,只要把 json 文件往 public 文件夹一丢就可以了,比 Secure Scuttlebutt 简单很多。
    Yohann97
        28
    Yohann97  
       2021-07-30 09:38:21 +08:00
    网页版的还要弄个服务器,做个浏览器插件用户体验可能更好一些
    SuperMild
        29
    SuperMild  
    OP
       2021-07-30 09:41:44 +08:00
    @Yohann97 确实,我正在想怎么弄,打算还是要改进一下。
    wdssmq
        30
    wdssmq  
       2021-07-30 12:11:14 +08:00
    @SuperMild #27 对于普通用户,并不需要服务器,,只是 Secure Scuttlebutt 专门出了服务器版作为 p2p 的补充。。也有专门的手机客户端:Manyverse

    这东西的真正缺陷是「同一身份只能单一设备登录」+「同步慢」+「内容分叉」。

    \--------

    实际体验后修改下我 26 楼的回复:相当于用录音机录下自己的发言,然后通过土电话给别人听,还是单向的,要实现「交流」得拉两条;

    以下简称楼主的设计为「 i 」设计;

    \-----

    - 依托一个「 http(s) 地址」对外发布信息;
    - 且不说制作和维护这样一个地址本身就有一定难度了;
    - 客户端的发布功能就是个「 JSON 生成器」,虽然可以走 API 接入各种 git 或 oss,然而 [不接受代码贡献] ;
    - 「自己能用就行」和「让别人也能用上」概念是不一样的,为了去中心而去中心只会变成前者;
    - 各种意义只能由程序员来成为核心用户的产品,然而已经成为程序员的人并没有特别的理由用它,并且其宣传路线还是不需要成为程序员就能简单上手;
    - 当地址突发性发生改变时,你没办法通知别人,或仍然要借助其他渠道,另外这种方式还有一个不利的「固有性质」;

    不管是不是程序员,对于更广泛的用户来说,这种设计相对微博类型的产品都缺少吸引力:

    - 微博类社区的重点在于,它一般都有一个「广场」,大家各自都在碎碎念。如果对别人的发言感兴趣你也可回复或者关注,,当然也可以完全当作树洞自言自语。
    - 对于「 i 」设计,用户并没有这个选择,只能以「自言自语」为前提;

    - 然而即使作为树洞,它也是公开的,你天然的知道虽然可能没什么人回复,概率上总会有人能看到自己某条言论,然后内心吐槽两句,或者有点儿其他波动然后划到下一条,因为你看到别人的发言时也是这么做的,这种「对等」感是很重要的,虽然表现上是大家都各自对其他人「无感」。
    - 另外这里的逻辑是「我看到了一条言论」进而才有「这是另一个人,另一个独立的存在」所作出的表达;
    - 对于「 i 」设计,其「固有性质」是,用户需要先「知道有一个人的存在」然后通过「 TA 提供的发布地址」进而「看到 TA 的言论」;
    - 所以,你不确定是根本没人看还是别人看到了只是不想回应,何况根本没有直接回应的设计;

    - 「社区」的「社」字,其前提就是「聚群而居」,我曾经向某个心理咨询师介绍过长毛象,然后她联想到的是带孩子出去时,某个年龄段的孩子们会「聚集在一起」,然后「各自一个人玩」。
    - 可能作为成年人的我们也有这种需要,而长毛象正好提供了;
    - 「 i 」设计感觉像是,每个孩子在自己家玩,打听到谁家也有孩子,就通过窗口拉一条土电话,这个土电话还是单向的,要实现「交流」得拉两条;

    - 「独立博客」虽然也同样需要先让别人知道自己存在,但是其优点足以弥补;
    - 可以依靠搜索引擎收录;
    - 「浏览器」就是「客户端」;
    - 形式上相当于让人来看作品展览,觉得好看可以再来,或者 RSS 订阅;
    - 类似的流程,我为什么要换到一个专门的客户端上,每条信息还限制 1 KB,也就是看你的短信息碎碎念;

    \------

    你想单纯看我的碎碎念又不想注册嘟特的话可以用 RSS 订阅下边地址:

    https://wxw.moe/@wdssmq.rss

    ↑ 反正差不多意思。。RSS 更通用,客户端选择更多,甚至浏览器插件也有。好像 Chrome 现在又原生支持了;

    作为接受方,你也不需要考虑我是不是通过一个中心化平台发布的;这个地址什么时候挂随缘;
    SuperMild
        31
    SuperMild  
    OP
       2021-07-30 14:57:11 +08:00
    @wdssmq 非常感谢如此详细的评论!

    0. 关于交流: 土电话的比喻不太恰当, 因为 "i 设计" 不强调交流. 说是土电台发射站更贴切一点, 每个岛主对外广播, 而订阅者可以通过批量订阅来收听各个电台的广播.

    1. 维护小岛地址:不需要维护。因为 "i 设计" 不强调固定身份, 每个岛都是临时岛, 一般情况下不需要知道岛主是谁. 只有当岛主提供了真实 email 和博客地址等联系方式, 并且订阅者对该岛主特别感兴趣时, 身份才重要, 而这种情况下就可以通过 email 和博客等渠道来提供新地址了.

    2. 虽然不接受代码贡献, 但并不妨碍贡献, 想做改进的 fork 过去直接改就可以了, 与其等待我合并代码 (有时因为理念不一样还需要花时间讨论), 不如直接发布新版更方便.

    2a. 对于没有服务器的人来说, 客户端的发布功能也只能是个 JSON 生成器了 (我想不到还可以怎样改进). 另外对于有服务器的用户, 我打算再做一个服务器版的客户端.

    3. 单中心、多中心、彻底去中心,这几种选择各有利弊,Mastodon 选择了多中心, 是一个比较折中的选择, 兼顾了分散性和易用性. 而如果选择彻底去中心, 很多事情我想为用户做都做不到, 确实存在难用、操作流程复杂的问题。

    但我不能选择多中心(多节点)啊,你想想,首先已经有多中心的产品了,我自问也没能力在这方面做出更优秀的产品。其次,多中心的路也不好走,我选择了无中心,你看到了无中心的各种缺点,但如果我选择多中心,你又会看到多中心的大难题:比如每个节点都必然需要高成本( CPU 资源、带宽流量等),每个节点还需要承担政策风险,被黑客攻击的风险,甚至可能还需要日常管理员(比如 Mastodon 的每个单例都需要管理员)。

    4. 非程序员用户:iPelago 最大的目的、最大的愿望是给非程序员提供一个可以独立发声的方法。

    对于非程序员来说,"一个可以独立发声的方法",最简单的应该就是静态博客了吧。而在 iPelago 建岛比搭一个静态博客更容易啊。并且,iPelago 还提供了批量订阅功能,不仅搭建容易,而且可以加入小岛列表方便别人订阅。

    因此,理论上与静态博客相比,iPelago 还是有优点的(当然,静态博客也有别的优点)。

    5. 对于非程序员来说,博客与 RSS 有阅读方面的优势,比如你提到的不需要客户端,可以通过搜索引擎发现博客,有现成的 RSS 阅读器等等。

    但是发言难度呢?

    从阅读体验的角度, iPelago 确实比博客与 RSS 差,但我最想做的是让非程序员可以更容易独立发言.

    现在, iPelago 提供了一个独立发言的方法, 而这个方法的整个操作流程确实不需要任何技术知识, 并且难度比搭建静态博客更低, 后续还可以转化成静态博客.

    我也希望有更好的 "发言" 方案, 但我想不出来.

    我无法做一个完美的工具, 只能有所取舍, 我自己认为最重要的特性是: ①发言容易 ②可订阅 ③编程开发难度低这三点。

    另外就是希望抛砖引玉,希望有程序员在看到 iPelago 的不足之后,有兴趣去做出更优秀的产品出来。
    wdssmq
        32
    wdssmq  
       2021-07-30 17:12:25 +08:00
    1 、完备的自主可控的站点,独立博客(含静态博客)之类的;

    2 、别人提供的平台,注册就能用。。会发朋友圈就会用; ← 论容易你真打不过,而不是跟上边的比易用性,然而又没有其他真香的要点。。

    一个五公斤的哑铃和一个一公斤的哑铃,然后折中出个 3.7 的。。

    如果一个人觉得五公斤太重就放弃了,那么说明这样的人根本不需要更重的,一公斤的就足够了。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   880 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:59 · PVG 03:59 · LAX 11:59 · JFK 14:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.