集中式Web的幾種替代方案比較
點對點(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方案,以及 "型別",如 "訊息"、"
相關文章
- 幾種排序的比較排序
- Airflow替代方案:Prefect和Dagster比較AI
- 幾種中文字型的比較
- 【MyBatis】幾種批量插入效率的比較MyBatis
- 分割陣列的幾種方法比較陣列
- ETL 幾種工具的比較(Kettle,Talend,Informatica )ORM
- Java幾種常用JSON庫效能比較JavaJSON
- 幾種分散式呼叫鏈監控元件的實踐與比較(二)比較分散式元件
- 幾種非易失性儲存器的比較
- Web前端主題切換的幾種方案Web前端
- Java中的幾種Kafka客戶端比較介紹JavaKafka客戶端
- Cesium 比較常用的幾個方法
- 不同解決方案的比較
- 一種巧妙的drawable.xml替代方案XML
- 實現固定寬高比盒子的幾種方案的總結
- 2023版:深度比較幾種.NET Excel匯出庫的效能差異Excel
- 幾個比較火的BI分析工具
- HTTP協議幾個版本的比較HTTP協議
- Java中陣列判斷元素存在幾種方式比較詳解Java陣列
- 四種在Javascript比較物件的方法JavaScript物件
- 分散式中幾種服務註冊與發現元件的原理與比較分散式元件
- Web3架構與傳統Web的比較 - thenewstackWeb架構
- Python、JavaScript和Rust的Web效能比較 - AlexPythonJavaScriptRustWeb
- 幾款流行的HTML5 UI 框架比較HTMLUI框架
- 儲存結構的種類與比較
- 幾種磁碟iops對比
- 用於持續整合的13種Jenkins替代方案 -DEVJenkinsdev
- webpack打包優化的幾種方案Web優化
- 77種資料建模工具比較
- 推薦幾款比較實用的工具,網站網站
- JS嵌入html的方式及各種方式的比較JSHTML
- 幾款前端IDE工具:Sublime、Atom、VSCode比較前端IDEVSCode
- 在微服務架構中實施分散式事務鎖的幾個方案比較 - Prasanth Gullapalli微服務架構分散式
- [譯] JSX 的替代方案JS
- 實現saas多租戶方案比較
- 增量採集中的幾種去重方案
- 高精度定位的幾種解決方案
- js 非同步的幾種解決方案JS非同步