演示IPFS的一个完整的流程以及针对部分概念的详解
生活随笔
收集整理的這篇文章主要介紹了
演示IPFS的一个完整的流程以及针对部分概念的详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
整體的流程
1,創(chuàng)建ipfs節(jié)點
- 通過ipfs init在本地計算機建立一個IPFS節(jié)點
- 本文有些命令已經(jīng)執(zhí)行過了,就沒有重新初始化。部分圖片拷貝自先前文檔,具體信息應以實物為準
- 執(zhí)行ipfs init初始化節(jié)點之后,會生成一個.ipfs的文件夾,用于存儲相關的信息,比如節(jié)點ID、環(huán)境配置信息、數(shù)據(jù)存儲等
- 如果使用的是MAC電腦,使用shift+command+. 可以查看隱藏文件
- 通過ipfs id查看創(chuàng)建的節(jié)點id的信息
2,啟動節(jié)點服務器?
- 使用命令ipfs daemon啟動節(jié)點服務器
- 一旦啟動當前界面會處于監(jiān)聽狀態(tài),需要新建標簽頁
3,簡單驗證
-
?使用如下命令,進行簡單測試
- 瀏覽器輸入下面的網(wǎng)址:http://localhost:5001/webui會看到一個漂亮的UI界面
?相關問題詳解
ipfs的存儲位置
- IPFS的數(shù)據(jù)存儲,個人用戶的數(shù)據(jù)存儲在自己個人的硬盤上,也就是本地硬盤存儲。存儲后,會在IPFS網(wǎng)絡廣播,“我存儲哈希為Qm...的數(shù)據(jù)了”,因為哈希的唯一性,如果數(shù)據(jù)的分割方法一定,那么同樣的數(shù)據(jù)在網(wǎng)絡存儲中只會有一份,也就是只在本地節(jié)點存儲。當有用戶檢索該數(shù)據(jù)時,檢索數(shù)據(jù)的hash值就是key,節(jié)點會首先在DHT表(key/value存儲)中查詢有無該key,如果沒有,到與key異或距離最近的K桶里查找,如果該K桶中的某個節(jié)點有key對應的value則返回,否則返回它認為存有value值的最可能節(jié)點,以此遞歸,最終找到key對應的value。然后請求節(jié)點與value(也就是節(jié)點ID)建立連接,并請求數(shù)據(jù),同時將該key/value鍵值對存儲到自己的DHT表中。請求節(jié)點將接收到的數(shù)據(jù)存儲到ipfs緩存中,數(shù)據(jù)檢索成功。該請求節(jié)點在緩存數(shù)據(jù)有效期內(nèi),同樣可以為ipfs網(wǎng)絡,提供該數(shù)據(jù),作為原始數(shù)據(jù)的備份。
ipfs的冗余備份措施
- IPFS采用了Erasure coding的冗余備份措施,集群中有n份原始數(shù)據(jù)和m份校驗數(shù)據(jù),即共有n+m份備份數(shù)據(jù)。
修改節(jié)點默認存儲空間
- ipfs節(jié)點默認存儲空間為10個G
方式一:可打開終端執(zhí)行下面的命令
export EDITOR=/usr/bin/vim ipfs config edit- 找到下圖使用紅色的框標定的內(nèi)容,修改自己想要的大小
- PS:輸入i可以開始編輯,編譯完畢后按esc鍵,再輸入:,再次輸入wq保存并且退出?
方式二 采用web界面進行修改
- 修改對應的信息,然后點擊保存
ipfs的節(jié)點掉線,對于整個組織的影響
- IPFS的容錯機制會保證數(shù)據(jù)被復制了足夠數(shù)量并存放在不同的地區(qū),即使某一個地方的數(shù)據(jù)由于不可抗力的因素被完全銷毀,通過其他地區(qū)的備份也可以實現(xiàn)完整恢復數(shù)據(jù),極大的保證了存儲在IPFS上的數(shù)據(jù)的安全性
- 采用MerkleDAG,因為它具有以下特點:1.內(nèi)容可尋址:所有內(nèi)容都是被多重hash校驗和來唯一識別的,包括links。2.無法篡改:所有的內(nèi)容都用它的校驗和來驗證。如果數(shù)據(jù)被篡改或損壞,IPFS會檢測到。3.重復數(shù)據(jù)刪除:重復內(nèi)容并只存儲一次。
在IPFS網(wǎng)絡中,數(shù)據(jù)的存儲可能是有重復的。重復的數(shù)量與用戶上傳的時候采用的IPFS進行分塊的方法有關。 - 之前提到過數(shù)據(jù)在IPFS存儲是以塊的形式存儲的。在ipfs提供的數(shù)據(jù)分割方式有很多種。在ipfs源碼種core/commands/add.go代碼中描述了切割的方法:
?
- 同一個文件存儲在ipfs中,因為存儲是選用的文件切割方法不同,返回的hash值卻不一樣。所以說IPFS的塊存儲沒有重復的,而IPFS塊文件拼湊的數(shù)據(jù)可能有重復的。也就是說同一個文件可以根據(jù)不同的文件切割方法在IPFS網(wǎng)絡中重復的存儲多次。
- 備份是如何實現(xiàn)的呢?假如一部非常火的電影,大家都習慣性的將該電影存儲到自己的電腦E盤或其它硬盤存儲中,全世界如果有1億的人存儲了這個電影,這不是對存儲的極大浪費嗎?在ipfs網(wǎng)絡中,該電影只被存儲在一個節(jié)點中,當有用戶需要讀取的時候,會產(chǎn)生新的備份。就是誰使用數(shù)據(jù),這個數(shù)據(jù)就會復制到誰那里。當一個節(jié)點加入IPFS網(wǎng)絡時,這個節(jié)點會提供一部分硬盤空間(缺省為10G,可以配置)給整個網(wǎng)絡使用。那么通常情況下,在存儲文件的時候,您自己提供的這部分硬盤空間總是最快的,因為不需要跨網(wǎng)。當存儲完畢后,網(wǎng)絡上任意節(jié)點都可以訪問這個文件。當另一個節(jié)點訪問的時候,那個節(jié)點往往會復制一份您的數(shù)據(jù)到他的緩存空間。這樣整個網(wǎng)絡中就有兩份拷貝了。試想,當有很多人對這個文件感興趣,那么網(wǎng)絡中的拷貝數(shù)會越來越多。
- 需要提出的是:拷貝一般都是緩存,也就是說是臨時存儲的。時間一長就被自動刪除掉了。這種臨時緩存非常好地解決了分布式數(shù)據(jù)分發(fā)的問題,比如說一個社會熱點往往呈現(xiàn)出預熱期、火熱期和退潮期等階段,利用IPFS,數(shù)據(jù)的分布和拷貝數(shù)與這些時期是完全匹配的。訪問的人越多,拷貝數(shù)就越多,但熱度下來了,拷貝數(shù)就會降下來,從而自然地實現(xiàn)空間利用率和存取效率的平衡。如果想讓這個文件永久存儲,那么必須將其設為固定的樣式,即存儲在硬盤中。
ipfs的使用
上傳txt文件
?上傳其他格式的文件
- docx
- jpg
- mp4
- mp3
注意事項
pdf?
ipfs get QmZJBKrLFPvn8zEatZsxSJTtJkCFm4YeMwChDLRPPPerZ6 -o 1.pdf- 使用命令open hh.pdf 打開pdf文件,此處open的用法是Linux自帶功能,和ipfs無關
docx
mp3?
?jpg
mp4
上傳整個文件夾
- 此處上傳的整個文件夾里面的文件和先前測試使用的是相同的文件,所以他們的哈希值是一致的,這個就是ipfs要求的避免相同的文件被用戶上傳多次。
查看上傳的文件中包含的子文件
查看被引用的hash
- 被引用的hash概念:一般指文件夾下面有多少個文件,這個文件夾的名稱就被引用多少次,hash就是應用該文件名的文件hash
如果上傳的是一個文件夾,那么將文件夾拉回到本地,里面的文件是正常的存儲格式,無需進行格式轉化?
?進入web可視化界面,將哈希序列輸入到搜索框,進行文件的查詢,如果文件不支持預覽,需要點擊downloading進行下載查看
發(fā)現(xiàn)的問題
- ?使用root用戶和普通用戶,使用ipfs id查看自己的節(jié)點信息,還不一樣。
?而且,這兩個節(jié)點之間還不能互相交換文件,不隸屬于同一個集群。
參考鏈接
- 使用ipfs完成一個圖片上傳的案例?
- IPFS:分布式文件存儲
- IPFS
總結
以上是生活随笔為你收集整理的演示IPFS的一个完整的流程以及针对部分概念的详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学建模 匈牙利算法求解整数规划基本原理
- 下一篇: 计算vCPU数量 依据公式