IPFS介紹 - 星際檔案系統
IPFS(InterPlanetary File System)是一種分佈式的文件系統,旨在建立一個更快、更安全和更開放的互聯網。
https://youtu.be/5Uj6uR3fp-U?si=LLShkmZ5JBewmt6Q
IPFS的主要特點
分佈式存儲
資料不是儲存在單一的伺服器上,而是分佈在全球許多節點上。這種方法提高了資料的冗餘度和可靠性。
內容尋址
IPFS 使用內容尋址(Content Addressing)來存取資料,而不是傳統的基於位置的尋址方法。每個文件都有一個唯一的哈希值作為其地址。
版本控制
類似於Git,IPFS 支援資料的版本控制,這意味著每個文件的更改都可以被跟蹤和還原。
點對點網絡
IPFS 使用點對點(P2P)技術,允許用戶直接連接並共享資源,而不需要依賴中央伺服器。
去中心化
IPFS 的架構去除了對中心化伺服器的依賴,減少了單點故障的風險,並且提高了資料的可用性和抗審查性。
IPFS 的主要用途
網站託管
通過IPFS,網站可以以去中心化的方式託管,不再依賴單一伺服器,從而提高網站的穩定性和安全性。
分佈式應用程式(dApps)
IPFS 常被用於支援去中心化應用程式,這些應用程式需要一個可靠的分佈式存儲解決方案。
大文件共享
由於其高效的分塊和分發機制,IPFS 非常適合用來共享和存儲大文件。
實際操作
設定與啟動
建立一個ipfs_test資料夾,結構如下。
1 | ipfs_test |
staging 是準備要放即將要 export 出去的檔案的地方。
使用 docker 拉go-ipfs image 啟動,並指定檔案 export 的路徑。
1 | export ipfs_staging=/absolute/path/to/<staging的資料夾>/ |
:::warning
這邊我有遇到錯誤訊息
這個錯誤訊息表明在WSL 2中無法找到docker命令,這可能是因為Docker Desktop尚未與WSL 2整合或安裝。
要在WSL 2中使用Docker Desktop,需要先啟用WSL整合。請按照以下步驟操作:
1.打開Docker Desktop。
2.點擊左上角的Docker圖標,選擇”Settings”。
3.在”Resources”->”WSL integration”部分,勾選”Enable integration with my default WSL distro” 並且也把”Ubuntu-20.04”這邊的開關打開。
4.點擊”Apply & Restart”來應用更改。
完成這些步驟後,Docker Desktop將啟用WSL 2整合並重啟。然後,你應該能夠在WSL 2中使用docker命令來運行容器。
:::
如果要監看 logs,可以下:
1 | docker logs -f ipfs_host |
進入 container 做事:
1 | docker exec -it ipfs_host /bin/sh |
這邊可以發現開啟了3個docker
啟動後可以查看介面
將檔案上傳至 IPFS
進入 container 後,把檔案(這裡以 測試檔案 xlsx 為例)丟到本地的 staging 資料夾,下 export指令把它上傳到 ipfs 並取得 hash 值。
1 | docker exec -it ipfs_host /bin/sh |
上傳完後會取得 ipfs-hash
1 | added QmaEa7JhzR6qpFZpRNRecKsAsf1tqzAJKktXxQ6tE4iTPf export/test0050.xlsx |
用 ipfs-hash 去查看檔案
查看剛剛丟的檔案:
1 | ipfs cat /ipfs/QmaEa7JhzR6qpFZpRNRecKsAsf1tqzAJKktXxQ6tE4iTPf |
也可以從這邊查看 http://127.0.0.1:8080/ipfs/QmaEa7JhzR6qpFZpRNRecKsAsf1tqzAJKktXxQ6tE4iTPf
這邊會直接下載下來
其他常用指令
1 | # 查看 log |
把 node 連結到 IPFS network
查詢自己的 id
1 | ipfs id |
介面這邊也可以查看到節點ID
尋找其他的 peers
1 | ipfs swarm peers |
圖形化介面查看方式:
查看別人的檔案
可以透過自己的 IPFS 節點造訪別人的檔案內容。我們來看看被 IPFS 團隊放上 IPFS 網絡的土耳其文維基百科 snapshot!
1 | ipfs cat Qme2sLfe9ZMdiuWsEtajWMDzx6B7VbjzpSC2VWhtB6GoB1/wiki/Peer-to-peer.html |
查看土耳其文維基百科部分的檔案:
1 | ipfs ls Qme2sLfe9ZMdiuWsEtajWMDzx6B7VbjzpSC2VWhtB6GoB1/wiki/Anasayfa.html |
IPFS 操作介面
首頁
檔案
瀏覽
用戶群
設定
這邊我發現實際操作已經跟教學文章比較起來有更新很多畫面了。
後記
這一篇是我在網路上看到這篇教學文章
https://medium.com/wenchin-rolls-around/%E8%A9%A6%E7%8E%A9-ipfs-a69a52abb954
跟著實際操作的紀錄,這邊有官方介紹文件 https://docs.ipfs.tech/concepts/usage-ideas-examples/ 有興趣可以繼續研究,另外還有其他人開發的 IPFS 相關應用 https://github.com/ipfs/awesome-ipfs