IPFS搭建HTTPS去中心化网站,真实可用
任何程序錯誤,以及技術疑問或需要解答的,請掃碼添加作者VX::1755337994
首先,我們需要知道IPFS是什么?
其實IPFS是一種協議,全稱為Inter-Planetary File System,是一種點對點超媒體協議,旨在取代舊的HTTP,使網絡更快,更安全,更開放。
我們平常都通過HTTP協議去訪問一個網站,我們都知道在我們敲出一個網站后,我們實際上通過這個網址找了了服務器的IP,然后通過IP我們和服務器建立通信。而這種通信的穩定性它取決于對方服務是否可靠,萬一掛了,我們肯定無法訪問。同時還取決于我們的主干網絡是不是通暢,如果那個地方主干網的光纖一不小心被挖斷了,那可能導致某個服務就得掛一段時間了。
這也就是我們所說的HTTP趨于超中心化可能存在的隱患。而IPFS就是用來解決這些問題。IPFS讓每一個人都可以成為一個服務節點,一旦你上傳一個文件到IPFS,你的文件將會被存儲在不同的節點,然后你會得到一個由文件內容計算出的加密哈希值。當你通過該哈希值下載你的文件時,IPFS會會使用一個分布式哈希表找到文件所在的節點,取回文件并驗證文件數據。這樣,就實現了一個分布式的服務節點,既是你自己的節點掛了,你的文件依然可以正常訪問。
這篇文章,我們一起通過IPFS搭建一個簡單頁面。
安裝IPFS
首先,我們需要安裝IPFS。
在這里找到適合你的平臺的安裝文件,下載。
然后解壓,安裝。
| 1 2 3 | $ tar -zxvf go-ipfs_v0.4.18_darwin-amd64.tar.gz $ cd go-ipfs $ ./install.sh |
查看是否安裝完成。
| 1 2 3 4 | $ ipfs --help USAGE:ipfs - Global p2p merkle-dag filesystem. |
這樣,們就安裝好了ipfs命令。之后,我們初始化一下。
| 1 2 3 4 5 6 7 | $ ipfs init initializing IPFS node at /Users/jin/.ipfs generating 2048-bit RSA keypair...done peer identity: QmQfPXYpcKWim9yQRhbZxxrgUve5VzHJD7h4miu2oQ6Ubj to get started, enter:ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme |
初始化的過程中,生成了一個公私鑰對,正是通過該公鑰來標識我們的身份。
看看readme都寫了些啥。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $ ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme Hello and Welcome to IPFS!██╗██████╗ ███████╗███████╗ ██║██╔══██╗██╔════╝██╔════╝ ██║██████╔╝█████╗ ███████╗ ██║██╔═══╝ ██╔══╝ ╚════██║ ██║██║ ██║ ███████║ ╚═╝╚═╝ ╚═╝ ╚══════╝If you're seeing this, you have successfully installed IPFS 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
| 1 2 3 4 5 6 7 8 9 | <!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
| 1 2 3 4 5 | body {background-color: #ccc;text-align: center;margin-top: 88px; } |
啟動IPFS服務
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | $ ipfs daemon Initializing daemon... Successfully raised file descriptor limit to 2048. Swarm listening on /ip4/127.0.0.1/tcp/4001 Swarm listening on /ip4/192.168.3.16/tcp/4001 Swarm listening on /ip6/::1/tcp/4001 Swarm listening on /p2p-circuit/ipfs/QmQfPXYpcKWim9yQRhbZxxrgUve5VzHJD7h4miu2oQ6Ubj Swarm announcing /ip4/127.0.0.1/tcp/4001 Swarm announcing /ip4/192.168.3.16/tcp/4001 Swarm announcing /ip6/::1/tcp/4001 API server listening on /ip4/127.0.0.1/tcp/5001 Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080 Daemon is ready |
如果你查看了quick-start你應該知道,我們可以通過瀏覽器來查看一些UI界面,視頻等。
如,通過http://localhost:5001/webui,我們可以查看我們剛剛啟動的這個IPFS的一些節點情況。
我們還可以看到我們連接了多少節點以及大概分布。
當然還可以查找文件等,這里就不一一說了。
上傳文件
然后我們可以通過add將文件上傳。
| 1 2 3 4 5 | $ ipfs add -r ipfs_file added QmYN1vzHWT4U61R6GnnJ2H3N76DpZ4JU4xa3r8paDfDdEB ipfs_file/index.html added Qmea1q1nEPxCsB8y5so2ppNVuKy2kMtFCiBnngiK7A4PY3 ipfs_file/styles.css added QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC ipfs_file333 B / 333 B [============================================== ] 100.00 |
然后,我們通過IPFS網關訪問https://gateway.ipfs.io/ipfs/QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC/?就可以訪問剛剛的文件了。
由于防火墻的關系,這里需要用梯子才能訪問到==
Cloudflare IPFS gateway
最近發現Cloudflare也推出了ipfs網關,而且我們可以將自己的域名解析到該地址,通過TXT記錄來關聯你的IPFS文件。
訪問
首先,我們可以通過https://cloudflare-ipfs.com/ipfs/QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC/?訪問剛剛上傳的文件。
添加DNS記錄
然后,我么在我們的DNS服務商中添加兩條記錄,如下。
我希望將ipfs.razeen.me指向該文件,然后我需要添加如下記錄:
也就是,將ipfs.razeen.me?CNAME到cloudflare-ipfs.com;
添加_dnslink.ipfsTXT值your_ipfs_hash_here?如:QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC。
提交
然后,在這里填上你的域名,提交即可。
之后,cloudflare會為你的域名申請一張證書,并完成轉發, 整個過程可能需要10分鐘左右。
當你看到Certificate is live.提示,域名配置就完成了。
訪問一下,我們可以看到。
到這里我們就完成該網頁配置了。一個IPFS站點就搭建完成了。
總結
以上是生活随笔為你收集整理的IPFS搭建HTTPS去中心化网站,真实可用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么是PID控制
- 下一篇: Linux Shell编程之别名和常用快