

IPFS现在越来越广泛,本文为新的IPFS教程文:将IPFS部署在Docker!!!
使用 IPFS,您可以共享文件而无需诸如 Dropbox,Google Drive 和 Co 之类的集中式产品。这意味着您不需要帐户,没有大小或带宽限制...
它使共享文件方便且非常安全。实际上,用户无法在提交文件后修改文件。这是由于 IPFS 使用内容本身的哈希而不是 url 引用内容。本文简要介绍了什么是 IPFS,并感谢 Docker 展示了如何安装和使用它。
请记住,IPFS 不会加密任何内容。如果您在 IPFS 上共享机密,并且有人幸运地猜到数据的哈希值,那么他们将访问您的机密。但是,您可以在 IPFS 上共享您加密的内容。
让我们以 Dropbox 为例。我可以与您共享一个内容为:
http://somedropboxlink.com/myfile.pdf 的文件。与您共享此文件后,我可以自由修改内容。该链接将保持有效,但下载文件时获得的内容将取决于下载时间。如果您考虑某种合同协议,这不是一个好选择。
使用 IPFS,情况有所不同。通过 IPFS 共享文件时,可以确保从指定链接获得的内容始终完全相同。与您共享内容后,我不能再偷偷修改内容了。
您不需要安装任何内容即可查看和从 IPFS 网络检索文件。这要归功于 https://ipfs.io 上托管的 IPFS 网关。
在浏览器中打开此链接将完全显示以下内容:
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 <-- usage examples
./readme <-- this file
./security-notes这个时候它不会当你打开 URL 依赖。从现在开始的 10 年后,打开此 IPFS 链接时,内容将不再可用,或者如果可用,则完全相同。
如果有人修改内容,即使是很小的更改(例如添加空格),它也会修改您在 URL 末尾看到的哈希。因此,原始内容在原始 URL(主要是 IPFS 哈希)上仍然可用,而新内容在 NEW URL(=新 IPFS 哈希)上可用。
您可能想知道为什么数据将不再可用?
IPFS 是对等网络。当您请求文档时,您的对等方(或使用上面的链接时为 IPFS 网关)正在询问对等方是否有人拥有内容。如果是,则您的同伴将获取它,将其保留一段时间,然后将其退回。如果您再次需要此内容,则您的对等方将已经拥有它(一段时间,具体取决于节点的配置)。
如果没有对等方具有与哈希匹配的内容,则不会返回任何数据。由同龄人决定什么是“有趣的内容”以及保留多长时间。
有一种方法可以告诉您的 IPFS 节点 PIN 数据。这意味着我们告诉节点某些数据很重要,并且我们希望将其永久保存,以便通过网络保持可用。
如今,有一种使用 IPFS 的非常简单的方法。您可以从下面的链接下载 IPFS 桌面:
https://github.com/ipfsshipyard/ipfsdesktop/blob/master/README.md
这将在您的计算机上安装 IPFS 节点,以及一个允许您与该节点进行交互的小实用程序。这使得使用 IPFS 非常简单。
安装此程序后,您可以通过简单的拖放操作将文件“添加到 IPFS”。该程序甚至允许您将屏幕截图自动添加到 IPFS。
但是请记住,只有您的计算机和 IPFS 节点可用时,您共享的任何文件才可用。如果关闭计算机电源,并且没有其他对等方拥有您的数据,则在您的节点重新联机之前,人们将不再能够访问您的内容。
因此,在运行 24/7 的服务器上运行 IPFS 可能很有趣。
在 24/7 可用的服务器上运行IPFS非常有价值。首先,您要提供的所有内容将始终可用。但是,您还可以通过提供一些受欢迎的内容来为网络做出贡献和帮助。
如您在此处看到的,在新服务器上安装 IPFS 确实需要几个步骤:
https : //http://ipfs.io/ipfs/QmR7tiySn6vFHcEjBeZNtYGAFh735PJHfEMdVEycj9jAPy/docs/install/
注意:IPFS 文档已经很好地存储在 IPFS 上了!
简而言之,您将需要安装一些 GOLANG 东西,对系统进行一些调整,告诉 IPFS 守护程序作为服务启动,注意访问权限等....我不确定您的身份,但是我很少有时间或时间。耐心地处理所有这些...
在服务器上安装 Docker 也需要几个步骤,但是一旦完成,Docker 确实使其变得更加简单。
这是在服务器上运行 IPFS 节点并访问在 ipfsDocker 容器内运行的命令的方法。
首先,您需要使用来连接到服务器 ssh。
现在,我们将创建 2 个文件夹。我知道您讨厌复制/粘贴,因此在这里仅一行:
mkdir -p $HOME/ipfs/staging; mkdir -p $HOME/ipfs/data如果您tree的系统上有该命令,它将显示:
$ tree -d -L 1 $HOME/ipfs
/home/will/ipfs
├── data
└── staging
2 directories现在我们准备好使用 docker 部分。尽管这一行更长了一点,但它也相当简单,只要正确安装了 Docker,您就应该有问题:
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:latestIPFS 现在正在运行。
但是我们如何使用它呢?我可以给你一些 Docker 命令来执行此操作,但这会比较长且乏味。让我们做一个别名,使事情变得容易得多。我正在为我的别名命名dipfs(对于 docker-ipfs ),因为ipfs我的系统上有一个旧命令。如果不这样做,则可以在以下命令中替换dipfs为ipfs:
alias dipfs='docker exec ipfs ipfs'为了使该别名持续存在,您需要将其添加到中.bashrc。这是另一种形式:
echo "alias dipfs='docker exec ipfs ipfs'" >> ~/.bashrc; source ~/.bashrc现在,我们可以使用新命令了。让我们help首先检查命令:
$ dipfs --help
USAGE
ipfs - Global p2p merkle-dag filesystem.
SYNOPSIS
ipfs [--config=<config> | -c] [--debug | -D] [--help] [-h] [--api=<api>] [--offline] [--cid-base=<base>] [--upgrade-cidv0-in-output] [--encoding=<encoding> | --enc] [--timeout=<timeout>] <command> ...
OPTIONS
-c, --config string - Path to the configuration file to use.
-D, --debug bool - Operate in debug mode.
--help bool - Show the full command help text.
-h bool - Show a short version of the command help
text.
<... truncated ...>
EXIT STATUS
The CLI will exit with one of the following values:
0 Successful execution.
1 Failed executions.
For more information about each command, use:
'ipfs <subcmd> --help'注意:文档中提到ipfs。就我而言,是dipfs。
现在让我们获取一些内容:
$ dipfs cat QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
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 <-- usage examples
./readme <-- this file
./security-notes现在,让我们将其中一个文件添加到 IPFS。对于示例,我们将生成一个文件。由于 IPFS 有效地重复数据删除,因此添加“ Hellow World”将毫无用处,因为有人可能已经这样做了。因此,您不会在 IPFS 中添加新内容。相反,我们将使用当前日期作为内容,这应该足够公平:
$ echo `date` > ipfs/staging/myfile.txt
$ dipfs add /export/myfile.txt; rm ipfs/staging/myfile.txt
added QmYbdWGwaGjDMzSHDQygAXZsQA559cqesUz19DKgwSfwkt myfile.txt
29 B / 29 B 100.00%注意:在此示例中,我们正在添加一个文本文件,但是您可以添加 PDF,整个视频,...任何内容...
注意:请注意,我们还有一些额外的工作将文件放置在特定的位置(容器即容器)
您可能会使用我们在本文开头看到的 IPFS 桌面程序添加文件和内容。现在,让我们看看如何固定添加到新服务器中的内容,使其继续提供这些文件。
让我们以 IPFS 哈希:
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG为例。
它可能是来自朋友或同事的数据,您想帮助使这些内容可用。
您可以使用 IPFS 桌面程序查看内容:

图1:浏览给定IPFS哈希的内容
检查帮助
$ dipfs pin --help
USAGE
ipfs pin - Pin (and unpin) objects to local storage.
SYNOPSIS
ipfs pin
SUBCOMMANDS
ipfs pin add <ipfs-path>... - Pin objects to local storage.
ipfs pin ls [<ipfs-path>]... - List objects pinned to local storage.
ipfs pin rm <ipfs-path>... - Remove pinned objects from local
storage.
ipfs pin update <from-path> <to-path> - Update a recursive pin
ipfs pin verify - Verify that recursive pins are
complete.
For more information about each command, use:
'ipfs pin <subcmd> --help'将某些内容固定在您的节点上
$ dipfs pin add QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
pinned QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG recursively我们已经看到了如何使用 IPFS 桌面程序,这使使用 IPFS 变得轻而易举。我们还看到了如何使用 Docker 在将运行 24/7 的服务器上安装 IPFS 节点。
我们终于了解了如何将内容固定在服务器上,以便即使台式机或笔记本电脑脱机,我们的内容仍然可用。
End
非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。
FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用
公众号:filcloud