IPFS和Docker

使用IPFS,您可以共享文件而無需諸如Dropbox,Google Drive和Co之類的集中式產品。這意味著您不需要帳戶,沒有大小或帶寬限制...

它使共享文件方便且非常安全。實際上,用戶無法在提交文件後修改文件。這是由於IPFS使用內容本身的哈希而不是url引用內容。本文簡要介紹了什麼是IPFS,並感謝Docker展示瞭如何安裝和使用它。

請記住,IPFS不會加密任何內容。如果您在IPFS上共享機密,並且有人幸運地猜到數據的哈希值,那麼他們將訪問您的機密。您可能會然而,在IPFS內容共享是加密。


IPFS簡介

IPFS與在線文件共享解決方案

讓我們以Dropbox為例。我可以與您共享一個內容為http://somedropboxlink.com/myfile.pdf的文件。與您共享此文件後,我可以自由修改內容。該鏈接將保持有效,但下載文件時獲得的內容將取決於下載時間。如果您考慮某種合同協議,這不是一個好選擇。

使用IPFS,情況有所不同。通過IPFS共享文件時,可以確保從給定鏈接獲得的內容始終完全相同。與您共享合同後,我再也無法將更改潛入合同了:)

使用IPFS網關

您不需要安裝任何內容即可查看和從IPFS網絡檢索文件。這要歸功於https://ipfs.io上託管的IPFS網關。

在瀏覽器中打開此鏈接將完全顯示以下內容:

<code>Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗ ███████╗
██║██╔═══╝ ██╔══╝ ╚════██║
██║██║ ██║ ███████║
╚═╝╚═╝ ╚═╝ ╚══════╝

If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!

-------------------------------------------------------
| Warning: |
| This is alpha software. Use at your own discretion! |
| Much is missing or lacking polish. There are bugs. |
| Not yet secure. Read the security notes for more. |
-------------------------------------------------------

Check out some of the other files in this directory:

./about
./help
./quick-start ./readme ./security-notes/<code>

恭喜!您剛剛使用了IPFS!


當我說正好,這個時候它不會當你打開URL依賴。從現在開始的10年後,打開此IPFS鏈接時,內容將不再可用,或者如果可用,則完全相同。

如果有人修改內容,即使是很小的更改(例如添加空格),它也會修改您在URL末尾看到的哈希。因此,原始內容在原始URL(主要是IPFS哈希)上仍然可用,而新內容在NEW URL(=新IPFS哈希)上可用。

資料可用性

您可能想知道為什麼數據將不再可用?

IPFS是對等網絡。當您請求文檔時,您的對等方(或使用上面的鏈接時為IPFS網關)正在詢問對等方是否有人擁有內容。如果是,則您的同伴將獲取它,將其保留一段時間,然後將其退回。如果您再次需要此內容,則您的對等方將已經擁有它(一段時間,具體取決於節點的配置)。

如果沒有對等方具有與哈希匹配的內容,則不會返回任何數據。由同齡人決定什麼是“有趣的內容”以及保留多長時間。

有一種方法可以告訴您的IPFS節點PIN數據。這意味著我們告訴節點某些數據很重要,並且我們希望將其永久保存,以便通過網絡保持可用。


使用IPFS

如今,有一種使用IPFS的非常簡單的方法。您可以從下面的鏈接下載IPFS桌面:https ://github.com/ipfs-shipyard/ipfs-desktop/blob/master/README.md

這將在您的計算機上安裝IPFS節點,以及一個允許您與該節點進行交互的小實用程序。這使得使用IPFS非常簡單。

安裝此實用程序後,您可以通過簡單的拖放操作將文件“添加到IPFS”。該實用程序甚至允許您將屏幕截圖自動添加到IPFS。那可以方便!

但是請記住,只有您的計算機和IPFS節點可用時,您共享的任何文件才可用。如果關閉計算機電源,並且沒有其他對等方擁有您的數據,則在您的節點重新聯機之前,人們將不再能夠訪問您的內容。

因此,在運行24/7的服務器上運行IPFS可能很有趣。


運行IPFS節點24/7

在24/7可用的服務器上運行IPFS非常有價值。首先,您要提供的所有內容將始終可用。但是,您還可以通過提供一些受歡迎的內容來為網絡做出貢獻和幫助。

使用Docker的IPFS

關於Docker的一句話

我的博客上與Docker相關的文章數量正在迅速增長,因為Docker可以非常直接地運行任何服務,尤其是如果您要進行測試的話。

如您在此處看到的,在新服務器上安裝IPFS確實需要一些步驟:https : //ipfs.io/ipfs/QmR7tiySn6vFHcEjBeZNtYGAFh735PJHfEMdVEycj9jAPy/docs/install/

注意

IPFS文檔已經很好地存儲在IPFS上了!

簡而言之,您將需要安裝一些GOLANG東西,對系統進行一些調整,告訴IPFS守護程序作為服務啟動,注意訪問權限等....我不確定您的身份,但是我很少有時間或時間。耐心地處理所有這些...

在服務器上安裝Docker也需要幾個步驟,但是一旦完成,Docker確實使其變得更加簡單。

這是在服務器上運行IPFS節點並訪問在ipfsDocker容器內運行的命令的方法。

使用Docker安裝IPFS

首先,您需要使用來連接到服務器ssh。

現在,我們將創建2個文件夾。我知道您討厭複製/粘貼,因此在這裡僅一行:

<code>mkdir -p $ HOME / ipfs / staging; mkdir -p $ HOME / ipfs / data/<code>

如果您tree的系統上有該命令,它將顯示:

<code>  $ tree -d -L 1 $ HOME / ipfs  / home / will / ipfs  ├──數據  └──分期
2個目錄/<code>

現在我們準備好使用docker部分。儘管這一行更長了一點,但它也相當簡單,只要正確安裝了Docker,您就應該有問題:

<code>docker run -d --name ipfs -v $ HOME / ipfs / staging:/ export -v $ HOME / ipfs / data:/ data / ipfs -p 4001:4001 -p 127.0.0.1:8080:8080 -p 127.0。0.1:5001:5001 ipfs / go-ipfs:latest/<code>

而已!我們完成了:) IPFS現在正在運行。

但是我們如何使用它呢?我可以給你一些碼頭工人命令來執行此操作,但這會比較長且乏味。讓我們做一個別名,使事情變得容易得多。我正在為我的別名命名dipfs(對於docker-ipfs),因為ipfs我的系統上有一箇舊命令。如果不這樣做,則可以在以下命令中替換dipfs為ipfs:

<code>別名dipfs ='docker exec ipfs ipfs'/<code>

為了使該別名持續存在,您需要將其添加到中.bashrc。這是另一種形式:

<code>echo“ alias dipfs ='docker exec ipfs ipfs'” >>〜/ .bashrc; 來源〜/ .bashrc/<code>

現在,我們可以使用新命令了。讓我們help首先檢查命令:

<code>$ dipfs-幫助用法  ipfs-全局p2p merkle-dag文件系統。 

概要 ipfs [--config = <config> | -c] [--debug | -D] [--help] [-h] [--api = ] [--offline] [--cid-base = <base>] [--upgrade-cidv0-in-output] [- -encoding = | --enc] [--timeout = ] ...
選項
-c,--config字符串-要使用的配置文件的路徑。 -D,--debug bool-在調試模式下運行。 --help bool-顯示完整的命令幫助文本。 -h bool-顯示命令幫助的簡短版本 文本。 <...>
退出狀態
CLI將以下列值之一退出:
0成功執行。 1執行失敗。
有關每個命令的更多信息,請使用: 'ipfs <subcmd>-幫助'/<subcmd>
/<config>/<code>

注意

文檔中提到ipfs。就我而言,是dipfs。

現在讓我們獲取一些內容:

<code>  $ dipfs cat QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG / readme  您好,歡迎使用IPFS!
██╗██████╗████████████████╗ ██║██╔══██╗██╔════╝██╔════╝ ██║██████╔╝█████╗████████╗ ██║██╔═══╝██╔══╝╚════██║ ██║██║██║████████║ ╚══════╝
如果看到此消息,則說明您已成功安裝 IPFS,現在正在與ipfs merkledag連接!
-------------------------------------------------- ----- | 警告: | 這是Alpha軟件。自行決定使用!| | 很多東西缺失或缺乏拋光。有錯誤。| | 尚不安全。閱讀安全說明以獲取更多信息。| -------------------------------------------------- -----
檢出此目錄中的其他一些文件:
。/關於 。/救命 ./quick-start /<code>

現在,讓我們將其中一個文件添加到IPFS。對於示例,我們將生成一個文件。由於IPFS有效地重複數據刪除,因此添加“ Hellow World”將毫無用處,因為有人可能已經這樣做了。因此,您不會在IPFS中添加新內容。相反,我們將使用當前日期作為內容,這應該足夠公平:

<code>  $ echo`date`> ipfs / staging / myfile.txt  $ dipfs添加/export/myfile.txt; rm ipfs / staging / myfile.txt  添加了QmYbdWGwaGjDMzSHDQygAXZsQA559cqesUz19DKgwSfwkt myfile.txt  29 B / 29 B 100.00%/<code>

注意

在此示例中,我們正在添加一個文本文件,但是您可以添加PDF,整個視頻,...任何內容...

注意

請注意,我們還有一些額外的工作將文件放置在特定的位置(容器即容器)

您可能會使用我們在本文開頭看到的IPFS桌面實用程序添加文件和內容。現在,讓我們看看如何固定添加到新服務器中的內容,使其繼續提供這些文件。

讓我們以IPFS哈希QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG為例。它可能是來自朋友或同事的數據,您想幫助使這些內容可用。

您可以使用IPFS桌面實用程序查看內容:

IPFS和Docker

圖1.瀏覽給定IPFS哈希的內容

檢查幫助

<code>$ dipfs pin-幫助用法  ipfs pin-將對象固定(和取消固定)到本地存儲。
概要 ipfs針
子命令 ipfs pin add <ipfs-path> ...-將對象固定到本地存儲。 ipfs pin ls [<ipfs-path>] ...-列出固定到本地存儲的對象。 ipfs pin rm <ipfs-path> ...-從本地刪除固定的對象 存儲。 ipfs引腳更新 -更新遞歸引腳 ipfs引腳驗證-驗證遞歸引腳是否 完成。
有關每個命令的更多信息,請使用: 'ipfs引腳<subcmd> --help'/<subcmd>/<ipfs-path>/<ipfs-path>/<ipfs-path>/<code>

將某些內容固定在您的節點上

<code>$ dipfs引腳添加QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG遞歸固定QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/<code>

結論

我們已經看到了如何使用IPFS桌面實用程序,這使使用IPFS變得輕而易舉。我們還看到了如何使用Docker在將運行24/7的服務器上安裝IPFS節點。

我們終於瞭解瞭如何將內容固定在服務器上,以便即使臺式機或筆記本電腦脫機,我們的內容仍然可用。


原文鏈接:https://www.chevdor.com/post/2020-03-docker-ipfs/



分享到:


相關文章: