尹人黄色性交网黄曰片毛片|国产一级Av免费观看|曰韩色图视频免费在线黄视频|超碰97在线免费播放|五月情色丁香亭亭|亚洲无码在线大全|国产成人+亚洲+欧洲在线|欧美丰满少妇人妻精品性爱不卡|久草视频免费在线观看免费|日本一黄色网亚洲第一成视频

您的位置:首頁 > 行業(yè)新聞

IPFS紅岸智能CTO周雪松:IPFS如何工作以及涉及的組件的協(xié)同工作

這篇文章是“深入理解IPFS”系列文章,該系列文章將幫助各位理解IPFS的基本概念,我們會(huì)盡量讓這個(gè)系列盡可能的不枯燥。

系列分為六個(gè)部分:

● 深入理解IPFS(1/6):初級(jí)到高級(jí)指南:在這一部分中,我們將嘗試去解釋什么是IPFS,為什么需要它以及我們可以用它來做什么。我們將簡(jiǎn)要介紹IPFS的所有的底層組件(后面的部分將對(duì)此進(jìn)行深入分析),了解它們是如何協(xié)同工作的。如果你想要的是一個(gè)簡(jiǎn)短的總結(jié),而不想了解“引擎蓋下面”有什么,那么這一部分就是為你準(zhǔn)備的。

● 深入了解IPFS(2/6):什么是InterPlanetary Linked Data(IPLD)?:在本部分中,我們將更加深入研究基于內(nèi)容可尋址網(wǎng)絡(luò)的數(shù)據(jù)模型。我們將探索IPLD的細(xì)節(jié)和規(guī)格,逐漸熟悉IPLD并使用它。

● 深入了解IPFS(3/6): 什么是星際命名系統(tǒng)(IPNS)?:在這一部分中,我們將深入研究分布式網(wǎng)絡(luò)的命名系統(tǒng)。我們將研究它的使用規(guī)格以及工作原理,還將把它與今天的命名系統(tǒng)(即DNS)進(jìn)行比較,列出IPNS與DNS的優(yōu)缺點(diǎn)列表。

●深入理解IPFS(4/6):什么是MultiFormats? 在這一部分中,我們將討論為什么我們需要MultiFormats,它是如何工作的,以及您作為用戶/開發(fā)人員可以用它做什么?

● 深入理解IPFS(5/6):什么是Libp2p? 在這一部分中,我們將研究IPFS的網(wǎng)絡(luò)層,以及它對(duì)IPFS的巨大貢獻(xiàn)。我們將通過它的工作,規(guī)格和使用方法來解釋,以方便大家更清楚的了解它。

● 深入理解IPFS(6/6):什么是Filecoin? 在這一部分中,我們將討論IPFS的激勵(lì)層,Filecoin。我們研究了Filecoin的白皮書和實(shí)施規(guī)范,包括DSN Distributed Storage Network(分布式存儲(chǔ)網(wǎng)絡(luò))、復(fù)制證明、存儲(chǔ)證明、數(shù)據(jù)存儲(chǔ)市場(chǎng)和檢索市場(chǎng)以及基于Filecoin協(xié)議的智能合約的實(shí)現(xiàn)。我們還討論了在白皮書中沒有提到的Filecoin協(xié)議中的一些缺陷,并提出了對(duì)Filecoin協(xié)議的一些改進(jìn)。

希望您可以從本系列中學(xué)到很多關(guān)于IPFS的知識(shí)。讓我們開始吧!

當(dāng)你問某人關(guān)于最新的“復(fù)仇者聯(lián)盟”電影時(shí),他們可能不會(huì)說“在這個(gè)服務(wù)器上的這個(gè)子域里,然后在這個(gè)文件路徑下,斜杠“漫威” 斜杠 “復(fù)仇者聯(lián)盟”點(diǎn) mp4”之類的話。相反,他們會(huì)描述視頻的內(nèi)容:“宇宙的一半被滅霸摧毀……”對(duì)于人類來說,這顯然是一種最直觀的思考方式,但這并不是我們今天在網(wǎng)絡(luò)上訪問內(nèi)容的方式。盡管如此,諸如IPFS之類的分布式

協(xié)議還是使用了基于內(nèi)容尋址(使用文件的內(nèi)容標(biāo)記和查找內(nèi)容)來查找分布式網(wǎng)絡(luò)上存儲(chǔ)的內(nèi)容。

在本文中,我們請(qǐng)英國(guó)愛丁堡赫瑞瓦特大學(xué) 工程造價(jià)碩士周雪松帶我們一起探討一下整個(gè)IPFS是如何工作的,涉及到哪些不同的組件,以及它們是如何協(xié)同工作的。為此,我們將向IPFS添加一個(gè)文件,然后研究向IPFS添加文件時(shí)會(huì)發(fā)生些什么。

讓我們首先向IPFS添加一張照片。我們添加這個(gè)......

https://unsplash.com/photos/rW-I87aPY5Y

順便提一下,您必須在您的電腦系統(tǒng)上安裝IPFS才能與我一起使用。可以從這里安裝。安裝IPFS之后,必須啟動(dòng)IPFS守護(hù)進(jìn)程(該軟件與IPFS網(wǎng)絡(luò)通信,以便從網(wǎng)絡(luò)中添加和檢索數(shù)據(jù))。您可以通過以下方式啟動(dòng)守護(hù)進(jìn)程 ipfs daemon。

當(dāng)您將照片添加到IPFS時(shí),會(huì)發(fā)生以下情況:

在終端我得到了這個(gè):

你可以在這里看到最后的哈希值:

但是我們沒有看到與中間2個(gè)步驟(Raw和Digest)相關(guān)的任何內(nèi)容。這一切都是發(fā)生在“引擎蓋下”的。

當(dāng)我們添加圖像時(shí),我們將圖像轉(zhuǎn)換為計(jì)算機(jī)可以理解的Raw(原始)數(shù)據(jù),F(xiàn)在,它具有內(nèi)容尋址性(我們?cè)谏厦嬗懻撨^),我們要想出一個(gè)方法,通過這個(gè)方法,我們可以將這個(gè)圖像數(shù)據(jù)轉(zhuǎn)換成一個(gè)標(biāo)簽,這個(gè)標(biāo)簽則需要具有標(biāo)識(shí)它的內(nèi)容的唯一性。

這就是哈希函數(shù)發(fā)揮作用的地方了。

哈希函數(shù)將數(shù)據(jù)(來自文本、照片、整本圣經(jīng)等的任何數(shù)據(jù))作為輸入,并給出一個(gè)輸出(Digest),其輸出必須是惟一的。如果我們改變這個(gè)圖像中的一個(gè)像素,那么輸出將會(huì)不同。這是它的防篡改特性,使IPFS成為一個(gè)自我認(rèn)證的文件系統(tǒng)。因此,您把這張照片轉(zhuǎn)印給他人,他/她則可以輕松的檢查收到的照片是否被篡改過。

此外,您不能知道輸入是什么(在本例中是貓的照片),而只能看到它的輸出(Digest)。因此,這也確保了內(nèi)容的安全性。

現(xiàn)在,我們將Raw Data(原始圖像數(shù)據(jù))傳遞到SHA256散列函數(shù)中,并得到唯一的摘要(Digest)。現(xiàn)在,我們需要將這個(gè)摘要轉(zhuǎn)換為CID(內(nèi)容標(biāo)識(shí)符)。當(dāng)我們?cè)噲D取回圖像時(shí),IPFS將搜索這個(gè)CID(內(nèi)容標(biāo)識(shí)符)。為此,IPFS使用了一種稱為Multihash的技術(shù)。

要了解Multihash的重要性,請(qǐng)考慮這種情況。

您將一個(gè)圖像存儲(chǔ)在互聯(lián)網(wǎng)上,并且您擁有其CID,您可以將其提供給任何想要獲取此圖像的人。但是如果未來您發(fā)現(xiàn)SHA256損壞了(這意味著此過程不再具有防篡改和安全性)并且您希望使用SHA3(以確保防篡改和安全性),那該怎么辦呢?這意味著要改變將照片轉(zhuǎn)換為CID的整個(gè)過程,而之前的CID將毫無用處......

在這種情況下,上面的問題似乎可能只是一個(gè)小問題,但您應(yīng)該知道的是這些哈希函數(shù)可以獲得數(shù)十億美元的資金。所有銀行,國(guó)家安全機(jī)構(gòu)等都使用這些哈希函數(shù)來確保其安全地運(yùn)行。如果沒有它,即使是瀏覽器上每個(gè)站點(diǎn)地址旁邊看到的綠色鎖也無法運(yùn)行。

為了解決這個(gè)問題,IPFS使用了多哈希(Multihash)。Multihash允許我們自定義哈希散列。因此,根據(jù)使用的哈希函數(shù)不同,我們可以有多個(gè)版本的CID。我們將在本系列的第4部分中詳細(xì)討論Multihash,并深入研究Multiformat。

現(xiàn)在我們已經(jīng)將照片添加到IPFS中,但這還不是全部,F(xiàn)在的實(shí)際情況是這樣的:

大文件被分塊,散列組織成IPLD(Merkle DAG)

如果文件大于256kb,我們則將它們分解為更小的部分,以便所有部分都等于或小于256kb。我們可以看到照片塊使用的這個(gè)命令:

ipfs object get Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u

然后這給了我們15個(gè)塊,每個(gè)塊小于256kb。首先將這些塊中的每一個(gè)都轉(zhuǎn)換為摘要(Digest),然后再轉(zhuǎn)換為CID。

{

"Links": [

{

"Name": "",

"Hash": "QmZ5RgT3jJhRNMEgLSEsez9uz1oDnNeAysLLxRco8jz5Be",

"Size": 262158

},

{

"Name": "",

"Hash": "QmUZvm5TertyZagJfoaw5E5DRvH6Ssu4Wsdfw69NHaNRTc",

"Size": 262158

},

{

"Name": "",

"Hash": "QmTA3tDxTZn5DGaDshGTu9XHon3kcRt17dgyoomwbJkxvJ",

"Size": 262158

},

{

"Name": "",

"Hash": "QmXRkS2AtimY2gujGJDXjSSkpt2Xmgog6FjtmEzt2PwcsA",

"Size": 262158

},

{

"Name": "",

"Hash": "QmVuqvYLEo76hJVE9c5h9KP2MbQuTxSFyntV22qdz6F1Dr",

"Size": 262158

},

{

"Name": "",

"Hash": "QmbsEhRqFwKAUoc6ivZyPa1vGUxFKBT4ciH79gVszPcFEG",

"Size": 262158

},

{

"Name": "",

"Hash": "QmegS44oDgNU2hnD3j8r1WH8xZ2RWfe3Z5eb6aJRHXwJsw",

"Size": 262158

},

{

"Name": "",

"Hash": "QmbC1ZyGUoxZrmTTjgmiB3KSRRXJFkhpnyKYkiVC6PUMzf",

"Size": 262158

},

{

"Name": "",

"Hash": "QmZvpEyzP7C8BABesRvpYWPec2HGuzgnTg4VSPiTpQWGpy",

"Size": 262158

},

{

"Name": "",

"Hash": "QmZhzU2QJF4rUpRSWZxjutWz22CpFELmcNXkGAB1GVb26H",

"Size": 262158

},

{

"Name": "",

"Hash": "QmZeXvgS1NTxtVv9AeHMpA9oGCRrnVTa9bSCSDgAt52iyT",

"Size": 262158

},

{

"Name": "",

"Hash": "QmPy1wpe1mACVrXRBtyxriT2T5AffZ1SUkE7xxnAHo4Dvs",

"Size": 262158

},

{

"Name": "",

"Hash": "QmcHbhgwAVddCyFVigt2DLSg8FGaQ1GLqkyy5M3U5DvTc6",

"Size": 262158

},

{

"Name": "",

"Hash": "QmNsx32qEiEcHRL1TFcy2bPvwqjHZGp62mbcVa9FUpY9Z5",

"Size": 262158

},

{

"Name": "",

"Hash": "QmVx2NfXEvHaS8uaRTYaF4ExeLaCSGpTSDhhYBEAembdbk",

"Size": 69716

}

],

"Data": "bu0002u0018Ơ�u0001 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 ��u0010 Ơu0004"

}

IPFS使用IPLD (IPLD使用Merkle DAG或稱作有向無環(huán)圖)去管理所有的塊并將其鏈接到基本的CID。

IPLD (objects)由2個(gè)組件組成:

●Data數(shù)據(jù) - 大小小于256 kB的非結(jié)構(gòu)化二進(jìn)制數(shù)據(jù)的blob (binary large object二進(jìn)制大對(duì)象)。

●Links鏈接 - 結(jié)構(gòu)的數(shù)組。指向其他IPFS對(duì)象的鏈接。

每一個(gè)IPLD鏈接(在我們的例子中是上面提到的15個(gè)鏈接)都有3個(gè)部分:

●Name 名稱 -鏈接的名稱。

●Hash 哈希 -鏈接的IPFS對(duì)象的哈希值。

●Size大小 - 鏈接的IPFS對(duì)象的累積大小,包括跟隨其鏈接的大小。

IPLD是建立在關(guān)聯(lián)數(shù)據(jù)的基礎(chǔ)上的,這是分布式網(wǎng)絡(luò)社區(qū)中的人們已經(jīng)討論了很長(zhǎng)一段時(shí)間的事情了。這也是蒂姆·伯納斯-李(Tim Berners-Lee)多年來一直在做的事情,他的新公司Solid正在圍繞著它開展業(yè)務(wù)。

使用IPLD還有其他好處。為了解釋這一點(diǎn),讓我們創(chuàng)建一個(gè)名為photos的文件夾,并在其中添加2張照片(貓的照片與相同照片的副本)。

正如您所看到的,這兩張照片都具有相同的哈希值(這證明我沒有更改圖像副本中的任何內(nèi)容)。這為IPFS 添加了刪除重復(fù)數(shù)據(jù)屬性。因此,即使您的朋友將相同的貓照片添加IPFS,他也不會(huì)復(fù)制圖像。這節(jié)省了大量的存儲(chǔ)空間。

想象一下,如果我把這篇文章存儲(chǔ)在IPFS上,它的每個(gè)字母都是分塊的,并且有一個(gè)惟一的CID,那么這篇文章就可以由字母(大寫和小寫)、數(shù)字和一些特殊字符組合而成。我們將只存儲(chǔ)每個(gè)字母、數(shù)字和字符一次,并根據(jù)數(shù)據(jù)結(jié)構(gòu)中的鏈接重新排列就可以了。

IPFS也有一個(gè)命名系統(tǒng),稱為星際命名系統(tǒng)(IPNS)。為了理解它的重要性,讓我們假設(shè)您創(chuàng)建了一個(gè)網(wǎng)站,并將其托管在某個(gè)域名中。對(duì)于這個(gè)例子,我們將以我的網(wǎng)站為例:

https://vaibhavsaini.com/

如果我想在IPFS上托管它,簡(jiǎn)單地在IPFS上添加網(wǎng)站文件夾就可以。為此,我已經(jīng)使用wget下載了網(wǎng)站。如果你使用的是基于Linux的操作系統(tǒng),比如Ubuntu或MAC,那么你可以和我一起試試。

下載本網(wǎng)站(或任何網(wǎng)站):

wget --mirror --convert-links --adjust-extension --page-requisites --no-parenthttps://vaibhavsaini.com

現(xiàn)在添加名為vaibhavsaini.com 的IPFS文件夾:

ipfs add -r vaibhavsaini.com

你會(huì)得到如下內(nèi)容:

我們可以看到,我們的網(wǎng)站現(xiàn)在托管在最后一個(gè)CID(即文件夾的CID):

QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB

我們可以使用http協(xié)議訪問該站點(diǎn):

https://gateway.pinata.cloud/ipfs/QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB/

假設(shè)我想在網(wǎng)站上更改我的個(gè)人資料的圖片。正如我們上面已經(jīng)了解到的,如果我們改變輸入的內(nèi)容,我們得到的將是一個(gè)不同的Digest,這意味著我最終的“CID”會(huì)有所不同。

這意味著每次更新我的網(wǎng)站時(shí)都必須要更新哈希,擁有我之前網(wǎng)站鏈接的人(上述網(wǎng)址)都無法看到我的新網(wǎng)站。

這將會(huì)導(dǎo)致很嚴(yán)重的問題。

為解決這類問題,IPFS使用了星際命名系統(tǒng)(IPNS)。使用IPNS鏈接指向CID。如果我想更新我的網(wǎng)站CID,我只需將新的CID指向相應(yīng)的IPNS鏈接就可以了(這類似于今天的DNS)。我們將在本系列的第3部分中深入探討IPNS。

但是現(xiàn)在,讓我們?yōu)槲业木W(wǎng)站生成一個(gè)IPNS鏈接。

ipfs name publish QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB

這可能需要幾分鐘時(shí)間,最后你會(huì)得到這樣的輸出:

Published to Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy: /ipfs/QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB

現(xiàn)在,如果我想添加新的CID,我將使用相同的命令

ipfs name publish

使用此功能,您可以使用以下鏈接訪問我的網(wǎng)站的更新版本:

https://gateway.pinata.cloud/ipns/Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy

但是上面的鏈接地址人類仍然無法方便讀取。我們習(xí)慣于這樣的名字:

https://vaibhavsaini.com

在本系列的第3部分中,我們將看到如何將IPNS鏈接到域名,這樣您就可以在

https://vaibhavsaini.com

上看到我的IPFS托管網(wǎng)站。

IPFS也是HTTP協(xié)議的潛在替代品。但是為什么我們要替換HTTP?它似乎工作正常,對(duì)吧?我的意思是,你仍然能夠閱讀這篇文章并在Netflix上看電影,而所有的這些都是在使用HTTP協(xié)議。

即使它似乎對(duì)我們很好,它也有一些大問題。

假設(shè)您正坐在大教室里上課,您的教授要求您訪問特定的網(wǎng)站。在座的每個(gè)學(xué)生都向該網(wǎng)站提出請(qǐng)求并給予回復(fù)。這意味著相同的數(shù)據(jù)被單獨(dú)發(fā)送給房間中的每個(gè)學(xué)生。如果有100名學(xué)生,則有100個(gè)請(qǐng)求和100個(gè)回復(fù)。這顯然不是最有效的做事方式。理想情況下,學(xué)生將能夠互相使用得到的信息從而來更有效地檢索他們需要的信息。

如果網(wǎng)絡(luò)通信線路中存在某些問題并且客戶端無法與服務(wù)器連接,則HTTP也會(huì)出現(xiàn)大問題。如果ISP發(fā)生中斷,某個(gè)國(guó)家/地區(qū)阻止了某些內(nèi)容,或者內(nèi)容只是被刪除或移動(dòng),就會(huì)發(fā)生這種情況。這些類型的斷開鏈接幾乎存在于HTTP網(wǎng)絡(luò)任何的位置上。

基于位置的HTTP尋址模型鼓勵(lì)集中化。將我們所有的數(shù)據(jù)托付給少數(shù)幾個(gè)應(yīng)用程序的確是很方便的,但正因?yàn)槿绱?網(wǎng)絡(luò)上的大量數(shù)據(jù)變得骯臟不堪。這使得這些提供者對(duì)我們的信息負(fù)有巨大的責(zé)任和權(quán)力。

這就是Libp2p發(fā)揮作用的地方了。Libp2p用于IPFS網(wǎng)絡(luò)上的數(shù)據(jù)通信,并發(fā)現(xiàn)其他節(jié)點(diǎn)(計(jì)算機(jī)或智能手機(jī))。它的工作方式是,如果每臺(tái)計(jì)算機(jī)和智能手機(jī)都運(yùn)行IPFS軟件,那么我們將成為像大型BitTorrent網(wǎng)絡(luò)的一部分,每一個(gè)系統(tǒng)都可以充當(dāng)客戶端和服務(wù)器。因此,如果100名學(xué)生要求相同的網(wǎng)站,他們可以互相請(qǐng)求網(wǎng)站數(shù)據(jù)。這種系統(tǒng)如果大規(guī)模實(shí)施,則可以顯著提高上網(wǎng)速度。

好了,我們就講到這里。如果你能堅(jiān)持到這里,那么你應(yīng)該得到鼓勵(lì)。做得好!

到目前為止,我們已經(jīng)學(xué)到了很多關(guān)于IPFS的知識(shí)。讓我們回顧一下:

● IPFS是基于內(nèi)容可尋址的。IPFS上的數(shù)據(jù)則是使用CID來進(jìn)行識(shí)別。

● 這些CID對(duì)于它引用的數(shù)據(jù)是具有惟一性的。

● IPFS使用哈希函數(shù)作為其防篡改的屬性,這使得IPFS成為了一個(gè)自認(rèn)證的文件系統(tǒng)。

● IPFS使用Multihash,它允許對(duì)相同的數(shù)據(jù)使用不同版本的CID(但是這并不意味CID不是唯一的)。如果我們使用相同的哈希函數(shù),那么我們將會(huì)得到相同的CID。我們將在本系列的第4部分中對(duì)此問題進(jìn)行更多的討論。

● IPFS使用IPLD來管理和鏈接所有的數(shù)據(jù)塊。

● IPLD使用Merkle DAG(又稱有向無環(huán)圖)數(shù)據(jù)結(jié)構(gòu)來鏈接數(shù)據(jù)塊。

● IPLD還向IPFS添加了重復(fù)數(shù)據(jù)刪除特性。

● IPFS使用IPNS將CID鏈接到固定的IPNS鏈接上,這種技術(shù)類似于今天的集中式Internet的DNS。

● IPFS使用Libp2p在IPFS網(wǎng)絡(luò)上做數(shù)據(jù)通信并發(fā)現(xiàn)其他節(jié)點(diǎn)(計(jì)算機(jī)和智能手機(jī)),這樣可以顯著的提高您的上網(wǎng)速度。

下面是IPFS堆棧的圖解表示:

作者介紹

Vaibhav是TowardsBlockchain的聯(lián)合創(chuàng)始人。麻省理工學(xué)院劍橋創(chuàng)新中心孵化啟動(dòng)者。他是高級(jí)區(qū)塊鏈開發(fā)人員,曾參與多個(gè)區(qū)塊鏈平臺(tái),包括以太坊,Quorum,EOS,Nano,Hashgraph,IOTA等。

(新媒體責(zé)編:syhz0808)

聲明:

1、凡本網(wǎng)注明“人民交通雜志”/人民交通網(wǎng),所有自采新聞(含圖片),如需授權(quán)轉(zhuǎn)載應(yīng)在授權(quán)范圍內(nèi)使用,并注明來源。

2、部分內(nèi)容轉(zhuǎn)自其他媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。

3、如因作品內(nèi)容、版權(quán)和其他問題需要同本網(wǎng)聯(lián)系的,請(qǐng)?jiān)?0日內(nèi)進(jìn)行。電話:010-67683008

時(shí)政 | 交通 | 交警 | 公路 | 鐵路 | 民航 | 物流 | 水運(yùn) | 汽車 | 財(cái)經(jīng) | 輿情 | 郵局

人民交通24小時(shí)值班手機(jī):17801261553 商務(wù)合作:010-67683008轉(zhuǎn)602 E-mail:zzs@rmjtzz.com

Copyright 人民交通雜志 All Rights Reserved 版權(quán)所有 復(fù)制必究 百度統(tǒng)計(jì) 地址:北京市豐臺(tái)區(qū)南三環(huán)東路6號(hào)A座四層

增值電信業(yè)務(wù)經(jīng)營(yíng)許可證號(hào):京B2-20201704 本刊法律顧問:北京京師(蘭州)律師事務(wù)所 李大偉

京公網(wǎng)安備 11010602130064號(hào) 京ICP備18014261號(hào)-2  廣播電視節(jié)目制作經(jīng)營(yíng)許可證:(京)字第16597號(hào)