集中式Web的幾種替代方案比較

banq發表於2022-11-08

點對點(P2P)協議使建立分散的應用程式更容易,無需任何額外的伺服器或網路基礎設施就可以工作。與集中式平臺相比,它們提供了更多的隱私和彈性,並減少了建立使人們能夠共享資料的應用程式的障礙。然而,有幾個可供選擇,要弄清楚哪一個適合你的用例,可能是令人生畏的。

這篇文章比較了幾種點對點協議,看看它們是如何工作的,以及在選擇使用何種協議時需要考慮的權衡因素。
我們將特別關注BitTorrent、星際檔案系統(IPFS)、安全互傳(SSB)和Hypercore,因為它們已經存在了一段時間,並且有一些相似之處,使它們易於比較。我們將探討每個協議如何處理內容、連結、資料模型、對等的可發現性、安全性、效能、實施和備份。

這篇文章針對的是想要使用這些協議的人,他們對點對點系統的工作方式已經有了基本瞭解。如果你看到一個新的術語,請點選連結以進一步閱讀或線上搜尋。

BitTorrent
BitTorrent與網際網路盜版有著密切的聯絡,像海盜灣這樣的專案被用來上傳受版權保護的內容的非法複製,以繞過DRM或無法訪問等限制。然而,BitTorrent經常被用來分發資料集,如Linux ISO影像、科學資料和其他合法的資料共享用例。它也被用於像PeerTube這樣的應用,它允許獨立的內容創作者分享觀看影片的頻寬成本。BitTorrent還被網際網路檔案館等歸檔團體使用,以分發作為我們數字歷史的內容檔案。

由於BitTorrent已經存在了很長時間,所以它是眾所周知的,有很多內容可以探索。

最終成績。A

星際檔案系統(IPFS)
IPFS在區塊鏈社群中一直在建立嗡嗡聲,它作為一個去中心化的檔案儲存替代中心檔案伺服器,用於非可替換代幣(NFT)和各種位的網路內容,如COMPOST。其高水平的API也被用於WebRecorder等工具,使其更容易歸檔內容並儲存在不可變的記錄中,同時儘可能地重複檔案內容。

最終成績:B

Hypercore
儘管Hypercore在Beaker瀏覽器中釋出了很多內容,但現在很多內容已經與Hypercore的新版本不相容了。除此之外,還有一些建立在Hypercore低層位之上的應用,如Mapeo或Cabal,在特定的群體中分享內容。

最終成績。D

SSB
SSB上的大多數內容都被鎖在人們的社交圖譜中,只有當你被引入這些網路時才能訪問;例如,透過加入Manyverse。然而,也有一些公共觀眾提供了對人們選擇公開的內容的一瞥。


連結:小而重要的基礎設施
人們在與P2P協議互動時,首先看到的是資料如何被連結到它們。大多數人在使用這些協議從點對點網路載入內容時,可能不會過多地考慮連結的實際含義。但連結是需要考慮的,因為連結結構可以開始告訴你協議的不同工作方式,以及如何使用它們的一些限制。這裡的大多數協議都在IANA註冊了URI方案,這為與不同的應用整合提供了直接的途徑,而不必擔心衝突。

連結 - BitTorrent
BitTorrent使用了使用magnet.URI方案的連結。URI方案,指定一個屬性,連結到給定Torrent的urn:btih(BitTorrent InfoHash)。其他幾個內容網路也使用該標準,如Kazaa和eDonkey,它們是流行的檔案共享網路,但現在已經不那麼活躍了。連結格式可以包含額外的資訊,如用於發現其他對等人的資料和後設資料的跟蹤伺服器;這可以讓你知道一個山洪是否是 "私有的",而不需要下載山洪本身。有一點需要注意的是,磁力連結是URI,它可以識別洪流,但不適合用作瀏覽器的URL,因為它們沒有瀏覽器可以用作 "原點 "的 "主機名 "屬性,無法與cookie和許可權等東西聯絡起來。同樣,URI也不能用於在一個特定的洪流中的檔案之間進行導航。為了解決使用URI的一些缺點,已經有一些關於標準化bittorrent:// URL格式的討論,它可以更好地與瀏覽器整合,並連結到特定的資料,而不是整個洪流。

最終成績。C

連結 - IPFS
IPFS對連結有幾種方法。他們主要使用內容識別符號,又稱CIDs,有兩種方法將它們變成連結。/ipfs/{CID}/風格的URLs,在IPFS閘道器中可以很容易地轉換為路徑,最初相當普遍。這些反映了底層的Libp2p多地址格式,並依賴於帶有 "型別 "字首的路徑。

最近,IPFS一直在使用ipfs://{CID}的URL。URLs,這些URLs在CID的編碼上有一些成長的煩惱。起初,IPFS使用大小寫敏感的CIDv0規範,基於Base58比特幣編碼;但這導致了在瀏覽器中載入IPFS URL的問題,因為URL的主機名部分是不分大小寫的,在瀏覽器中解析時通常會被轉換為小寫。為了緩解這個問題,IPFS開始遷移到CIDv1,它預設為base32編碼,使用所有小寫字元。當人們試圖使用舊工具中預設的CIDv0風格的連結時,仍然有一些成長的痛苦,所以如果你的網頁有一個以Qm開頭的URL,考慮用CID檢查器更新它。除了IPFS連結,還有IPNS(InterPlanetary Name System)連結,可以利用公鑰或DNS(域名伺服器)名稱代替CID,如ipns://{公鑰或DNS}/。DNS功能來自於DNSLink標準。

最終成績。A

連結 - Hypercore
Hypercore的URL標準隨著時間的推移而改變,主要是由Dat CLI的創新和Paul Frazee的Beaker瀏覽器引導的。最初,生態系統使用dat://{public key}/ URLs,其中公鑰是64個十六進位制字元,代表一個32位元組的公鑰。這被擴充套件到使用dat://{public key}+{version}/語法在URL中指定一個版本,也可以在URL中指定一個DNS名稱。然後在2020年,從事Dat生態系統的Hypercore協議部分的核心團隊分離出來做他們自己的事情,URL方案被改變為使用hyper://名稱而不是dat://。這種URL格式是有問題的,因為根據URL標準,主機名部分在技術上是無效的,因為它使用了64個字元;允許的最大長度是63。幸運的是,瀏覽器和許多其他工具,如Node.js,都能愉快地消耗鑰匙的全長,但社群可能需要從十六進位制編碼切換到類似IPFS的base32編碼,以便更好地符合現有標準。

最終成績:B

連結--Secure Scuttlebutt (SSB)
Secure ScuttleButt是一個異類,因為人們通常透過像Manyverse這樣的應用程式與它的資料進行互動,這在一定程度上抽象了資料的連結。然而,在引擎蓋下,SSB有兩種連結資料的方法。Cypherlinks和SSB URI。Cypherlink規格似乎是針對SSB用來連結 "頻道"(在其他社交媒體平臺中又稱 "標籤")的hashtag語法而演變的,並增加了三種新型別。@feed連結到一個特定的人或 "feed",%message連結到一條資訊,以及&blob連結到一個blob。這種語法在P2P協議中是獨一無二的,一般只在Patchwork或Manyverse等應用中渲染Markdown時使用。最新的創新是利用ssb.URI方案的URI。URI方案,以及 "型別",如 "訊息"、"

 

相關文章