通过5个步骤部署专用IPFS网络

通过5个步骤部署专用IPFS网络

IPFS中国社区

人人都是节点

通过5个步骤部署专用IPFS网络

通过5个步骤部署专用IPFS网络

 

作者:Sander van Laar


IPFS(星际文件系统)是一种点对点分布式文件系统,以类似BitTorrent的方式存储和检索文件。 IPFS的默认安装方式是将您的计算机连接到全局分布式网络。在某些情况下(隐私,机密性),私有IPFS网络优先于连接到公共IPFS网络。

 

本文介绍在同一网络中的不同Ubuntu计算机上创建专用IPFS网络的步骤。确保他们可以相互联通。

 

不与公共网络建立连接,因此该专用网络上的所有数据只能由网络上的已知对等方访问。

 

对于Mac OS,安装步骤几乎相同,只需下载Mac版本的Go和IPFS即可。要在Windows上安装,您可以从Microsoft商店安装Ubuntu并按照以下步骤操作。

 

第1步 - 安装IPFS

 

开始安装

 

要安装最新版本的IPFS,首先需要从https://golang.org/doc/install安装Go。

 

通过5个步骤部署专用IPFS网络

 

将安装包下载到您的磁盘。然后将文件解压到/ usr / local,使用以下示例语句在/ usr / local / go中创建Go树。将下面的语句中的文件名更改为本地文件的名称。

 

sudo tar -C / usr / local -xzf go1.11.4.linux-amd64.tar.gz

 

通过执行以下命令将/ usr / local / go / bin添加到PATH环境变量:

 

export PATH = $ PATH:/ usr / local / go / bin

 

并将结果应用于

 

source $HOME/.profile

 

IPFS安装

 

要安装ipfs,请转到https://dist.ipfs.io/#go-ipfs并复制最新的go-IPFS的链接(见下图)。在撰写本文时,最新版本为Ubuntu版本v0.4.18。

 

通过5个步骤部署专用IPFS网络


运行以下命令(使用复制的链接将第三行和第四行更新为最新版本)。

 

sudo apt-get update

wget https://dist.ipfs.io/go-ipfs/v0.4.18/go-ipfs_v0.4.18_linux-amd64.tar.gz

tar xvfz go-ipfs_v0.4.18_linux-amd64.tar.gz

sudo mv go-ipfs / ipfs / usr / local / bin / ipfs

 

可选清理:

 

rm go-ipfs_v0.4.18_linux-amd64.tar.gz

rm -R ./go-ipfs

 

要验证您的安装,请键入

 

ipfs version

 

结果如下

 

通过5个步骤部署专用IPFS网络

安装IPFS不会立即启动IPFS文件系统,因此不会与公共IPFS网络建立连接。

 

第2步 - 初始化节点

 

出于本教程的目的,我们将安装两个节点:引导节点和客户机节点。引导节点是其他节点可以连接到的IPFS节点,以便查找其他节点。由于我们正在创建自己的专用网络,我们无法使用公共IPFS网络中的引导节点,因此我们稍后将更改这些设置。选择一台计算机作为引导节点,选择一台作为客户机节点。

 

IPFS在用户主目录的隐藏目录中初始化:~/ .ipfs。该目录将用于初始化节点。在两台计算机,引导节点和客户机节点上,运行以下命令。

 

IPFS_PATH =〜/ .ipfs ipfs init

 

结果:

 

通过5个步骤部署专用IPFS网络

 

注意:我们使用IPFS_PATH =〜/ .ipfs强制IPFS将目录与我们的专用网络的配置文件(和swarm文件,参见步骤3)一起使用。如果已在计算机上安装了连接到公共网络的IPFS,则ipfs add语句可能会使用此安装,从而在公共网络上发布文档。如果此安装是第一次安装ipfs,则可以省略IPFS_PATH =〜/ .ipfs。

 

 

第3步 - 创建专用网络

 

我们现在已经安装了两个IPFS节点,可以轻松连接到公共IPFS网络,但这不是我们需要的。要创建专用网络,我们将使用群组密钥。此群组密钥将由此专用网络中的所有节点引用。

 

swarm密钥生成器仅在引导节点上执行,并在Go编程语言上运行。要安装swarm密钥生成器,我们使用go get,它使用git。如果尚未在引导程序节点上安装git,请执行此操作

 

sudo apt-get install git

 

运行以下命令以安装swarm密钥生成器:

 

go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen

 

运行swarm密钥生成器以在.ipfs目录中创建swarm文件:

 

./go/bin/ipfs-swarm-key-gen>〜/ .ipfs / swarm.key

 

将生成的swarm文件复制到所有客户机节点的.ipfs目录中。

 

第4步 - 引导IPFS节点

 

客户端节点使用引导节点连接到专用IPFS网络。引导程序将客户端连接到网络上可用的其他节点。在我们的专用网络中,我们不能使用公共IPFS网络的引导程序,因此在本节中,我们将使用引导程序节点的IP地址和对等标识替换现有引导程序。

 

 首先,从引导节点和客户机节点中删除引导节点的默认条目。在两台计算机上使用该命令:

 

IPFS_PATH =〜/ .ipfs ipfs bootstrap rm --all

 

检查结果以查看引导程序是否为空:

 

IPFS_PATH =〜/ .ipfs ipfs config show

 

结果:

 

通过5个步骤部署专用IPFS网络

现在将引导节点的IP地址和对等身份(哈希地址)添加到每个节点包括引导节点。

 

可以使用hostname-I找到引导节点的IP地址。

 

对等身份是在IPFS初始化期间创建的,可以通过以下语句找到。

 

IPFS_PATH =〜/ .ipfs ipfs config show | grep“PeerID”

 

结果:

 

通过5个步骤部署专用IPFS网络

 

按如下方式编写add bootstrap语句。

 

IPFS_PATH=~/.ipfs ipfs bootstrap add /ip4/<ip address of bootnode>/tcp/4001/ipfs/<peer identity hash of bootnode>

 

例:

 

IPFS_PATH=~/.ipfs ipfs bootstrap add /ip4/172.25.10.5/tcp/4001/ipfs/QmdbaLZsKA94tsYeKJEPyLThWARFCtWyJWuudBUd4z9KBU

 

在引导节点和客户机节点上运行语句。

 

步骤5-启动网络

 

私有网络已安装,因此我们可以测试此网络。我们将使用环境变量来确保如果我们的配置中存在错误或者未完全配置专用网络,则节点不会连接到公共IPFS网络,并且守护进程会失败。

 

相同的环境变量是“LIBP2P_FORCE_PNET”,要启动IPFS节点,您只需使用带有以下语句的ipfs daemon程序命令启动守护程序。

 

export LIBP2P_FORCE_PNET=1

IPFS_PATH=~/.ipfs ipfs daemon &

 

export LIBP2P_FORCE_PNET = 1表示您强制您的节点是私有的。如果未配置专用网络,则守护程序将无法启动。

 

在我们的例子中,命令和输出如下所示:

 

通过5个步骤部署专用IPFS网络

请注意消息日志说明Swarm is limited to private network of peers with the swarm key,这意味着我们的专用网络正常运行。现在在一个节点上将文件添加到我们的专用网络,并尝试从另一个节点访问它。

 

mkdir ipfstest

cd ipfstest

echo "Hello World!" > file1.txt

IPFS_PATH=~/.ipfs ipfs add file1.txt

IPFS_PATH=~/.ipfs ipfs cat <hash of the file>

 

结果:

 

通过5个步骤部署专用IPFS网络

 

ipfs add语句返回上传文件的哈希码。可以从其他节点使用此哈希码来检索文件。如果在另一个节点上上载相同的文件,则会生成相同的哈希,因此该文件不会在网络上存储两次。

 

要上载完整目录,请添加目录名称和-r选项(递归)。目录及其中的文件是哈希的:

 

通过5个步骤部署专用IPFS网络

这些文件也可以通过浏览器访问。打开浏览器并输入:

 

http://127.0.0.1:8080/ipfs/QmfM2r8seH2GiRaC4esTjeraXEachRt8ZsSeGaWTPLyMoG

 

结果:

 

通过5个步骤部署专用IPFS网络

 

以上是构建私有对等IPFS网络的教程。在该网络中,所有文档都是私有的,并且对该网络的参与者是保密的。

 

本文是在我们参与SynTouch的区块链项目的私有分布式存储解决方案的研究之后编写的。在SynTouch,我们为荷兰市场提供区块链解决方案。

 

特别感谢Koen Wartenberg,Mignon Gakuba和Sibe van Etten的投入。

 

网址:https://medium.com/@s_van_laar/deploy-a-private-ipfs-network-on-ubuntu-in-5-steps-5aad95f7261b


通过5个步骤部署专用IPFS网络

什么是IPFS?

IPFS是一个分布式的存储项目,与激励层Filecoin形成了一个有效的市场闭环,构建出一个去中心化存储网络系统。

Filecoin是2017年最大的私募项目,短短时间募集了2.57亿美元。

目前期货价格约45.5元左右,按照20亿枚Token计算,未上线已市值910亿人民币。


我们是IPFS中国社区,垂直专注于IPFS领域,努力提供客观的、第三方的IPFS、Filecoin、挖矿等最新资讯,共同推进IPFS相关应用的发展,建立一个良好的IPFS生态圈。 


热门阅读

IPFS生态研究报告

破纪录的顶级风险投资Filecoin ICO

熊市机遇:投资EOS ,不如投资IPFS存储

IPFS中国社区赖楚航:IPFS如何构建下一代互联网


_________________________

通过5个步骤部署专用IPFS网络

公众号后台回复【社群】

加入IPFS中国社群哦~

点击【阅读原文】,可以浏览我们的官网哦~

本文由 Ipfs币 作者:ipfs币 发表,其版权均为 Ipfs币 所有,文章内容系作者个人观点,不代表 Ipfs币 对观点赞同或支持。如需转载,请注明文章来源。
21

发表评论