美文网首页
将Web服务部署到IPFS上

将Web服务部署到IPFS上

作者: 袁俊亮技术博客 | 来源:发表于2020-05-11 15:05 被阅读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 来使用它

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

    相关文章

      网友评论

          本文标题:将Web服务部署到IPFS上

          本文链接:https://www.haomeiwen.com/subject/vqpunhtx.html