此为历史版本和 IPFS 入口查阅区,回到作品页
豆泥
IPFS 指纹 这是什么

作品指纹

Matters 聯邦宇宙開發小記

豆泥
·
·
我們實踐了 Matters 馬特市站台,打通了 Mastodon、Threads、g0v.social、Liker.social(停止營運了 T_T)等聯邦宇宙,這篇文章解釋幕後的開發歷程。

成功讓 Matters 支援聯邦宇宙(Fediverse)了,這應該是我在任的最新一個,也是最後一個大型更新。

聯邦宇宙是一個網路社群概念,讓每一個社群平台都可以相連在一起,不用一直搬家、重新設帳號、重新建立互動。

背後有不同的層次的技術標準,這次支援的標準是 ActivityPub,像是乳齒象(Mastodon)、廣受台灣人好評的 Threads、日系 Misskey 都在這個宇宙裡面。

意思是,只要支援 ActivityPub 標準,Matters 的文章就可以傳遞到這些宇宙(Instances)裡面。

經過實測後,目前可以在 Threads、g0v . social、mastodon . social 看到 Matters 的文章並且與使用者遙空互動了。(可惜 Liker . social 幾個月前停止營運了,不然就實現了整個生態系的互通互聯,且不只是 web3 的層面)


事實上,Matters 之前的貢獻者,已經打好了地基。Guo 等人在 ActivityPub 協定的上層,想要讓抗審查的長文,能夠支援到聯邦宇宙裡面,這些具體貢獻可以在 IPNS-Generator 的儲存庫上看到。

我原先天真的以為,基於 Guo 的貢獻,我只要營運一個宇宙(Instances),自然可以完成不同社群平台的互通。結果往下一做,四個月就過去了。

對我而言這個開發難度比備份、抗審查、平台內容治理、安全升級...等等的作業都還要高,因為牽涉到不同的後端結構。這對我個人而言,是一項很深刻的修煉。

從結構來看,很像是在一個社群平台(Matters)又蓋了一個社群平台(Matters Fediverse)。從結果來看,很像是在集合住宅裡蓋了一個收發室,每個使用者都可以申裝郵箱,訊息就可以自動化的來來去去,到其他集合住宅。


Matters 的 IPNS Generator 是在 2020 就開始開發,當時我甚至還沒成為 Matters 用戶,原本的目的是強化抗審查的文章的公開索引,讓備援系統——星際檔案系統(IPFS)可以有更好的索引,而且更重要的是,不必經由 Matters 站台。

這是建立在內容韌性上,很前瞻的精神。而在 2023 年,IPNS Generator 又升級到支援了 ActivityPub 的輸出層,技術上實現了可以讓 Mastodon 找到 Matters 文章。


這也是為何我誤以為馬上支援聯邦宇宙會很簡單,結果實作下去發現中間空缺的拼圖還很多。不過好在有 AI Agent,雖然只斷斷續續開發了四個月才真正上線,不過這在過去,可能是好一個團隊的全職開發者才能完成的工作量。

後續我完成的拼圖有,

Matters 站台後端的改造
        ↓
SQS 讓訊息可以排隊
        ↓
Lambda 用輕量路徑匯出,不給主站台造成壓力
        ↓
IPNS Generator 產生標準化信封
        ↓
gateway-core 處理郵務
        ↓
Cloudflare Worker 昭告 matters.town 聯邦位址
        ↓
Threads、Mastodon、Misskey 接入其他宇宙

關於啟用聯邦宇宙的規劃,我採用了選擇加入(Opt-in)的機制,也就是使用者要打開按鈕,才會自動被投遞出去,只要啟用之後,基本上就可以在 Threads、Mastodon 之類的宇宙看到 Matters 帳號了。

在此之後,只要發文,其他宇宙的追蹤者就會看到,甚至能夠按讚、互動。(不過 Threads 官方沒有完整打開雙向互動的功能)


不過在實作的過程中,也發生了一大堆相容性問題,比如 Misskey 可以支援雙向互動(不知道為何 Misskey 的相容性最好),g0v social 也可以,但是 Threads 與 Mastodon 怎麼打,都沒有回應。

因此花了蠻多時間去客製化這些大的宇宙的相容規則。

也是因為真的實作了一整輪,才知道原來支援聯邦宇宙協定,所花去的開發成本會隨著支援的站台數量而線性增加。不是一鍵支援就能搞定的。

這與原本標準化協定的初衷可能已經有些悖離,而聯邦宇宙的整體生態系也還在苦撐,旁邊也要高速發展的 Bluesky(以及歐系 W),還有快要餓死的 web3 社交生態系(Farcaster、Lens 等等系統)。

這樣形容或許挺貼切的,我覺得這三個生態系的競逐,分別是汽油車、電動車與加氫車。不要用現在這個時代去想,在 二十世紀初,加氫車與電動車的發展,甚至比汽油車還樂觀。

電動車的一體化集成簡單,所以高速發展,但生態系難以擴展。汽油車容易用低廉的價格更換、升級各種組件,不過標準化的過程是痛苦且低效的,而加氫車就...。


不過在使用者體驗上多說兩句,我認為現在支援了聯邦宇宙,整個使用體驗還是挺糟的,有兩個主要原因,一個在我,一個在其他宇宙。

Matters 本來就不是一個主打社交聚合、高頻互動的社群,所以疊床架屋支援聯邦宇宙後,我大概率可以想像真的啟用、天天使用的人數並不會很多。而且整個產品體驗有待加強,即使刻意的不打擾原本的寫字與互動,但要如何好好的將外來的資訊與本站既有的互動整合,仍然需要費一番苦心。

另外就是整個聯邦宇宙,與外站的互動,我覺得基本上都沒有很滑順。Threads 需要額外到一個聯邦宇宙的標籤頁才能看到,主頁不會跳出來。Mastodon 的模式讓我進入一個碎片化的焦慮狀態,每一個宇宙我都創造了自己的帳號(結果現在 Matters 又多一個),到現在我都不太知道要用哪一個作為主力帳號。


即便如此,這段旅程我仍然獲得許多能力,也交到了許多朋友。

最重要的能力大概就是,如何在既有的系統架構下,大幅度的節省了聯邦宇宙伺服器成本,包含使用開源套件、降低昂貴伺服器的使用、以及降低無效資料的交換...等等,彷彿弄了個有功能的藤壺,依附在郵輪上面。

另外也認識了許多聯邦宇宙伺服器的開發者與經營者,我想大家面臨的困境與機遇是相似的,Mastodon 的 Felix 給我的鼓勵非常巨大。剛剛說的各種能源車之間的競爭,別忘了後面還有更大的社群平台,以圍牆花園之姿,佔據了最多的注意力(以及盈餘)。

總之這一大段里程碑式的開發吿一段落了,希望馬特市民會喜歡,試試看。如有機會,也一起參與貢獻吧!


打通文章的聯邦宇宙是第一步。接下來是讓深度內容進入更廣闊的公共討論。

更多詳細資料,可以在這邊看到:fediverse-gateway.ma...


CC BY-NC-ND 4.0 授权