分散站点的关键在于分散地托管它们,这就是 IPFS 发挥作用的地方。让我们稍微熟悉一下 IPFS 以及如何使用它来托管网站!
什么是 IPFS?
星际文件系统(IPFS)是一种协议和点对点网络,用于在分布式文件系统中存储和共享数据。
它与 Torrent 所做的非常相似,但是除了接收允许它托管的内容外。一切都是分布式的。
但是 interplanetary staff?非常简单,这背后的想法是使互联网连接成为可能,即使你非常遥远。它允许你从附近的某个人检索文件,而不是从几千公里或几百万公里以外的某个地方,比如其他星球获取文件。然而,这是这个项目理想的目标。
目前,它还有两个附加的优点(除了加快从遥远的数据中心获取文件的优点):
它使互联网更具弹性,即使主节点关闭,您的用户也可以从其他地方获取您的网页。
审查内容变得更加困难,没有任何地方可以影响和阻止您的内容。
安装 IPFS
要首先在计算机上安装 IPFS,您需要下载适用于您的操作系统和平台的发行包。按照官方发行页面查找适合您的软件包。下载并找到安装包后,请遵循以下操作系统特定的部分:
MacOS 或 Linux
解压您的包裹:
$ tar xvfz go-ipfs_*.tar.gz
运行安装(基本上它将二进制文件移至可执行文件$PATH中的某个位置)
$ cd go-ipfs$ ./install.sh
窗口
解压下载的软件包,然后手动将 ipfs.exe 移到您的%PATH%的某个位置(或者放置到某个特定的目录并更新%PATH%变量)
安装后,您可以运行以下命令检查是否一切正常:
$ ipfs -—versionipfs version 0.5.1
因此,现在我们准备好将您的网站托管在 IPFS 上。
基本
让我们从基本用法开始,对执行操作的原因进行解释。
由于 IPFS 存储所有设置,并且首先在本地存储库(类似于Git)中完成,所以我们需要使用以下命令对其进行初始化:
$ ipfs initinitializing IPFS node at /home/[username]/.ipfsgenerating 2048-bit RSA keypair…donepeer identity: QmQddxyRmLoShfP2HeJwzcoGoh2tD7crwUeRevFBg6Lt48to get started, enter:ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme
您可以使用上面建议的命令来查看 IPFS(即自述文件)中已固定的内容:
$ ipfs cat/ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readmeHello and Welcome to IPFS!...If you're seeing this, you have successfully installedIPFS and are now interfacing with the ipfs merkledag!...Check out some of the other files in this directory:./about./help./quick-start <-- usage examples./readme <-- this file./security-notes
请注意,您的情况下哪些粗体哈希可能会有所不同。第一个代表您在 IPFS 网络中的对等身份。第二个是自述文件,关于,帮助,快速入门和安全说明文件的当前固定版本。您可以使用类似于上述命令的所有文件。
让您上网
为了使我们的节点联机并连接到 IPFS 网络,我们需要使用以下命令运行 IPFS 守护程序:
$ ipfs daemonInitializing daemon…go-ipfs version: 0.5.1Repo version: 9System version: amd64/linuxGolang version: go1.13.10Swarm listening on /ip4/127.0.0.1/tcp/4001Swarm listening on /ip4/192.168.1.190/tcp/4001Swarm listening on /ip6/::1/tcp/4001Swarm listening on /p2p-circuitSwarm announcing /ip4/115.187.39.125/tcp/4001Swarm announcing /ip4/127.0.0.1/tcp/4001Swarm announcing /ip4/192.168.1.190/tcp/4001Swarm announcing /ip6/::1/tcp/4001API server listening on /ip4/127.0.0.1/tcp/5001WebUI: 在另一个使用以下命令的终端中,您可以检查连接到的对等方:
$ ipfs swarm peers/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ...
用粗体突出显示的是单个对等方的传输地址。还要注意节点的公钥哈希(对等身份)。
在启动守护程序时,您可能还会注意到以下行:
这是您要与节点一起使用的节点的 Web 界面地址:
请注意,由于安全原因,5001 端口不会对外公开。但是,如何远程连接到您的节点(或您的VM)也有同样好的安全方法。为此,您可以使用以下命令使用 SSH 隧道将本地 5001 端口转发到您的节点:
ssh -L 5001:localhost:5001 [username]@[server-address]
您可以使用 WebUI 来管理 IPFS 节点上的文件,查看各种使用情况统计信息,并以更友好的方式配置节点。
去中心化网站
让我们开始第一个分散的网站。首先,我们将需要一个网站(我将不做过多解释,但总之,您只需要在 HTML/JS/CSS 上创建网站)。例如,使用我为您准备的模板(顺便说一句,该模板托管在 IPFS 上)。
我将假定您已从上面下载了软件包并将其解压缩到 ipfssite 目录:
$ ls ipfssite/css images index.html js
为了发布它,您需要在节点上启动守护程序。之后,您可以运行以下命令来部署它:
$ ipfs add -r ipfssiteadded QmNrgEMcUygbKzZeZgYFosdd27VE9KnWbyUD73bKZJ3bGi ipfssite/css/bootstrap.min.cssadded QmToWAMXJFSi2s22JqfmajL4WPJZJdnzJtzSV1TaUdkFLp ipfssite/css/styles.cssadded QmSyc5sQa4smKUvNaZtr6y44et5gVgzsf4RaWD7tu1PgCk ipfssite/images/ipfs-logo.svgadded QmamZxnEKaAwdLEoCtC7w4jwaVuR7ztb1cLayDQGM9DVci ipfssite/index.htmladded QmZqVNydZxRrioxHwMxCa5CQs7yRLPqnKUexuyrTkJhBwa ipfssite/js/bootstrap.min.jsadded QmWirprJ5C4m1rVmEKS1Wf3WBviqpoFgp64QvWACsa7wC8 ipfssite/js/jquery-3.3.1.slim.min.jsadded QmPNoejVoMRayPqLzsKzYNLh8p5yGKyA5PBFJ3sw2xLDM3 ipfssite/js/popper.min.jsadded QmbkVCDQ95ypMH8VWHACsCyZPxerwRrpfXZ5y3TDBGS3Rd ipfssite/cssadded QmWJP6sa19yUjco7YXCVyqXoeX2L4378yzcTJWYxZWoMK3 ipfssite/imagesadded QmcZSAjXfTdciMAS9zjLjWcmRRcF3QTnBTqM66zzKCQAT1 ipfssite/jsadded Qmf2EuEZJXUtwuMRALgTsN6xsDQy5g8s4H5BQKLvMYE2dV ipfssite301.28 KiB / 301.28 KiB[=============================================] 100.00%
最后一个哈希(用于目录本身)是您必须记住的。之后,您可以通过以下网址访问网站(输入上面收到的哈希):
请耐心等待最后一个网址,首次打开它可能需要一些时间。
我们不要在这里停下来,使其更加友好,毕竟很难通过短信发送这样的哈希值或者很难记住。
为此,您将需要您的域名。转到域名管理,并创建TXT类型的注意DNS记录以将其连接到您的网站。就我而言,我需要创建以下记录(再次,不要忘记更新到您在先前步骤中获得的哈希值):
dnslink=/ipfs/Qmf2EuEZJXUtwuMRALgTsN6xsDQy5g8s4H5BQKLvMYE2dV
您可以通过执行以下命令检查域名是否更新:
dig +noall +answer TXT [your-domain-name][your-domain-name]. 60 IN TXT “dnslink=/ipfs/Qmf2EuEZJXUtwuMRALgTsN6xsDQy5g8s4H5BQKLvMYE2dV”
一段时间后,DNS记录将通过世界上的DNS服务器进行更新,您将可以使用以下方式访问
End
非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。
来源:oschina
链接:https://my.oschina.net/u/4513182/blog/4305303