站点正在导入数据,暂时处于只读模式:这段时间里无法登录,也不能发帖或回复。

挖坑待填——github pages上的純匿名論壇

NodeBE4

有些想法,希望跟大家探討出一個大家都感興趣的方向和方案,能搞個小組更好。我技術垃圾,天馬行空的不敢想,只能想些屬於小打小鬧的點子,大家不必拘泥與我的條條框框。

第一個想法: 人民英雄紀念碑

第二個想法:

github pages上的純匿名論壇

1 概述

這個偏重於開發一個技術方案,主要目的是讓人可以serverless的一鍵fork快速建立匿名討論區,無需建站者投入任何服務器和域名資源。次要目的是可以給一些靜態網頁加入點贊等簡單互動功能,例如(觀點:git.io/JJCxS)。

2 功能

  • 匿名發帖
  • 匿名參與討論
  • 點贊:可對主題或回覆點贊
  • 排序:主題內多種排序功能,時間升降序,贊數排序,
  • 首頁排序:hackernews排序算法,發帖/更新時間升降序,回覆數量升降序
  • 賬戶生成:按首次打開網頁的時間戳生成一個隨機臨時賬戶
  • 賬戶退出:一旦關閉網頁,臨時賬戶即永久退出
  • 賬戶管理:賬戶生命期內,可以回覆發表和回覆多個主題

3 方案

  • github pages平臺 + bootstrap.css (主要是考慮這個css的流行度可以降低數據流量的特徵)
  • 數據存放在github repo的json文件
  • api用vercel實現
  • 頁面和功能均由js讀取json渲染成html,發帖和點贊由js函數post到api,api寫json文件到repo,刷新由js實現

這個方案的優點是:serverless + 全透明 + 部署api的代碼可驗證(vercel的部署驗證機器人留言) ,此外,管理者可方便的利用git的版本回退功能處理刷屏等攻擊.

2
  1. NodeBE4
    NodeBE4

    JS可以在靜態頁面上玩出很多花樣,比如我的網頁版RSS閱讀器,掛在github pages上 (某些移動設備的瀏覽器上不能正常工作)

    這類玩意兒所有的運算都是用戶自己的瀏覽器裏運行,無需服務器參與

    這類玩意兒主要是爲了將架設論壇的風險和成本降低爲0, 因爲即便是在heroku上架設nodebb,沒有什麼風險,但是也要花一兩天才能搞定各種細節,比如找免費數據庫、各種配置、部署等等,很累。

  2. thphd
    thphd2047前站长

    @NodeBE4 欢迎老朋友。纪念碑的idea我之前有在贵站看到。等我有空了会考虑实现。

    静态资源的delivery一直都不是问题,就算不一键fork,u盘拷也行嘛,微信传文件也行嘛。

    github pages算一个,想传大的可以BT,可以IPFS,还有ZeroNet等等。

    一旦涉及到动态的、需要实时性的东西,事情就复杂了,即便是数字世界对实时性要求最低的、最基础的通讯方式之一的email,想匿名收发也是很麻烦的一个事情(诸位可以试试自己搭个邮件服务器)。

    Telegram Signal都很注重安全没错,但要匿名同样也很不容易(要获得匿名的手机号码)。

    根本的问题在于,从信息论的角度,一条信息的价值取决于其及时性(太晚了大家都知道了就没有价值了,参见高频交易)和保密性(传输途中被人窃听了就没有价值了)。而从经济学角度,信道的价格与信息的价值是正相关的,因此又要保密、又要确保实时性的信道,显然应该是所有信道中 per bit 价格最贵的。

    从市场经济的角度,最贵的东西不可能让广大群众一键fork,任何社会制度下也做不到这一点(解释一下:我倾向于认为所有社会运行的本质规律是一样的,只不过有的国家比较富,所以表象不一样,于是穷国家崇拜于富国家的表象。)

    当然你问我技术上能不能实现,我直接回答你可以,但市场经济角度,不现实。比如Protonmail的做法完全是做慈善,他们开发人员的全部精力不是研究怎么加密,而是怎么过滤spam(此处指大批量的机器注册),防止自己的服务器资源被freeloader(匿名者本质上都是freeloader,无一例外)掏空。

    慈善不是不能做,学阿姨话斋,窝老如果跟瑞士一样有几百年的山地战斗传统,出点零花钱开个protonforum应该是没啥问题的。


    讲回开论坛。

    你应该知道2047最早是开在tor上的(现在也仍然在tor上可以访问)。你其实不用租任何东西——你只需要一条宽带和一台笔记本,就可以在tor上开一个网站了。nodejs直接跑,数据库直接装就是了。


    关于github pages:

    依然是上面提到的no free lunch定理,你写出让所有中国人都可以一键freeload ghpages骂领导人的软件的一天,大概也是github开启手机号验证注册的一天,兼github彻底被墙的一天。

    顺带一提,我的n个程序员朋友都证实了,目前国内节点在不翻墙的情况下,用https访问github的速度就是个悲剧。所有软件公司都在翻墙,没有人裸连github。用raw tcp跟人家 kcp bbr等等大杂烩抢上海到西雅图那点带宽是没有意义的。

    梯子要花钱,建站要花钱,你看品葱哭穷哭成啥样了。freedom is not free.

    1
  3. NodeBE4
    NodeBE4

    @thphd <#7120139> 你的邏輯和出發點我不認爲有錯,我並不是那種試圖否認現實世界規則或推翻現實世界的秩序的人,但我希望盡自己所能將理想主義者的空間拓寬一點點。讓那些白天在現實世界妥協或廝殺的人們有機會把自己的閒暇時間投入到一個跟現實世界的規則不同的理想主義世界,讓他們在這個理想主義世界裏的自由度稍微大那麼一點點。如果現實和理想可能引起歧義,可以把現實和理想分別替換爲資本和慈善。凱撒的留給凱撒,上帝的留給上帝。

    對待github,我的態度是github abuse 直到它改變規則或者被封,再去abuse gitlab。。。。回到項目,功能很容易實現,我的核心要求是無需服務器和域名,也就是不要錢。定位和目標肯定不是建立穩定和有品質的社區,而是建立一個task force性質的無服務器的4-chan,作爲消息從私有到公開的第一站.

    2
  4. 穿鞋的企鹅
    穿鞋的企鹅

    这个主意非常有意思。关于匿名讨论,其实我一直有个想法,就是一个无需注册、有时效性的中文匿名聊天室(chatroom)或聊天组。不一定需要是一个有各种帖子的论坛,只要是一个“房间”即可,且可选择公开或私密讨论。

    例如某些人需要匿名合作进行一个项目(例如制作一个文宣),其中一种方案是邮件组或某个合作平台,但是这比较适合有建立稳定关系长期合作需求的人。另一种方案是在某些实时聊天软件里(如电报)建立一个群组,但这涉及到账号注册(可能还要提供手机号)等问题。还有一种方案是在一个开放性的匿名论坛/区讨论,但这样的话内容旁观者都能看到,不适合有更高保密性需求的人。与我设想最接近的是这个网站(https://www.chatzy.com/advanced.htm),感兴趣的话可以感受下。

    所以想象一下,如果匿名网络上的人们希望就某个问题进行讨论或一起合作做某件事时,可以建立一个聊天室,选择开放或私密(私密则需要钥匙);人们可进入房间匿名参与讨论,讨论最好是加密的,项目做完了或者到期了则彻底删除所有记录。这样对于有匿名合作需求的人,会提供很大的方便和保护。

    这一设计可能面临spamming或者恶意攻击的问题,尤其是匿名就意味着难以进行责任控制。同时我也不知道技术难度如何。

    1
  5. NodeBE4
    NodeBE4

    @穿鞋的企鹅 <#7374885> 您提到的這個網站挺不錯的,好像也有matrix之類的方案,看來世界上的類似需求不小,但還是有個問題就是需要有能夠把這種模式廣播出去,也需要一個有固定活動網站/羣落的社區。陣地戰和游擊戰相輔相成。

    3
  6. libgen图书馆革命
    libgen天堂应该是图书馆的模样。一个阅读诗歌的人要比不读诗歌的人更难被战胜。创造是一种拯救。创造拯救了创造者本身。

    @穿鞋的企鹅 <#7374885> 对,有matrix之类的方案,一个有名的利用Matrix protocol的chat app实例是Riot.im,现在改成 Element.io 了,不过需要邮箱注册,可以玩玩。

    All-in-one secure chat app for teams, friends and organisations. Keeps conversations in your control, safe from data-mining and ads. Talk to everyone through the open global Matrix network, protected by proper end-to-end encryption.

    2
  7. duty-machine
    duty-machine

    github pages做论坛没意义的,会被光速橄榄,如果要翻墙访问,那就不如去reddit了。如果要免翻墙,就只能用github.com,用作讨论的难度比较大,可以把帖子写成issue的评论。但是如果要匿名的话,表单肯定是在另外的站点上的,和issue界面不好整合。

    chatroom那个,其实discord就可以匿名聊天。有时效性,全匿名等理念我是认同的,但是这个东西对于普罗大众来讲意义可能不是很大,我私下做过基于matrix的聊天室,但是基本也推不出去。我觉得论坛和聊天室在现在已经饱和了,不是很必要特别去做这些,倒是英雄那个项目可能比较有意义,主要是未来可以给人看/启蒙。

    2
  8. libgen图书馆革命
    libgen天堂应该是图书馆的模样。一个阅读诗歌的人要比不读诗歌的人更难被战胜。创造是一种拯救。创造拯救了创造者本身。

    聊天室对于小组协作帮助比较大,比如另一个帖子提到的艺术设计需求。

    平台建好了,核心还是内容。有一个自由创作的氛围,再聚集更多的创作者,成果自然而然会有的。一幅画,一篇小说,一首歌或一部视频的传播效果要好得多。

    1
  9. NodeBE4
    NodeBE4

    @duty-machine <#7669358> 这个项目的功能和方案其实应该分开。

    功能上讲,我觉得是有意义的,当然可以有一定门槛,比如必须是2047的成员才能使用。。。

    方案我想了一下,确实对于很多人来说,现成的工具已经足够多,真正有需求的人也就是几次Google的距离。

  10. 穿鞋的企鹅
    穿鞋的企鹅

    @duty-machine <#7669358>

    chatroom那个,其实discord就可以匿名聊天。有时效性,全匿名等理念我是认同的,但是这个东西对于普罗大众来讲意义可能不是很大,我私下做过基于matrix的聊天室,但是基本也推不出去。我觉得论坛和聊天室在现在已经饱和了,不是很必要特别去做这些

    Discord匿名聊天是必须要注册使用discord吗?如果需要的话我觉得还是在便捷性上差了一些。国外的匿名聊天室我能找到满足我需求的,但是没有找到有中文界面的update: libgen说的element有中文界面,但是用Tor注册不了,其他属性似乎不错。

    你说的基于matrix的聊天室很有意思,不知道这个工具是否依然存在。

    对于匿名聊天,或许确实没必要从头造轮子。将现有的工具整合推广,可能是更好的办法。

  11. 穿鞋的企鹅
    穿鞋的企鹅

    @libgen <#7570212> element网站我试了,注册的最后一步需要reCAPTCHA,我试了好几个Tor的circuit都不行,对Tor不太友好。其他看了看介绍觉得不错。

  12. duty-machine
    duty-machine

    @穿鞋的企鹅 <#7852915> discord可以不用登陆的,进去随便写个username就能加入聊天。

    matrix的话我做的相当于是一个微型的客户端,因为riot/element的太复杂,进去直接分配一个随机的账号然后就可以加入聊天。但是很初步的,就没有公开。而且我只有能力做网页版的,手机上用会很别扭也没有推送。

    matrix的服务器除了matrix.org,是可以自己搭建的,也就是如果自己建一份,域名不暴露的话是不会被墙的。这个是很好的性质,也是matrix的优势,可以潜在地抗被墙。

    1
  13. 沉默的广场
    沉默的广场

    论坛的根本属性在于公开,如果为了固定圈子交流且节约成本,则诸如matrix之类的加密群聊就可以满足需要。很显然,私密聊天室和静态页不能替代动态内容的公共论坛。

    现在域名+CF+服务器的成本很低,注册域名和租服完全可以匿名进行(通过比特币)。最坏的结果仅仅是服务器被橄榄,不会威胁到站长的安全。

    事实上由于建站的低成本,论坛最重要的是用户和人气。站长愿意付出成本、承担安全风险,这本身就是一种PoW。用户也会信任功能完整的论坛。依托于现有的大型网站建设论坛当然可行,但无法保证站长会有持续经营的动力和决心。

    4
  14. NodeBE4
    NodeBE4

    @沉默的广场 <#9754468> 这方面我有过思考,见NodeBE4的公告,对于论坛和用户而言,两个矛盾难以解决:一是权力分布,二是利益冲突。

    天下可以有免费的午餐,但不可能到处都是免费午餐。免费午餐必然是不可持续的,零星的模式。这就是为什么我建的网站都非常强调0成本,一年$120根本不是成本,每天几个小时才是高昂的成本,你按 thphd说的湾区码农100k年薪算算,站长一年投入了多少成本?

    无论是2049还是2047都是靠站长又搞技术支持又当陪聊,否则就没人气。我的论坛也有这种现象,我不说话就没有人来说话,幸好我建站并不是为了人气,对此无所谓的。

    这中间就有利益冲突,要么站长长期吃亏,要么站长会想出一套商业模式从用户身上找补回自己的成本。一旦有了商业模式,大部分用户肯定是吃亏的,当然只是说你自己知不知道罢了。

    这就是为什么我非常强调一套技术方案要对站长是0成本0风险,这样才能解决利益冲突的问题。如果你用按揭买房来比喻,那就是站长心情好可以贡献一个自己承担得起的首付,但后面不要每个月都付按揭,久病无孝子也是这个道理。

    4
  15. NodeBE4
    NodeBE4

    现在域名+CF+服务器的成本很低,注册域名和租服完全可以匿名进行(通过比特币)。

    域名注册和租服务器几乎不可能匿名进行,否则恐怖分子到处都是了。

    域名+CF+服务器的成本可不是一般的高,$5/月的服务器能扛得住几次攻击?人多了你就得为服务器升级扩容。钱是小事,你别忘了算站长付出的人工和机会成本。

    $100k年薪换成时薪就是大约 $50,这还不算上政治风险,心理压力。你算算2047这个站,站长写代码花了20天,这就是差不多自己投入$8000的劳动力成本了。人多了影响力大了,各种乱七八糟的事都会开销站长的时间,成本老高老高了。

    所以,只有那种只需要一次性投入,就能永久运行的项目方案,才能真正在免费的领域做到可持续,可长久经营。

    要做好一件事不难,本事乘以时间就等于产出的质量,但是最大的问题就是时间,不管你本事多大,你拥有的时间和乞丐流浪汉是一样多的,所以,想想

    4
  16. 穿鞋的企鹅
    穿鞋的企鹅

    @NodeBE4 <#9763445> 其实我也感觉站长这几天太辛苦,而且平时肯定还有工作家庭的事情要料理,不可能一直这个工作强度。

    有些事情网站基本架构完成了可以暂缓(例如新功能),也可以不做(例如站长不想聊天的话不用特别说话),人多了的话也可以委派管理员帮忙前台管理,倒是如何应对可能的攻击,恐怕是最费时间精力的。

  17. 沉默的广场
    沉默的广场

    已经有人把github issue用作匿名论坛了:

    https://github.com/net4people/bbs

    我致力于建serverless的网站(serverless是我自己不需要出server,而是通过第三方API完成),也就是说所有的功能,尽可能的在网页端实现,在用户的浏览器里完成功能和计算,服务器端无交互能力,只提供静态文件。这种让建站者零风险的技术架构对于信息自由言论是至关重要的。

    这完全可行,可以不用正文repo这套方案。github issue有一套非常完备的论坛功能,包括分版,搜索,推荐,封禁,按时间排序等等,而且有API文档。看上去只要做一个静态页面,然后调用他们的issue API就可以。

  18. NodeBE4
    NodeBE4

    @沉默的广场 <#102635> 网上也有你说这个方案的github pages版本,就是gitalk, 我已经在英雄网站上加了评论区了,只不过需要注册github才能参与,本来想hack一个匿名评论功能,懒。注册github其实是一个很好的筛选用户门槛,因为github只有英文界面,大多数五毛和中文troll都被挡住了。

    BTW,你提到的这个论坛讨论质量看上去非常高,可能跟github本身的英文门槛有关。

    2
  19. 沉默的广场
    沉默的广场

    @NodeBE4 <#102652> 感谢推荐,gitalk足够做一个评论区,不过离功能全面的论坛还有差距。如果要做低成本的匿名论坛,看起来还有继续开发的空间。

    事实上可以把GitHub,gitlab这类提供issue pages的网站API封装一下,作为匿名论坛的后端,实现论坛数据的多点备份。

  20. NodeBE4
    NodeBE4

    @沉默的广场 <#102657> 这个是可以的,hack一下gitalk就能实现,匿名提交内容已经有vercel方案了,我建的榜单类网站都是fork duty-machine的支持匿名的serverless api. 自己读读gitalk的代码也能很快了解它是怎么把issue读出来渲染的。不过我觉得没有太大必要,如果只是为了聊天,应该去matrix之类的,如果要搞论坛,还是有个github的英文门槛比较好。