日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

演示IPFS的一个完整的流程以及针对部分概念的详解

發布時間:2023/12/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 演示IPFS的一个完整的流程以及针对部分概念的详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整體的流程

1,創建ipfs節點

  • 通過ipfs init在本地計算機建立一個IPFS節點
  • 本文有些命令已經執行過了,就沒有重新初始化。部分圖片拷貝自先前文檔,具體信息應以實物為準
$ ipfs init initializing IPFS node at /Users/CHY/.ipfs generating 2048-bit RSA keypair...done peer identity: QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP to get started, enter:ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readme$ cd ~/.ipfs $ ls blocks datastore version config keystore $ open ./
  • 執行ipfs init初始化節點之后,會生成一個.ipfs的文件夾,用于存儲相關的信息,比如節點ID、環境配置信息、數據存儲等
  • 如果使用的是MAC電腦,使用shift+command+. 可以查看隱藏文件

  • 通過ipfs id查看創建的節點id的信息

2,啟動節點服務器?

  • 使用命令ipfs daemon啟動節點服務器
  • 一旦啟動當前界面會處于監聽狀態,需要新建標簽頁

3,簡單驗證

  • ?使用如下命令,進行簡單測試

ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme

  • 瀏覽器輸入下面的網址:http://localhost:5001/webui會看到一個漂亮的UI界面

?相關問題詳解

ipfs的存儲位置

  • IPFS的數據存儲,個人用戶的數據存儲在自己個人的硬盤上,也就是本地硬盤存儲。存儲后,會在IPFS網絡廣播,“我存儲哈希為Qm...的數據了”,因為哈希的唯一性,如果數據的分割方法一定,那么同樣的數據在網絡存儲中只會有一份,也就是只在本地節點存儲。當有用戶檢索該數據時,檢索數據的hash值就是key,節點會首先在DHT表(key/value存儲)中查詢有無該key,如果沒有,到與key異或距離最近的K桶里查找,如果該K桶中的某個節點有key對應的value則返回,否則返回它認為存有value值的最可能節點,以此遞歸,最終找到key對應的value。然后請求節點與value(也就是節點ID)建立連接,并請求數據,同時將該key/value鍵值對存儲到自己的DHT表中。請求節點將接收到的數據存儲到ipfs緩存中,數據檢索成功。該請求節點在緩存數據有效期內,同樣可以為ipfs網絡,提供該數據,作為原始數據的備份。

ipfs的冗余備份措施

  • IPFS采用了Erasure coding的冗余備份措施,集群中有n份原始數據和m份校驗數據,即共有n+m份備份數據。

修改節點默認存儲空間

  • ipfs節點默認存儲空間為10個G

方式一:可打開終端執行下面的命令

export EDITOR=/usr/bin/vim ipfs config edit
  • 找到下圖使用紅色的框標定的內容,修改自己想要的大小
  • PS:輸入i可以開始編輯,編譯完畢后按esc鍵,再輸入:,再次輸入wq保存并且退出?

方式二 采用web界面進行修改

  • 修改對應的信息,然后點擊保存

ipfs的節點掉線,對于整個組織的影響

  • IPFS的容錯機制會保證數據被復制了足夠數量并存放在不同的地區,即使某一個地方的數據由于不可抗力的因素被完全銷毀,通過其他地區的備份也可以實現完整恢復數據,極大的保證了存儲在IPFS上的數據的安全性
  • 采用MerkleDAG,因為它具有以下特點:1.內容可尋址:所有內容都是被多重hash校驗和來唯一識別的,包括links。2.無法篡改:所有的內容都用它的校驗和來驗證。如果數據被篡改或損壞,IPFS會檢測到。3.重復數據刪除:重復內容并只存儲一次。
    在IPFS網絡中,數據的存儲可能是有重復的。重復的數量與用戶上傳的時候采用的IPFS進行分塊的方法有關。
  • 之前提到過數據在IPFS存儲是以塊的形式存儲的。在ipfs提供的數據分割方式有很多種。在ipfs源碼種core/commands/add.go代碼中描述了切割的方法:
  • 默認模式,塊的大小是256kb,也就是256 * 1024 bytes,對應的size=262144。命令不需要加參數,即ipfs add 文件。
  • 指定塊大小模式。命令是ipfs add --chunker=size-1000。其中后邊的1000可以是任意小于262144的數。
  • rabin可變塊大小切割模式。命令是ipfs add --chunker=rabin-[min]-[avg]-[max] 文件。其中min,avg,max的值分別值最小塊大小,平均塊大小,最大塊大小的意思,值在小于262144自行設定。
    ?
  • The chunker option, '-s', specifies the chunking strategy that dictates how to break files into blocks. Blocks with same content can be deduplicated. The default is a fixed block size of 256 * 1024 bytes, 'size-262144'. Alternatively, you can use the rabin chunker for content defined chunking by specifying rabin-[min]-[avg]-[max] (where min/avg/max refer to the resulting chunk sizes). Using other chunking strategies will produce different hashes for the same file.> ipfs add ipfs-logo.svg> ipfs add --chunker=size-2048 ipfs-logo.svg> ipfs add --chunker=rabin-512-1024-2048 ipfs-logo.svg
    • 同一個文件存儲在ipfs中,因為存儲是選用的文件切割方法不同,返回的hash值卻不一樣。所以說IPFS的塊存儲沒有重復的,而IPFS塊文件拼湊的數據可能有重復的。也就是說同一個文件可以根據不同的文件切割方法在IPFS網絡中重復的存儲多次
    • 備份是如何實現的呢?假如一部非常火的電影,大家都習慣性的將該電影存儲到自己的電腦E盤或其它硬盤存儲中,全世界如果有1億的人存儲了這個電影,這不是對存儲的極大浪費嗎?在ipfs網絡中,該電影只被存儲在一個節點中,當有用戶需要讀取的時候,會產生新的備份。就是誰使用數據,這個數據就會復制到誰那里。當一個節點加入IPFS網絡時,這個節點會提供一部分硬盤空間(缺省為10G,可以配置)給整個網絡使用。那么通常情況下,在存儲文件的時候,您自己提供的這部分硬盤空間總是最快的,因為不需要跨網。當存儲完畢后,網絡上任意節點都可以訪問這個文件。當另一個節點訪問的時候,那個節點往往會復制一份您的數據到他的緩存空間。這樣整個網絡中就有兩份拷貝了。試想,當有很多人對這個文件感興趣,那么網絡中的拷貝數會越來越多。
    • 需要提出的是:拷貝一般都是緩存,也就是說是臨時存儲的。時間一長就被自動刪除掉了。這種臨時緩存非常好地解決了分布式數據分發的問題,比如說一個社會熱點往往呈現出預熱期、火熱期和退潮期等階段,利用IPFS,數據的分布和拷貝數與這些時期是完全匹配的。訪問的人越多,拷貝數就越多,但熱度下來了,拷貝數就會降下來,從而自然地實現空間利用率和存取效率的平衡。如果想讓這個文件永久存儲,那么必須將其設為固定的樣式,即存儲在硬盤中。

    ipfs的使用

    上傳txt文件

    ?上傳其他格式的文件

    • pdf
    • docx
    • jpg
    • mp4
    • mp3

    注意事項

  • 對于下載的文件需要進行格式的準換,否則不可用。這個轉化的方式可以手工進行轉化,也可以使用命令的方式。
  • 也可以指定下載的文件名稱,加上-o 文件名,也可以加上-a : 壓縮成.tar格式,-C :壓縮成.gz格
  • 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進行下載查看

    發現的問題

    • ?使用root用戶和普通用戶,使用ipfs id查看自己的節點信息,還不一樣。

    ?而且,這兩個節點之間還不能互相交換文件,不隸屬于同一個集群。

    參考鏈接

    • 使用ipfs完成一個圖片上傳的案例?
    • IPFS:分布式文件存儲
    • IPFS

    總結

    以上是生活随笔為你收集整理的演示IPFS的一个完整的流程以及针对部分概念的详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。