IPFS 的 PYTHON API 參考手冊:https://www.cnblogs.com/yoyo1216/p/13489699.html
ipfs cli 手冊 (中文版):https://blog.51cto.com/u_9152644/5958171
IPFS 安裝及基礎操作(存儲目錄):https://www.superc.xyz/2018/02/28/ipfs/
一、介紹
1:星際文件系統 (InterPlanetary File System). IPFS 是一個分佈式的 web, 點對點超媒體協議。可以讓我們的互聯網速度更快,更加安全,並且更加開放。IPFS 實際上就是一個分佈式文件系統。
2:互聯網基於 HTTP 協議的,是中心化的,低效,成本也高。
使用 HTTP 協議每次需要從中心化的伺服器下載完整的文件 (網頁,視頻,圖片等), 速度慢,效率低。
IPFS 採用 P2P 方式,基於內容尋址(非域名尋址),文件(內容加密的哈希值)具在唯一的存在性,大大減少文件存儲的冗餘。可以節省大量的帶寬。且將文件分割為小的塊,從多個伺服器同時下載,而且就近下載 ,速度非常快。
IPFS 網絡上運行著一條區塊鏈,用來存儲互聯網文件的哈希表,每次有網絡訪問,就在鏈上查看該內容(文件)的地址。
3:Web 文件經常被刪除
http 的頁面的 eb 文件經常被刪除 (由於存儲成本太高), 無法永久保存。所以經常會出現收藏的網址無法打開,404 錯誤。
而 IPFS 文件可以在多個節點永久保存,並且提供了文件的歷史版本回溯功能 (像 git 版本控制工具一樣), 可以很容易的查看文件的歷史版本。
4:我們的現有互聯網是一個高度中心化的網絡。而分佈式的 IPFS 是一個去中心化的網絡,可以克服 web 的一些(如:高度依賴互聯網主幹網、互聯網封鎖,管制,監控,中心化伺服器宕機等)缺點。
4、IPFS 應用意義
可以為內容創作帶來一定的自由。
代表應用:Akasha Akasha( https://blog.akasha.world)是一個基於以太坊和 IPFS 的社交博客創作平台,使用者創作的博客內容通過一個 IPFS 網絡進行發布,而非中心伺服器。 同時,使用者和以太坊錢包帳戶進行綁定,使用者可以對優質內容進行 ETH 打賞,內容創作者能以此賺取 ETH,如同人腦挖礦一樣。它沒有太多監管的限制,也沒有中間商抽成,內容收益直接歸創作者所有。
可以降低存儲和帶寬成本。
代表應用:Dtube Dtube(https://d.tube)是一個搭建在 Steemit 上的去中心化視頻播放平台,其使用者上傳的視頻文件都經過 IPFS 協議進行存儲,具有唯一標識。相較於傳統視頻網站,它降低了同資源冗餘程度,同時大大節約了海量使用者在播放視頻時所產生的帶寬成本。
可以與區塊鏈完美結合。
代表應用:EOS 運用 IPFS 技術解決存儲瓶頸是目前來看的過渡方案,最典型的應用就是 EOS。EOS 引以為傲的是可以支持百萬級別 TPS 的並發量,其中除了 DPOS 共識機制的功勞之外,還歸功於其底層存儲設計是採取 IPFS 來解決大型數據的傳輸效率。
EOS 將自己打包好的區塊數據通過 IPLD 進行異構處理,統一成一種便於內容尋址的數據結構類型,並掛載到 IPFS 的 link 上,讓 IPFS 網絡承擔存儲和 P2P 檢索的邏輯,而不消耗 EOS 區塊鏈系統本身太多的計算資源。
可以為傳統應用提供分佈式緩存方案。
二、環境搭建
1:官網(dist.ipfs.io/#go-ipfs)下載安裝最新對應的 go-ipfs
安裝(為方便先安裝預編譯二進制 ipfs)
下載最新(已編譯)包#
wget https://dist.ipfs.io/go-ipfs/v0.6.0/go-ipfs_v0.6.0_linux-amd64.tar.gz
解壓#
tar -zxf go-ipfs_v0.6.0_linux-amd64.tar.gz
安裝#
cd go-ipfs
dir
sudo ./install
驗證#
which ipfs
ipfs --help
ipfs version
配置運行 ipfs#
初始化節點 在命令行執行 ipfs init#
$ ipfs init
初始化時會默認初始化在你的用戶目錄下新建一個.ipfs 生成你的節點 id:如:QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv#
$ export IPFS_PATH=/ipfs
vim /lib/systemd/system/ipfs.service#
加上:Environment=export IPFS_PATH=/ipfs # 設置 IPFS 目錄
修改 IPFS 默認目錄,此時我們將目錄放在 /ipfs 下 https://www.superc.xyz/2018/02/28/ipfs/#
查看安裝情況#
$ ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
啟動守護進程運行 ipfs 節點上線#
$ ipfs daemon
查看 ipfs 連接的節點#
$ ipfs swarm peers
三、上傳下載
ipfs 提供了兩種方式對文件進行操作
1)weiui 方式
可以進入 ipfs daemon 所在的主機,通過瀏覽器輸入 localhost:5001/ipfs/webui 進入瀏覽器文件操作頁面添加文件
2)命令行方式
新建文件 1.txt,內容為:123456789#
上傳 1.txt#
ipfs add 1.txt
返回文件 hash 值,通過它可以找到這個文件#
通過 hash 查看 1.txt#
ipfs cat 文件 hash 值
下載 1.txt 下載到當前目錄下,且文件名為默認為 hash 值#
ipfs get 文件 hash 值
上傳圖片#
$ ipfs add ly.jpg
下載圖片#
$ ipfs cmp /ipfs/QmaYQaCwxg8pK9Z5QQC8vrb1hdBC5nV8YFGwGNVNQ3fWka > after.jpg
和原來的圖片對比 就是原來上傳的那個文件了#
$ cmp ly.jpg after.jpg
也可以直接在部署運行 ipfs daemon 的機器上的瀏覽器查看:#
http://127.0.0.1:8080/ipfs/QmaYQaCwxg8pK9Z5QQC8vrb1hdBC5nV8YFGwGNVNQ3fWka
IPFS 建一個靜態網站#
上傳網站目錄#
cd D:\Works\ipfs_file
ipfs add -r ipfs-qkw
返回信息的最後部分,即 hash QmNpRuzmmucd5sDoC7fjfZRgo2mnaXb35hpsLQf77A96xu,就是訪問的入口
https://ipfs.io/ipfs/QmYaGz9ChV3PcRuz3Zmr8XP34gxAe2gunZdtM7sKhDMqUS
使用 ipfs cat 命令,後邊跟的是文件路徑,操作如下:
ipfs cat QmNmGoyiFpaHx1tra4zNL2iZHAfj8JM7gETjk2hZWVGWXi/ipfs-tutorial/new/newfile
四、常用指令
https://docs.ipfs.io/reference/cli/#ipfs
五、JS HTTP client library
https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-http-client#getting-started
USE HTTP API reference
https://docs.ipfs.io/reference/http/api/#getting-started
六、IPFS 電影資源
神秘巨星:QmWBbKvLhVnkryKG6F5YdkcnoVahwD7Qi3CeJeZgM6Tq68
芳華:QmYVri7jyBdPyfR8AgBLTgyTjiJifCgpeHFiFrKxowQeq8
https://gateway.ipfs.io/ipfs/QmYVri7jyBdPyfR8AgBLTgyTjiJifCgpeHFiFrKxowQeq8
大佛普拉斯:QmdpR9iP9EhUg1rmduHqwA4ddyHNMcsR8t9saXA9BmMU4t
看不見的客人:QmYWwXkgjdhMps9mB6DyEp4zSFmDQ9U6SuqGRGovEycr49
勇往直前:QmZRJevYhADpXmCGGF6eCcP1afNEYFahDW5jxje3iyyCJS
至暗時刻:QmUPvs7iyM5ZWPQwDovRqvNzxMJHSUWNRWAWRkAsseVcvs
銀翼殺手 2049:QmcUHdzKgRrcJrD5Ah46HgBHF7urWDhmAnLKYwcHaLgeGP
盜夢空間:QmQATmpxXvSiQgt9c9idz9k3S3gQnh7wYj4DbdMQ9VGyLh
獅子王:QmfHGQZNQNymHDC6b7TZjgGbh962VWQQN5oV92w9jHE4qt
祖宗十九代:QmbrwEH4AEQhUN929yPy4j5B2PfQYk3JJyG8iq7HVoXbia
瘋狂動物城:QmUKaQwN2ppapUEFhbHsKoVXn2yBRM7mLpu5HQv9am7dB7
彩繪心天地:QmXg1c6qPtoQAyfrXrWnuDrUgFehnt4kLvv1hxheMUeFBC
肖申克的救贖:QmRUYeMkvirV4frGX8wcntCq6x5GqDixAjZnFj5Jg1E3qj
太空旅客:QmdxpUVnvFnert9nmEkzwwz2tWdavU3fUQzrgBsTZP5yyG
ipfs video player:https://github.com/download13/ipfstube
http://www.ipfs.guide
https://bbs.ipfs.guide/t/Resources