最近發生的一件事件讓筆者重新思考起了傳統的域名訪問服務,我們一直認爲非常穩定的域名解析服務,居然也會有出問題的時候。這讓筆者不禁在想,去中心化的方案或許是一個值得探索的替代方案呢?思考了一下,在區塊鏈上部署頁面,它可能有以下幾個好處:1.去中心化:所有的修改都需要大家共同同意才能進行,沒有一個單獨的機構能說了算。2.無需證書:因爲區塊鏈本身就用了加密技術,所以不需要額外的證書配置。筆者之前看到過 TON 上的域名方案,當時覺得似乎只是好玩,實用性一般,畢竟傳統的訪問方式已經很穩定、常用了。但現在想想,可能真的會有用得上它的地方,所以筆者打算再好好研究一下。## 在區塊鏈中創建網站本文將在這裏嘗試將一個網站部署在 TON 中,並且可以讓用戶在瀏覽器中訪問這個頁面。流程分爲三步: 1. 購買域名;2. 準備前端頁面;3. 綁定頁面到域名。區塊鏈中的域名和 WEB2 世界中的域名概念其實是類似的,都是對某一復雜不易記的地址的別名,在區塊鏈中是代表了用戶的地址,在 WEB2 中則是服務的 IP 地址。## 購買域名以 TON 爲例,域名的官方購買地址是 TON 來計價。和 WEB2 一樣,字符越短的域名價格越貴,價格在 1 - 100 TON 不等。如果該域名沒有被任何人擁有,那麼你就可以以低價進行出價,並且在出價之後進入倒計時,在倒計時內所有人都可以競價,直到倒計時結束。在拍的域名之後,域名會以 NFT 的方式存到用戶的錢包裏。域名 NFT 可以進行交易。域名的有效時間是 1 年,到期之後會被收回。總結一下就是,購買域名可以通過在官網進行拍賣獲得,也可以從別的用戶那邊交易得到。## 準備前端頁面在這一步需要準備一個前端頁面來作爲展示。爲了簡單,本文只準備一個 html 文件加上 nginx 來將頁面暴露出去,當然,項目還需要一臺雲服務器來運行前端頁面。這一步和傳統的前端應用部署一樣。### 綁定頁面到 .ton在擁有一個 .ton 域名之後,可以在 TON 的 DNS 官網綁定你的 ANDL 地址。當然你也可以使用 TON 提供的綁定工具,按照官網的介紹去綁定你的頁面。在綁定完成之後,你還需要在服務器上啓動一個監聽的端口,用於監聽 http 請求並轉發成 udp。這裏可以使用官方提供的 rldp-http-proxy 工具,輸入下面的命令就可以啓動了:rldp-http-proxy/rldp-http-proxy -p 8080 -c 3333 -C global.config.json其中, 8080 是將在本地主機上監聽傳入 HTTP 查詢的 TCP 端口,而 3333 是將用於所有出站和入站 RLDP 和 ADNL 活動的 UDP 端口(即通過 TON 網路連接到 TON 網站)。global.config.json 是 TON 全局配置的文件名,可以在這裏下載。訪問 .ton 域名想要直接在瀏覽器中敲 .ton 的域名去訪問網站是沒有效果的,因爲瀏覽器不知道要將這個域名解析到哪裏。所以在這裏還需要做一些額外的操作。### 請求 .ton 的過程在請求 .ton 域名的時候,首先會去鏈上查詢對應 ANDL 地址,該地址可以簡單理解爲 WEB2 中的 IP 地址,在你部署網站的時候,會自動生成。這次的查詢過程也可以類比爲 DNS 查詢過程。之後根據 ANDL 的地址,請求會轉發到你對應的機器上,這時候可以指定對應返回的頁面。整體的過程和 WEB2 相當類似,主要區別在於地址和域名映射的查詢方式不太一樣。### 通過代理訪問頁面最推薦的方式使用官網提供的代理工具 Tonutils Reverse Proxy。下載安裝啓動之後,會啓動一個 8080 端口用於代理,之後就可以去訪問 .ton 的域名了。可以看到能夠訪問 .ton 的域名的網站了。## 使用總結目前使用下來,遇到了以下幾個問題:* 對網站運行的環境有要求。你的系統需要支持 glibc 2.34 版本以上,所以在部署頁面前,先檢查一下自己的機器是否滿足要求。* 文檔不是很清晰。有可能是因爲這個 TON 運行網站的需求不是很多,所以文檔寫的不是很完善,需要自己摸索。另外中文的話更新不及時,落後於英文版本的內容。* 訪問的速度較慢。訪問的速度會落後於傳統的網站。當然這裏面涉及到的因素會很多,只能說以後的進步空間很大。* 沒有被錢包支持。官方提供了一個簡單的內嵌瀏覽器頁面,你可以選擇不安裝代理就可以訪問。但是目前這個網站被所有主流的錢包都認定爲了釣魚網站 o.0 。總而言之,目前體驗其實一般般,後面還有很多可以提升改進的地方,但是這個方向筆者覺得挺好挺創新的,嘗試一下也是不錯的。
如何在「鏈上」訪問網站
最近發生的一件事件讓筆者重新思考起了傳統的域名訪問服務,我們一直認爲非常穩定的域名解析服務,居然也會有出問題的時候。這讓筆者不禁在想,去中心化的方案或許是一個值得探索的替代方案呢?
思考了一下,在區塊鏈上部署頁面,它可能有以下幾個好處:
1.去中心化:所有的修改都需要大家共同同意才能進行,沒有一個單獨的機構能說了算。
2.無需證書:因爲區塊鏈本身就用了加密技術,所以不需要額外的證書配置。
筆者之前看到過 TON 上的域名方案,當時覺得似乎只是好玩,實用性一般,畢竟傳統的訪問方式已經很穩定、常用了。但現在想想,可能真的會有用得上它的地方,所以筆者打算再好好研究一下。
在區塊鏈中創建網站
本文將在這裏嘗試將一個網站部署在 TON 中,並且可以讓用戶在瀏覽器中訪問這個頁面。流程分爲三步: 1. 購買域名;2. 準備前端頁面;3. 綁定頁面到域名。
區塊鏈中的域名和 WEB2 世界中的域名概念其實是類似的,都是對某一復雜不易記的地址的別名,在區塊鏈中是代表了用戶的地址,在 WEB2 中則是服務的 IP 地址。
購買域名
以 TON 爲例,域名的官方購買地址是 TON 來計價。和 WEB2 一樣,字符越短的域名價格越貴,價格在 1 - 100 TON 不等。
如果該域名沒有被任何人擁有,那麼你就可以以低價進行出價,並且在出價之後進入倒計時,在倒計時內所有人都可以競價,直到倒計時結束。在拍的域名之後,域名會以 NFT 的方式存到用戶的錢包裏。域名 NFT 可以進行交易。域名的有效時間是 1 年,到期之後會被收回。
總結一下就是,購買域名可以通過在官網進行拍賣獲得,也可以從別的用戶那邊交易得到。
準備前端頁面
在這一步需要準備一個前端頁面來作爲展示。爲了簡單,本文只準備一個 html 文件加上 nginx 來將頁面暴露出去,當然,項目還需要一臺雲服務器來運行前端頁面。這一步和傳統的前端應用部署一樣。
綁定頁面到 .ton
在擁有一個 .ton 域名之後,可以在 TON 的 DNS 官網綁定你的 ANDL 地址。當然你也可以使用 TON 提供的綁定工具,按照官網的介紹去綁定你的頁面。
在綁定完成之後,你還需要在服務器上啓動一個監聽的端口,用於監聽 http 請求並轉發成 udp。這裏可以使用官方提供的 rldp-http-proxy 工具,輸入下面的命令就可以啓動了:
rldp-http-proxy/rldp-http-proxy -p 8080 -c 3333 -C global.config.json
其中, 8080 是將在本地主機上監聽傳入 HTTP 查詢的 TCP 端口,而 3333 是將用於所有出站和入站 RLDP 和 ADNL 活動的 UDP 端口(即通過 TON 網路連接到 TON 網站)。global.config.json 是 TON 全局配置的文件名,可以在這裏下載。
訪問 .ton 域名
想要直接在瀏覽器中敲 .ton 的域名去訪問網站是沒有效果的,因爲瀏覽器不知道要將這個域名解析到哪裏。所以在這裏還需要做一些額外的操作。
請求 .ton 的過程
在請求 .ton 域名的時候,首先會去鏈上查詢對應 ANDL 地址,該地址可以簡單理解爲 WEB2 中的 IP 地址,在你部署網站的時候,會自動生成。這次的查詢過程也可以類比爲 DNS 查詢過程。
之後根據 ANDL 的地址,請求會轉發到你對應的機器上,這時候可以指定對應返回的頁面。整體的過程和 WEB2 相當類似,主要區別在於地址和域名映射的查詢方式不太一樣。
通過代理訪問頁面
最推薦的方式使用官網提供的代理工具 Tonutils Reverse Proxy。下載安裝啓動之後,會啓動一個 8080 端口用於代理,之後就可以去訪問 .ton 的域名了。
可以看到能夠訪問 .ton 的域名的網站了。
使用總結
目前使用下來,遇到了以下幾個問題:
總而言之,目前體驗其實一般般,後面還有很多可以提升改進的地方,但是這個方向筆者覺得挺好挺創新的,嘗試一下也是不錯的。