圖片來源: Bill Gracey, Flickr, CC BY-NC-ND 2.0

RTHK 影片備份:無需硬盤,但要共識

要做到無大台內容備份,首要的不是硬盤,而是共識。

正如很多中文諺語,「人多好辦事」往往是錯的,至少,要先有共識,人多才會好辦事。無大台,有共識;區塊鏈研究的不是無大台,而是如何取得共識。

群體獲取共識靠的是技術人常掛在嘴邊的「protocol」,但就算不懂技術的也會經常接觸到,比如網址前面的 http 就是互聯網的 protocol。

要理解何謂 protocol,不必技術達人,以下以日常生活舉例。英美澳加等地的大型超市往往附設停車場,市民購買大量物品,把購物車推到泊在停車塲的汽車落貨,部分缺乏公德的,留下購物車就離開。為解決這個情況,有些購物車需投進硬幣才能解鎖取出,原地歸還後,硬幣自動退回。這個簡單的機制有效解決了購物車一去不回的問題,因為總有人把散落停車場的購物車返還,從而賺取硬幣。

投入硬幣解鎖購物車、使用後原處歸還取回硬幣,就是一套界定行事準則的「protocol」;而硬幣比如 25 便士,則提供經濟誘因。

IPFS 逐漸成為共識

回到無大台內容備份。民間越來越多人,漸漸學會使用 IPFS 備份。IPFS 可理解為無大台硬盤,使用 P2P(peer-to-peer)方式傳送,跟曾經流行一時的 BitTorrent 原理相若,但改善了各種細節。三年前創立的 Matters.news,正是使用了 IPFS 儲存文件。試想像,假如蘋果日報用的也是 IPFS,26 年珍貴內容的備份行動,將會完全不同。

IPFS 的最大顛覆是「文件名 = 存取地址 = 內容指紋」,要理解除了學習,更需要 unlearn。首先,內容指紋是數學計算而來,細節不重要,只需要知道它就像人類 DNA 與指紋,一筆內容對應一個指紋,只要是同一筆內容,必然會產生同一指紋;反之,即使內容改了一個標點,一個像素,指紋也會變得面目全非。

然後,請 unlearn「文件名由創建人或者備份者自取」,這個 PC 年代的理解。在 IPFS 檔案系統中,內容指紋就是文件名(請想像火星人不是出生後取名,而是直接用指紋稱呼對方),同時也是系統的存取地址。嫌以上抽象,用例子再說一遍:你拍了一張照片,以 IPFS 存放,系統算出內容指紋 QmTT58Y4,而 QmTT58Y4 也是文件名,當你或其他人讀取這個文件,只要輸入 QmTT58Y4,系統會自動從整個 P2P 網絡中最接近的 peer 讀取該照片。

在 P2P 系統中,讀取文件再不是去某台特定的伺服器,而是每一個參與者,同時既下載,也上傳,越多人讀取,下載速度反而越快;反之越少人讀取就越慢,在最極端但完全有可能的情況,整個網絡都再沒有人存放該文件,它就會消失;就像我最喜歡的電影 Coco,當全世界再沒有人記念某位逝者,他就會二度死亡,靈魂灰飛煙滅。

  • IPFS desktop

齊來備份 RTHK 影片

當落實了 IPFS 作為備份方式,接下來需要的共識是分工,即誰負責pin(長期保存)哪個文件,避免丟失。

有匿名好人(祝一世平安)備份和整理了 RTHK 的 3 千多段影片在 IPFS,容量共 530 G。要一個人 pin 著 530 G 內容不但需要成本,更大的問題是他又變成了另一個中心。但「人多好辦事」,只要每個參與者略盡綿力,長期保存 530 G 內容毫無壓力。可是,怎樣避免大家都去 pin 721 誰主真相,而年代久遠的內容乏人問津?

最簡單的「protocol」是,把內容分成 365 組,假設影片共 3650 段,1 月 1 日出生的負責 pin 影片 #1-10,1 月 2 日的負責 #11-20,如此類推(2 月 29 日出生的,不好意思了),就能有效分工,以數學機率盡量確保所有影片都有人備份。

匿名好人建議的分工方式類似,只是以電腦生成而不是出生日期作隨機數,使用提供 1 G 免費存儲的 pinata 服務去 pin 相應影片。以下引述他的指引:

1)到 pinata.cloud 註冊一個免費帳號

2)到 random.org,從 1-3327 之間抽 3 個隨機數字

3)到 pinata -> “upload” -> “CID”,在 “IPFS CID to Pin” 一欄,輸入三個隨機數字所指的檔案 hash

例如,你抽到 520, 131, 4 三組數字,便請把第 #502, #131, #4 節目的 3 組 hash 用 “IPFS CID to PIN” 方式上傳。

請大家自行評估版權、道德的考量,齊來參與無大台——有共識——備份 RTHK 影片行動。無大台內容備份無需硬盤,但求共識,只需三步,不用技術達人,懂上網,願意弄髒雙手即能幫忙,所謂「電腦白痴」,並不是個理由。世上無白痴,只怕有心人。


編輯推介

    發表意見