星鉴网>技术干货>在Ubuntu上以5个步骤部署私有IPFS网络

在Ubuntu上以5个步骤部署私有IPFS网络

2019/1/25 16:17:10 3372人阅读

【导读】 IPFS的默认安装将您的计算机连接到全局分布式网络。在某些情况下(隐私、机密性),私有IPFS网络优先于连接到公共IPFS网络。

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


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


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


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


  第1步 - 安装IPFS


  去安装


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



  将存档下载到您的磁盘。然后将文件解压缩到/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并复制最新的IPFS实施的链接(见下图)。在撰写本文时,最新版本为Ubuntu版本v0.4.18。



  复制go-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


  结果如下



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


  第2步 - 初始化节点


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


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


  IPFS_PATH =〜/ .ipfs ipfs init


  结果:



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


  第3步 - 创建专用网络


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


  swarm密钥生成器仅在引导节点上执行,并在Go编程语言上运行。要安装swarm密钥生成器,我们使用go getgit。如果尚未在引导程序节点上安装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地址和对等标识替换现有引导程序。


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


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


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


  IPFS_PATH =〜/ .ipfs ipfs config show


  结果:


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


  可以找到bootnode的ip地址hostname -I。


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


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


  结果:



  add bootstrap按如下方式汇编声明。


  IPFS_PATH =〜/ .ipfs ipfs bootstrap add / ip4 / / tcp / 4001 / ipfs /


  例:


  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=1IPFS_PATH=~/.ipfs ipfs daemon &


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


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



  请注意消息日志,说明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 <文件的哈希>


  结果:



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


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



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


  http://127.0.0.1:8080/ipfs/QmfM2r8seH2GiRaC4esTjeraXEachRt8ZsSeGaWTPLyMoG


  结果:



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


  本文来源于Medium     作者:Sander van Laar

39

参与讨论

登录后参加评论......

全部评论 0

作者

返回顶部