IPFS是一種分布式存盤系統,保存在IPFS系統里的檔案具有以下特點:
不可洗掉也不可修改
理論上會永久儲存
歷史記錄會永久保存 (這是由前兩個特點自然得出的)
如果一份檔案十分冷門,這個檔案可能會從IPFS消失,
IPFS自身并不儲存檔案,上傳至IPFS的檔案實際上是被分塊保存在節點上,剛上傳時,文 件會被分塊保存在當前節點上(也就是運行IPFS行程的主機),當有其他節點請求并下載 這個檔案后,這個檔案會被這些節點快取,如果一份檔案十分冷門,導致所有節點快取的 資料塊拼在一起也無法重建完整檔案時,這個檔案也就從IPFS系統里消失了,
如何上傳檔案到IPFS
IPFS和Filecoin是有區別的,IPFS是一個免費的全球檔案系統,拿迅雷下載器做例子,你運行了迅雷,就成為了全球p2p的一個節點,你從別人那下載東西,別人也從你這下載東西,只是可能慢點,不穩定一點, Filecoin相當于收費版的迅雷,內建了代幣激勵機制,提供好的帶寬和存盤獲得代幣,下載檔案需付出代幣,有了激勵,就有人提供更好的服務,這個檔案系統就會更加的快和穩定,
如何上傳檔案到IPFS呢,我試驗了一下,以Windows為例,步驟如下:
1、到這下載IPFS執行程式,并解壓縮到一個檔案夾里,比如d:\ipfs
https://dist.ipfs.io/#go-ipfs
2、 打開cmd命令列,執行兩個命令
初始化:ipfs init
運行節點:ipfs daemon
3、上傳與下載檔案,有兩種方式
1)web方式,用瀏覽器打開下面的網址,然后就可以上傳,下載自己的檔案了
http://localhost:5001/webui
2)cmd命令列方式
因為原來的cmd視窗運行IPFS節點了,需要新打開一個cmd視窗,
上傳檔案 d:\ipfs add filename.txt 會得到一個hash值
現在的web界面用戶體驗不太好,只能上傳單個檔案,檔案上傳以后,檔案串列里會增加一個哈希值,也沒后綴名,檔案多了以后恐怕很難找得到,
可以在本地建立一個目錄,把想上傳的檔案放到這個目錄里,然后用cmd命令將目錄整體上傳,這個目錄會得到一個哈希值,目錄里面的檔案就可以直接用檔案名了,
比如我建了一個目錄叫做 my, 里面放了一個圖片go.jpg,執行下列命令上傳整個目錄,
D:\ipfs>ipfs add -r my
4,得到你的檔案的網址
檔案上傳以后會得到一個哈希值,訪問你的檔案的網址如下,
https://ipfs.io/ipfs/哈希值
目錄上傳以后也會得到一個哈希值,訪問你的目錄里的檔案網址如下,
https://ipfs.io/ipfs/哈希值/檔案名
比如我上傳的go.jpg檔案的網址就是,
https://ipfs.io/ipfs/QmdQaC35hfGe2Xt6LxteUQLGsMXkxsW7pF4hgat9UndTko/go.jpg
如果往目錄添加或修改了目錄里的檔案,此時目錄的Hash值會變化,用戶需要使用新的ID才能訪問更新后的目錄或檔案,這對于網站部署來說是十分不便的,為了解決這個問題IPFS提供了IPNS服務,可以將一個唯一ID系結到IPFS的Hash上,通過這個唯一ID訪問IPFS檔案/檔案夾,
使用ipfs name publish 目錄hash值 命令進行系結操作. 回傳哈希值,
其中的Qm...就是上傳目錄時回傳的Hash值,回傳的k2...就是IPNS ID,對于同一個節點來說默認情況下是相同的,我們可使用這個ID生成新的訪問鏈接:
https://ipfs.io/ipns/k2k4r8osxpzc36zwtdx18jgo1ovo3djhbne0y4tqh1ndgxollubumapu
檔案是直接支持輸入ipfs網址顯示內容的,這真是很方便,
最后需要提醒大家的是,檔案上傳以后就永久存在了,所以上傳之前三思而后行,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/297353.html
標籤:區塊鏈
上一篇:ETH早間行情分享
