任何程序错误,以及技术疑问或需要解答的,请扫码添加作者VX::1755337994
首先,我们需要知道IPFS是什么?
其实IPFS是一种协议,全称为Inter-Planetary File System
,是一种点对点超媒体协议,旨在取代旧的HTTP,使网络更快,更安全,更开放。
我们平常都通过HTTP协议去访问一个网站,我们都知道在我们敲出一个网站后,我们实际上通过这个网址找了了服务器的IP,然后通过IP我们和服务器建立通信。而这种通信的稳定性它取决于对方服务是否可靠,万一挂了,我们肯定无法访问。同时还取决于我们的主干网络是不是通畅,如果那个地方主干网的光纤一不小心被挖断了,那可能导致某个服务就得挂一段时间了。
这也就是我们所说的HTTP趋于超中心化可能存在的隐患。而IPFS就是用来解决这些问题。IPFS让每一个人都可以成为一个服务节点,一旦你上传一个文件到IPFS,你的文件将会被存储在不同的节点,然后你会得到一个由文件内容计算出的加密哈希值。当你通过该哈希值下载你的文件时,IPFS会会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。这样,就实现了一个分布式的服务节点,既是你自己的节点挂了,你的文件依然可以正常访问。
这篇文章,我们一起通过IPFS搭建一个简单页面。
首先,我们需要安装IPFS。
在这里找到适合你的平台的安装文件,下载。
然后解压,安装。
123 | $ tar -zxvf go-ipfs_v0.4.18_darwin-amd64.tar.gz$ cd go-ipfs$ ./install.sh |
---|
查看是否安装完成。
1234 | $ ipfs --helpUSAGE: ipfs - Global p2p merkle-dag filesystem. |
---|
这样,们就安装好了ipfs
命令。之后,我们初始化一下。
1234567 | $ ipfs initinitializing IPFS node at /Users/jin/.ipfsgenerating 2048-bit RSA keypair...donepeer identity: QmQfPXYpcKWim9yQRhbZxxrgUve5VzHJD7h4miu2oQ6Ubjto get started, enter: ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme |
---|
初始化的过程中,生成了一个公私钥对,正是通过该公钥来标识我们的身份。
看看readme都写了些啥。
123456789101112131415161718192021222324252627 | $ ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readmeHello and Welcome to IPFS!██╗██████╗ ███████╗███████╗██║██╔══██╗██╔════╝██╔════╝██║██████╔╝█████╗ ███████╗██║██╔═══╝ ██╔══╝ ╚════██║██║██║ ██║ ███████║╚═╝╚═╝ ╚═╝ ╚══════╝If you're seeing this, you have successfully installedIPFS and are now interfacing with the ipfs merkledag! -------------------------------------------------------| Warning: || This is alpha software. Use at your own discretion! || Much is missing or lacking polish. There are bugs. || Not yet secure. Read the security notes for more. | -------------------------------------------------------Check out some of the other files in this directory: ./about ./help ./quick-start <-- usage examples ./readme <-- this file ./security-notes |
---|
这里有一些帮助文档,你可以先了解一下。
如ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/quick-start
就可以查看quick-start
。
接下来,我们准备一个简单的页面。
ipfs_file/index.html
123456789 | <!DOCTYPE html><link rel="stylesheet" type="text/css" href="styles.css"><html> <body> <h1>Hello World</h1> <p> 我的IPFS</p> <a href="https://razeen.me/post/start-ipfs-gateway.html#toc_0"> Back </a> </body></html> |
---|
ipfs_file/styles.css
12345 | body { background-color: #ccc; text-align: center; margin-top: 88px;} |
---|
12345678910111213 | $ ipfs daemonInitializing daemon...Successfully raised file descriptor limit to 2048.Swarm listening on /ip4/127.0.0.1/tcp/4001Swarm listening on /ip4/192.168.3.16/tcp/4001Swarm listening on /ip6/::1/tcp/4001Swarm listening on /p2p-circuit/ipfs/QmQfPXYpcKWim9yQRhbZxxrgUve5VzHJD7h4miu2oQ6UbjSwarm announcing /ip4/127.0.0.1/tcp/4001Swarm announcing /ip4/192.168.3.16/tcp/4001Swarm announcing /ip6/::1/tcp/4001API server listening on /ip4/127.0.0.1/tcp/5001Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080Daemon is ready |
---|
如果你查看了quick-start
你应该知道,我们可以通过浏览器来查看一些UI界面,视频等。
如,通过http://localhost:5001/webui
,我们可以查看我们刚刚启动的这个IPFS的一些节点情况。
我们还可以看到我们连接了多少节点以及大概分布。
当然还可以查找文件等,这里就不一一说了。
然后我们可以通过add
将文件上传。
12345 | $ ipfs add -r ipfs_fileadded QmYN1vzHWT4U61R6GnnJ2H3N76DpZ4JU4xa3r8paDfDdEB ipfs_file/index.htmladded Qmea1q1nEPxCsB8y5so2ppNVuKy2kMtFCiBnngiK7A4PY3 ipfs_file/styles.cssadded QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC ipfs_file 333 B / 333 B [============================================== ] 100.00 |
---|
然后,我们通过IPFS网关访问https://gateway.ipfs.io/ipfs/QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC/
就可以访问刚刚的文件了。
由于防火墙的关系,这里需要用梯子才能访问到==
最近发现Cloudflare也推出了ipfs网关,而且我们可以将自己的域名解析到该地址,通过TXT记录来关联你的IPFS文件。
首先,我们可以通过https://cloudflare-ipfs.com/ipfs/QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC/
访问刚刚上传的文件。
然后,我么在我们的DNS服务商中添加两条记录,如下。
我希望将ipfs.razeen.me
指向该文件,然后我需要添加如下记录:
也就是,将ipfs.razeen.me
CNAME到cloudflare-ipfs.com
;
添加_dnslink.ipfs
TXT值your_ipfs_hash_here
如:QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC
。
然后,在这里填上你的域名,提交即可。
之后,cloudflare会为你的域名申请一张证书,并完成转发, 整个过程可能需要10分钟左右。
当你看到Certificate is live.
提示,域名配置就完成了。
访问一下,我们可以看到。
到这里我们就完成该网页配置了。一个IPFS站点就搭建完成了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。