日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

【译】IPFS — The Permanent, Distributed Web Continues…..

發(fā)布時(shí)間:2025/3/15 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【译】IPFS — The Permanent, Distributed Web Continues….. 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在本系列的第1部分中 ,我們了解了IPFS,IPFS和HTTP之間的區(qū)別,后來(lái)又創(chuàng)建了一個(gè)文件以添加到IPFS中,并將其通過(guò)節(jié)點(diǎn)網(wǎng)絡(luò)訪問(wèn)。

在本部分中,我們將把它提升到一個(gè)新的水平,我們將創(chuàng)建一個(gè)目錄結(jié)構(gòu)并做實(shí)驗(yàn),以更多地了解IPFS的工作原理和功能,但在此之前,我們必須著眼于Christian Lundkvist博士的例子。

來(lái)自Christian Lundkvist博士的實(shí)例IPFS

IPFS (InterPlanetary文件系統(tǒng))是經(jīng)過(guò)充分測(cè)試的互聯(lián)網(wǎng)技術(shù)(如DHT , Git版本控制系統(tǒng)和Bittorrent)的綜合 。 它創(chuàng)建一個(gè)允許交換IPFS對(duì)象的P2P群。 IPFS對(duì)象的整體形成一個(gè)密碼認(rèn)證的數(shù)據(jù)結(jié)構(gòu),稱為Merkle DAG ,這個(gè)數(shù)據(jù)結(jié)構(gòu)可以用來(lái)模擬許多其他數(shù)據(jù)結(jié)構(gòu)。 我們將在本文中介紹IPFS對(duì)象和Merkle DAG,并給出可以使用IPFS建模的結(jié)構(gòu)示例。

IPFS對(duì)象

IPFS本質(zhì)上是一個(gè)用于檢索和共享IPFS對(duì)象的P2P系統(tǒng)。 IPFS對(duì)象是一個(gè)包含兩個(gè)字段的數(shù)據(jù)結(jié)構(gòu):

  • 數(shù)據(jù) - 大小<256 kB的非結(jié)構(gòu)化二進(jìn)制數(shù)據(jù)塊。
  • 鏈接 - 鏈接結(jié)構(gòu)的數(shù)組。 這些是到其他IPFS對(duì)象的鏈接。

鏈接結(jié)構(gòu)有三個(gè)數(shù)據(jù)字段:

  • 名稱 - 鏈接的名稱。
  • 散列 - 鏈接的IPFS對(duì)象的散列。
  • 大小 - 鏈接的IPFS對(duì)象的累積大小,包括其鏈接。

Size字段主要用于優(yōu)化P2P網(wǎng)絡(luò),在這里我們將主要忽略它,因?yàn)樵诟拍钌纤恍枰壿嫿Y(jié)構(gòu)。

IPFS對(duì)象通常由Base58編碼的散列引用。 例如,讓我們使用IPFS命令行工具(請(qǐng)?jiān)诩抑袊L試此操作)來(lái)查看使用散列QmarHSr9aSNaPSR6G9KFPbuLV9aEqJfTk1y9B8pdwqK4Rq的IPFS對(duì)象:

$ ipfs對(duì)象獲取QmarHSr9aSNaPSR6G9KFPbuLV9aEqJfTk1y9B8pdwqK4Rq { “鏈接”:[ { “名稱”:“AnotherName”, “哈希”:“QmVtYjNij3KeyGmcgg7yVXWskLaBtov3UYL9pgcGK3MCWu”, “尺寸”:18 }, { “名稱”:“SomeName”, “哈希”:“QmbUSy8HCn8J4TMDRRdxCbK2uCCtkQyZtY6XYv3y7kLgDC”, “尺寸”:58 } ] “數(shù)據(jù)”:“Hello World!” }

讀者可能會(huì)注意到所有散列都以“Qm”開(kāi)頭。 這是因?yàn)楣?shí)際上是一個(gè)多哈哈,這意味著哈希本身在多哈哈的前兩個(gè)字節(jié)中指定哈希函數(shù)和哈希長(zhǎng)度。 在上面的例子中,前面兩個(gè)字節(jié)的十六進(jìn)制數(shù)是 1220 ,其中 12 表示這是SHA256哈希函數(shù),而 20 是哈希的長(zhǎng)度(以字節(jié)為單位) - 32個(gè)字節(jié)。

數(shù)據(jù)和已命名的鏈接為IPFS對(duì)象的集合提供了一個(gè)Merkle DAG - DAG(指向無(wú)環(huán)圖)的結(jié)構(gòu), Merkle表示這是一個(gè)使用加密哈希來(lái)加密內(nèi)容的加密認(rèn)證的數(shù)據(jù)結(jié)構(gòu)。 作為練習(xí)留給讀者思考為什么在這個(gè)圖表中不可能有循環(huán)。

為了可視化圖形結(jié)構(gòu),我們將通過(guò)節(jié)點(diǎn)中的Data以圖形形象化IPFS對(duì)象,并且Links將圖形邊緣定向到其他IPFS對(duì)象,其中鏈接的Name是圖形邊緣上的標(biāo)簽。 上面的例子可視化如下:


現(xiàn)在讓我們做一些實(shí)際的東西來(lái)驗(yàn)證它。 為此,我們將繼續(xù)第1部分 。 因此,在ipfsdir目錄下創(chuàng)建一個(gè)子目錄并將其命名為ipfssubdir。 在ipfssubdir下創(chuàng)建一個(gè).txt文件并將其命名為 ipfsrocks.txt的內(nèi)容為IPFS Rocks !!

當(dāng)我們從ipfsdir外部輸入以下內(nèi)容時(shí),我們可以看到目錄結(jié)構(gòu)。

$ ls -R ipfsdir / hello.txt ipfssubdir ipfsdir // ipfssubdir: ipfsrocks.txt

現(xiàn)在讓我們將這些文件和目錄添加到IPFS

$ ipfs add ipfsdir -r 添加了QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u ipfsdir / hello.txt 添加了QmdWAgBc1yjQz6G3wNSmeQk7ZFBAh7LvaL7GSiFDEvCMGT ipfsdir / ipfssubdir / ipfsrocks.txt 添加QmSC7kzH6k6W8Pf8i98NivocmT2jcYPgDhZtMWahmZUczg ipfsdir / ipfssubdir 添加了QmRuftkYACe3pCjyoZGXYyr1HdqctecmPcq8C9oFyMxgaS ipfsdir

我們可以看到,對(duì)于hello.txt文件,它已經(jīng)生成了與第1部分中相同的散列。

現(xiàn)在,我將在ipfssubdir中添加一個(gè)與hello.txt相同內(nèi)容的helloworld.txt文件, 即Hello World ,并將其添加到IPFS。

讓我們看看IPFS如何添加這些文件。

$ ipfs add ipfsdir -r 添加了QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u ipfsdir / hello.txt 添加了QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u ipfsdir / ipfssubdir / helloworld.txt 添加了QmdWAgBc1yjQz6G3wNSmeQk7ZFBAh7LvaL7GSiFDEvCMGT ipfsdir / ipfssubdir / ipfsrocks.txt 添加了Qmd2zXenEQVBGt1wbYYDXZFBQiXCvfU7JkZb7u1Sw7ujRd ipfsdir / ipfssubdir 添加了QmNoX6nF2ccQkH3AHKy4HvphK8WwHa19eez7YqjrxEUE2z ipfsdir

如果我們觀察,我們可以看到IPFS為ipfsdir / hello.txt和ipfsdir / ipfssubdir / helloworld.txt生成了相同的哈希碼,因?yàn)樗鼈兌季哂邢嗤膬?nèi)容。 我將在短時(shí)間內(nèi)對(duì)此進(jìn)行更多解釋。

讓我們像之前那樣讓這些文件被節(jié)點(diǎn)網(wǎng)絡(luò)訪問(wèn)

$ ipfs pin add QmNoX6nF2ccQkH3AHKy4HvphK8WwHa19eez7YqjrxEUE2z

現(xiàn)在啟動(dòng)守護(hù)程序?qū)PFS機(jī)器連接到網(wǎng)絡(luò)并訪問(wèn)文件

$ ipfs守護(hù)進(jìn)程 正在初始化守護(hù)進(jìn)程... 將當(dāng)前ulimit調(diào)整為2048 ... ...................................

在新終端運(yùn)行同行

$ ipfs swarm peers

運(yùn)行下面的鏈接檢查目錄,完全加載到IPFS上: https ://ipfs.io/ipfs/QmNoX6nF2ccQkH3AHKy4HvphK8WwHa19eez7YqjrxEUE2z

ipfsdir ipfssubdir

上面的例子以圖形方式顯示如下:

文件系統(tǒng)的版本控制

為了理解版本控制,我們現(xiàn)在將文件helloworld.txt的內(nèi)容更改為Hello World IPFS。 我們可以看到已更改文件和相應(yīng)目錄的哈希值的變化。

$ ipfs add ipfsdir -r 添加了QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u ipfsdir / hello.txt 添加了QmamMpGqGkkf3v1iApshHoTHjx2PXJPJWvqQ8y55eeeoYn ipfsdir / ipfssubdir / helloworld.txt 添加了QmdWAgBc1yjQz6G3wNSmeQk7ZFBAh7LvaL7GSiFDEvCMGT ipfsdir / ipfssubdir / ipfsrocks.txt 添加了QmWtucfHnZhbURkUAnzJtsoj7pVi8TmLp9K1WSD1C2jJqc ipfsdir / ipfssubdir 添加了QmbzoYKQ8FvWDTQ5KX8LpeRWt4w48QXRgaFaKuLq14pJ4M ipfsdir

正如我前面提到的那樣,IPFS確實(shí)像Git一樣進(jìn)行版本控制。 我們舉例說(shuō)明我們以前的文件系統(tǒng)目錄結(jié)構(gòu)以及兩個(gè)提交:第一個(gè)提交是原始結(jié)構(gòu),在第二個(gè)提交中,我們已將文件helloworld.txt更新為Hello World IPFS,而不是原始Hello World。

上面的變化可以通過(guò)圖形顯示如下:

正如我們所看到的,IPFS有潛力取代或補(bǔ)充HTTP。 人們可以很容易地看到現(xiàn)在使用IPFS的一些主要優(yōu)點(diǎn),我會(huì)提到 - 數(shù)據(jù) 不可變性, 數(shù)據(jù)分布和速度數(shù)不多。

數(shù)據(jù)不可變性

正如我們所看到的,IPFS上的文件被賦予了一個(gè)生成的散列值。 正如上面的例子 -

QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u

這是非常漫長(zhǎng)和獨(dú)特的。 兩個(gè)文件幾乎不可能具有相同的散列。 相同文件的哈希值相同,如果文件更改,哈希值也會(huì)更改。 我們可以將這些散列值視為地址。 使用這個(gè)地址可以訪問(wèn)文件。 這就是系統(tǒng)如何實(shí)現(xiàn)不變性。 沒(méi)有地址改變,沒(méi)有人可以改變文件。 這也為我們提供了數(shù)據(jù)重復(fù)數(shù)據(jù)刪除。 如果偶然兩個(gè)人在IPFS上傳完全相同的文件,他們將得到相同的哈希地址。 所以,這是不變的。

數(shù)據(jù)分布和速度

正如我前面提到的那樣,IPFS是一種類似于BitTorrent的點(diǎn)對(duì)點(diǎn)協(xié)議。 當(dāng)我下載一個(gè)文件時(shí),其中一些數(shù)據(jù)可以與其他人共享。 因此,讓我們說(shuō)一下San Fransisco的一臺(tái)電腦(客戶端)從波士頓市的一臺(tái)計(jì)算機(jī)(服務(wù)器)請(qǐng)求一個(gè)文件。 在傳統(tǒng)的HTTP客戶端 - 服務(wù)器模式中,由于SFO和波士頓市之間的距離,通信需要更長(zhǎng)的時(shí)間。 此外,如果該文件很受歡迎,來(lái)自其他位置的許多客戶端會(huì)詢問(wèn)該文件,從而在波士頓的服務(wù)器上創(chuàng)建負(fù)載。 如果萬(wàn)一服務(wù)器機(jī)器出現(xiàn)故障,則會(huì)出現(xiàn)404錯(cuò)誤。 而在IPFS中,San Fransisco的其他人可能已經(jīng)從波士頓的服務(wù)器上下載了這個(gè)文件,然后我可以從他們那里下載它。 如果該文件很受歡迎,那么附近的更多節(jié)點(diǎn)將擁有共享副本,從而將負(fù)載從波士頓服務(wù)器上分離下來(lái)并分發(fā)。 在這種情況下,即使在波士頓的服務(wù)器出現(xiàn)故障,我仍然可以從其他節(jié)點(diǎn)訪問(wèn)該文件,并且可以確信沒(méi)有人會(huì)因?yàn)槲覀儾痪们坝懻撨^(guò)的不變特性而篡改文件。


那么,我們正在走向一個(gè)分散和更永久的互聯(lián)網(wǎng)世界 鏈接永遠(yuǎn)不會(huì)返回404錯(cuò)誤并減少對(duì)集中式服務(wù)器的依賴的世界。


https://medium.com/@itsromiljain/ipfs-the-permanent-distributed-web-continues-ffbe1919bb94

總結(jié)

以上是生活随笔為你收集整理的【译】IPFS — The Permanent, Distributed Web Continues…..的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。