将Web服务部署到IPFS上

2020-05-11  本文已影响0人  袁俊亮技术博客

将Web服务部署到IPFS上

: 本文操作环境为ubuntu 18.04

安装ipfs

  1. 安装go语言环境
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
  1. 安装go-ipfs
wget https://dist.ipfs.io/go-ipfs/v0.5.0/go-ipfs_v0.5.0_linux-amd64.tar.gz
tar -xvzf go-ipfs_v0.5.0_linux-amd64.tar.gz
cd go-ipfs
sudo bash install.sh

检查go-ipfs版本

ipfs --version

> ipfs version 0.5.0

上传web目录

  1. 启动ipfs
ipfs daemon

返回如下信息

Initializing daemon...
go-ipfs version: 0.5.0
Repo version: 9
System version: amd64/linux
Golang version: go1.13.10
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/172.16.20.111/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip4/172.16.20.111/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
  1. 添加web目录

方式一: 命令行添加上传

ipfs add -r ./blog

返回如下信息

added QmbC2eAXxPY58CCDjJo2Dr5C2wWrq6ALyRxrTVJaNmrq6P blog/Golang redis 操作初体验 .html
added QmYqSE8nz3CbAb7uT8kCPpVEEKvriRwTT3gphXBSzLAJiU blog/Go语言导出excel文件(.xlsx).html
added QmXkaA8JMaLtVpmLiag8D1kkZsdcb9TqLjRCYZr1knBxK9 blog/index.html
added QmdfsZhvPc7Mf7VzWw2PAoTWdaPBa56JBqkVGq1yFnRp3J blog/构建Nodejs脚手架.html
added QmSKK986gpytABxLD5kE8jUK9bPo4iU4A8WTz5VQpDqCmE blog

其中最后一行QmSKK986gpytABxLD5kE8jUK9bPo4iU4A8WTz5VQpDqCmE 表示整个项目的CID

方式二:通过web网页上传

我们启动ipfs节点以后,在浏览器中访问http://127.0.0.1:5001/webui,可以看到ipfs的web管理界面

image.png

选择Files->Add即可添加整个网站目录

  1. 查看网站

打开浏览器,输入http://127.0.0.1:8080/ipfs/QmSKK986gpytABxLD5kE8jUK9bPo4iU4A8WTz5VQpDqCmE即可看到上传的网站

上诉方式只是在我们本地启动了一个ipfs节点。所有文件存储在本地服务,一旦本地服务关了以后我们的网站就无法浏览了。
可以通过下面的方式,是我们的网站持久化托管到ipfs

选择托管服务

IPFSPin一些内容的节点将永远托管它(直到取消固定),比如Pinata之类的Pin服务,可将文件 Pin 在其IPFS节点上。这样,网站将始终可用

打开网站以后,有三种选择

image.png

我们选择上传目录,然后把我们的网站目录整个上传上去,上传完成以后会返回一个HASH,
我们复制这个HASH.在浏览器中打开https://ipfs.io/ipfs/{HASH}就可以看到我们上传上去的网站目录

例如: https://ipfs.io/ipfs/QmPM8dxkAuJtH42Ss2F8qeH4ZB8mPJyDY2M8SvZev7VNW2

绑定自定义域名

我们现在已经能够通过https://ipfs.io/ipfs/QmPM8dxkAuJtH42Ss2F8qeH4ZB8mPJyDY2M8SvZev7VNW2访问我们的网站了,但是有两个问题

  1. 这个网站很难被记住,不容易被查找
  2. 每次更新网站CID都会变,就需要访问新的链接才能被正确访问

可以通过以下两种方案解决

  1. 使用DNSLink

文档地址: https://docs.ipfs.io/guides/concepts/dnslink/

  1. 使用以太坊域名服务

ENS 是一个以太坊区块链上的命名服务,它使用智能合约购买域名并为其设置解析器记录。由于涉及以太坊,因此您需要使用 MetaMask 来使用它

类似的域名服务有很多,可以自行查阅

上一篇下一篇

猜你喜欢

热点阅读