Mykeycoin交易所:技術指南 | IPFS的關系族譜、技術架構及工作原理

發表於 2022-03-23 13:52 作者: 01區塊鏈

Mykeycoin交易所 在上一期【進階小課堂】中,我們分析了目前由HTTP協議構建的互聯網存在的諸多弊端,並介紹了IPFS的基本概念以及IPFS是如何構建下一代互聯網的,點擊下圖即可查看。今天,礦哥和大家分享下IPFS的關系族譜和技術架構。

IPFS的關系圖譜

IPFS由Juan Benet(胡安·貝內特)在2014年5月份發起。2015年,他創建 的項目“IPFS”在Y Combinator創業孵化競賽中獲獎並得到了天使投資,同時成立了協議實驗室。

IPFS本質上是一種內容可尋址、版本化、點對點超媒體的分布式存儲、傳輸協議,目標是補充甚至取代過去20年裏使用的超文本媒體傳輸協議(HTTP),希望構建更快、更安全、更自由的互聯網時代。

協議實驗室團隊在开發IPFS時,採用高度模塊集成化的方式,像搭積木一樣去开發整個項目。其中IPLD、LibP2P、Multiformats這三個模塊服務於IPFS底層。而Filecoin則是IPFS的激勵層,把IPFS應用的數據價值化。

Mykeycoin交易所 Mutiformats是一系列hash加密算法和自描述方式的集合,它具有SHA1\SHA256 \SHA512\Blake3B等6種主流的加密方式,用以加密和描述nodeID以及指紋數據的生成,它在現有協議基礎上對值進行自我描述改造,即從值上就可以知道是如何產生的。

libP2P是IPFS核心中的核心,面對各式各樣的傳輸層協議以及復雜的網絡設備,它可以幫助开發者迅速建立一個可用P2P網絡層,快速且節約成本。libp2p的主要功能包括:發現節點、連接節點、發現數據、傳輸數據。它類似現實世界的快遞公司,連接着千千萬萬個節點,除了負責分發數據,還負責查找數據。

IPLD是一個轉換中間件,將現有的異構數據結構統一成一種格式,方便不同系統之間的數據交換和互操作。現在IPLD支持BTC、ETH、EOS等主流公鏈的區塊數據。IPLD中間件可以把不同的區塊結構統一成一個標准進行傳遞,爲开發者提供了成功性比較高的標准,不用擔心性能、穩定和bug,這也是IPFS爲什么受到衆多區塊鏈項目歡迎的重要原因。

IPFS應用了這幾個模塊的功能,集成爲一種容器化的應用程序,運行在獨立節點上,並以Web服務的形式,供大家使用訪問。

由於IPFS是一個开源的協議,所有人都可以免費利用IPFS進行各種开發,目前IPFS網絡中的節點數量還不夠多,網絡還不夠穩定。爲了讓IPFS能夠快速普及推廣,協議實驗室基於IPFS網絡創建了Filecoin 區塊鏈項目, 用以激勵參與IPFS節點並存儲數據的礦工。Filecoin把這些應用的數據價值化,通過類似比特幣的激勵政策和經濟模型,讓更多的人去創建節點,去讓更多的人使用IPFS。

Filecoin是IPFS的經濟激勵系統,承載着IPFS的價值傳遞,維系着IPFS生態的發展。

下期【進階小課堂】开始,我們將重點展开對Filecoin的介紹。

 

IPFS的技術架構

IPFS有八層子協議棧,從低往高分別爲身份、網絡、路由、交換、對象、文件、命名、應用,每個協議棧各司其職,又互相搭配。

Mykeycoin交易所 身份層和路由層

身份和路由層可以一起解釋,對等節點身份信息的生成以及路由規則是通過Kademlia協議生成制定,KAD協議實質是構建了一個分布式松散Hash表(distributed hash table),簡稱DHT,每個加入這個DHT網絡的人都要生成自己的身份信息,然後才能通過這個身份信息去負責存儲這個網絡裏的資源信息和其他成員的聯系信息。

如同微信名片分享,在無法通過直接搜索微信號的情況下,如果你要找一個人,可以通過有這個人聯系方式的朋友分享名片來建立聯系。

網絡層

網絡層是IPFS技術的核心層,使用的lib2p可以支持任意傳輸層協議。ICE NAT traversal框架整合STUN、TURN和其他類型的NAT協議,該框架可以讓客戶端利用各種NAT方式打通網絡,從而完成NAT通信,這對於IPFS的p2p網絡非常重要。

交換層

交換層是類似迅雷、電驢這樣的BT工具,IPFS團隊把BitTorrent進行了創新,叫作Bitswap,它增加了信用和帳單體系來激勵節點去分享,用戶在發送給其他節點數據可以增加信用值,從其他節點接受數據降低信用值。如果用戶只去接收數據而不分享數據,信用分會越來越低而被其他節點忽略掉。

對象層和文件層

對象層和文件層也可以結合來談,他們共同管理IPFS上80%的數據結構。大部分數據對象都是以Merkle DAG的結構存在,這爲內容尋址和數據去重提供了便利;文件層是一個新的數據結構,和DAG並列,採用Git一樣的數據結構來支持版本快照。

命名層

具有自我驗證的特性(當其他用戶獲取該對象時,使用指紋公鑰進行驗籤,即驗證所用的公鑰是否與NodeId匹配,這驗證了用戶發布對象的真實性,同時也獲取到了可變狀態),並且加入了IPNS這個巧妙的設計來使得加密後的DAG對象名可定義,增強可閱讀性。

應用層

IPFS核心價值就在於上面運行的應用程序,可以利用它類似CDN的功能,在成本很低的帶寬下,去獲得想要的數據,從而提升整個應用程序的效率。

 

IPFS是如何工作的

IPFS是基於文件內容進行尋址的。IPFS爲每一個文件分配一個獨一無二的哈希值(文件指紋:根據文件的內容進行創建),即使是兩個文件內容只有1個比特的不同,其哈希值也是不相同的。所以IPFS是基於文件內容進行尋址,而不像傳統的HTTP協議基於域名尋址。

IPFS爲文件建立文件版本管理。IPFS在整個網絡範圍內去掉重復的文件,並且爲文件建立版本管理,也就是說,每一個文件的變更歷史都將被記錄,可以很容易回到文件的歷史版本查看數據。
根據哈希值進行文件查詢。當查詢文件的時候,IPFS網絡根據文件的哈希值(全網唯一)進行查找。由於每個文件的哈希值全網唯一,所以查詢將很容易進行。每個節點除了存儲自己需要的數據,還存儲了一張哈希表,用來記錄文件存儲所在的位置,用來進行文件的查詢、下載。
IPNS。IPNS允許用戶使用一個私鑰來對IPFS哈希附加一個引用,使用一個公鑰哈希表示你的網站是最新版本。如果你使用過比特幣,可能會對此比較熟悉,一個比特幣地址也是一個公鑰,如果該鏈接不起作用,不用擔心,能夠通過更改公鑰所指向的內容,而公鑰卻永遠保持不變。這樣,網站的更新問題就得到了解決。接下來,只需要保證這些網站的位置是人類可讀的,所有問題就解決了。
人類可讀的可變地址。IPFS/IPNS哈希是一些很大的、難看的字符串,而且不容易記住。所以IPFS允許用戶使用現有的域名系統(Domain Name System,DNS)來爲IPFS/IPNS內容提供人類可讀的鏈接。它允許用戶通過在域名服務器上將哈希插入TXT記錄來實現這一點。
IPFS HTTP網關,新舊網絡之間的橋梁。通過一個HTTP網關,IPFS可以實現從HTTP到IPFS的過渡,在瀏覽器完全支持IPFS之前,現在已經允許當前的Web瀏覽器訪問IPFS。用戶很快就可以切換到IPFS,完成Web網絡的存儲、分發和服務。
IPFS協議是开源的,支持任何團隊和個人免費存儲、下載數據,如何才能讓IPFS快速普及和發展,讓更多的節點參與者愿意拿出自己的電腦硬盤存儲其他人的數據呢?這就需要IPFS的激勵層——Filecoin了。
下一期【進階小課堂】,我們將开始詳細講解Filecoin是什么、Filecoin和IPFS的關系等,歡迎關注。

標題:Mykeycoin交易所:技術指南 | IPFS的關系族譜、技術架構及工作原理

地址:https://www.coinsdeep.com/article/986.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊