區塊鏈下一個風口:有關IPFS的認知誤區
當人們第一次聽說星際檔案系統(IPFS)時,它通常被描述為“分散的雲”。分散的雲聽起來確實很令人興奮,但什麼是“分散的雲”呢?如果要構建分散式應用程式,你需要考慮在堆疊中使用IPFS。但是,這可能不是你認為的原因。
IPFS的主要誤區
雖然IPFS是一項令人難以置信的技術,但圍繞“分散式雲”這一短語有一種常見的誤解。對於區塊鏈,我們已經習慣於,一旦資料被放到區塊鏈上,它就會永遠存在(某種程度上)。
許多人陷入的陷阱,是認為IPFS的行為同樣相似。人們普遍認為,IPFS是一個神奇的雲,我們可以永久免費上傳我們的檔案。
不幸的是,事實並非如此。
雖然擁有一個龐大的伺服器網路,來免費儲存我們的資料是令人難以置信的,但從經濟角度考慮沒有意義。畢竟,儲存不是免費的。所有這些資料都需要儲存在某個地方,這需要花費金錢或Token。
當前儲存在IPFS上的大多數資料,實際上與現代雲端儲存非常相似。當用戶上傳檔案時,該檔案將傳送到Example Company™執行的伺服器,這些伺服器會將該資料儲存在公司擁有的IPFS節點上。
非常相似吧?在每個示例中,檔案儲存在由特定公司執行的計算機上。與現代雲基礎架構類似,一些公司可能會執行自己的IPFS基礎架構,而另一些公司可能會選擇,使用不同的公司來為它們託管IPFS上的內容。
消除這一點的關鍵是,為了使內容在IPFS網路上可用,至少有一個節點必須有目的地託管內容。
在今天的大多數情況下,公司將負責託管這些內容。這可以通過執行自己的節點,或付錢給其他人為他們託管一個節點來完成。
它有什麼不同?
如果IPFS與現代雲非常相似,我們為什麼要使用它呢?要理解這一點,我們需要了解IPFS試圖解決的基本問題,胡安·貝內特曾針對這個問題發表過精彩演講。綜上所述,IPFS允許我們基於內容是什麼,而不是內容在哪裡來進行內容檢索。
這是一種正規化轉變。
想象一下,你與辦公室裡的每個人分享一個病毒視訊。今天檢索視訊的方式從每個人點選視訊連結開始。然後,通過連結將它們帶到託管視訊的網站上,並且你的同事的每臺計算機,都必須單獨連結網站的伺服器進行視訊下載。這種情況給我們的網際網路基礎設施帶來了巨大的壓力,這就是為什麼“Reddit擁抱死亡”這樣的短語今天存在的原因。
通過IPFS,我們可以採取不同的方式。IPFS可以簡單地查詢視訊的IPFS雜湊,而不需要網站的伺服器將視訊傳送給每個試圖檢視視訊的人。可以將IPFS雜湊視為內容的ID。同樣,此雜湊基於要找的內容是什麼,而不是內容的位置。瀏覽器不會從網站的伺服器中獲取內容,而是向IPFS網路詢問,與剛剛給出的IPFS雜湊相對應的內容,而不管它儲存在何處。
按照上面的例子,如果每個人都下載完全相同的視訊,他們現在可以從辦公室內的同伴那裡檢索它。第一個下載視訊的人可以與辦公室中的其他人共享,而不是每個人通過網際網路從伺服器檢索視訊。因為同一棟樓裡的同伴,能夠比網站的伺服器更快地傳送視訊,所以你可以從他們那裡獲取視訊,而無需通過網際網路。
如何進行應用?
所有這一切都有一個問題。好訊息是,這種應用不是技術性的,而只是行業採用的一種。
由於IPFS還是一項新的技術,你的同事可能不會在他們的計算機上執行自己的IPFS節點。諸如IPFS Companion之類的瀏覽器擴充套件,允許使用者將他們的瀏覽器直接連線到IPFS,但是這種設定仍然需要一些技術專業知識。
隨著越來越多的應用程式,開始將IPFS整合到他們的技術堆疊中,並且主要瀏覽器將IPFS協議整合到瀏覽器本身中,使用者採用將很可能在幕後進行。
您開始通過JS-IPFS專案看到一些幕後工作,它允許開發人員將IPFS節點,作為基於Java的Web應用程式的一部分執行。這種整合對於開發人員採用IPFS至關重要。
這與網際網路協議HTTP的採用方式非常相似。不是通過終端使用者本身,而是通過產品來確定,如何利用HTTP向這些使用者提供產品。與HTTP類似,將來使用IPFS的大多數使用者都不會知道或不關心他們正在使用IPFS。他們只是享受更好/更穩定的網路體驗帶來的好處。
我們怎麼去那裡?
1、需要構建更多應用程式
除非他們真正被實際納入專案,否則偉大的技術進步幾乎沒有什麼影響。
能夠與IPFS很好配合的一些專案示例,如下:
具有儲存需求的,基於區塊鏈的專案
照片/檔案儲存
視訊直播
2、基礎設施需要建設
你開始看到通過各種專案,如Pinata、和一些像CloudFlare這樣的大型玩家,來構建它。隨著越來越多的IPFS節點和支援基礎的設施上線,網路將繼續變得更強大。
3、我們需要主流的瀏覽器支援
正如我上面提到的,我們需要對IPFS的本地瀏覽器支援。有了主要的瀏覽器支援,開發人員將獲得更好的體驗。開發人員使用IPFS開發應用程式會更容易,因為他們可以跨越更少的障礙。諸如JS-IPFS之類的節點包是一個很好的開始,同時瀏覽器支援通常會帶來Web標準,這些標準使開發生態系統更加穩定。
而且,有了更好的開發體驗,就會獲得更好的使用者體驗。我們沒有一夜之間到達目的地,是開發人員花了數年的時間,不斷迭代從上一代工具中學到的東西。我們今天擁有的高階開發框架,允許開發人員構建高效能、使用者喜歡的應用程式,這要歸功於這些工具所進行的大量工作。
—— 結論 ——
IPFS在分散式應用程式中變得越來越普遍,這是有充分理由的。但是,IPFS不是我們可以自由上傳所有資料的神奇雲。實際上,IPFS上的資料目前正由許多應用程式,以與集中式伺服器/資料庫範例非常相似的方式進行管理。
那麼,我們為什麼要使用IPFS呢?除了向分散式應用程式提供的好處之外,IPFS還有助於解決我們,現代Web基礎架構中一些非常現實的問題。隨著我們的社會繼續以快速增長的速度消耗資料,這些問題將需要解決。
但是,要使IPFS真正成功,我們還需要更多的東西。需要構建使用IPFS的應用程式,需要構建更好的支援基礎架構,並且我們需要採用主要的瀏覽器。這些進步不會在一夜之間發生,但它們正在發生,我對未來將會帶來什麼感到興奮。