如何在「鏈上」訪問網站
最近發生的一件事件讓筆者重新思考起了傳統的域名訪問服務,我們一直認為非常穩定的域名解析服務,居然也會有出問題的時候。這讓筆者不禁在想,去中心化的方案或許是一個值得探索的替代方案呢?
思考了一下,在區塊鏈上部署頁面,它可能有以下幾個好處:
- 去中心化:所有的修改都需要大家共同同意才能進行,沒有一個單獨的機構能說了算。
- 無需證書:因為區塊鏈本身就用了加密技術,所以不需要額外的證書配置。
筆者之前看到過 TON 上的域名方案,當時覺得似乎只是好玩,實用性一般,畢竟傳統的訪問方式已經很穩定、常用了。但現在想想,可能真的會有用得上它的地方,所以筆者打算再好好研究一下。
在區塊鏈中創建網站
本文將在這裏嘗試將一個網站部署在 TON 中,並且可以讓用戶在瀏覽器中訪問這個頁面。流程分為三步:1. 購買域名;2. 準備前端頁面;3. 綁定頁面到域名。
區塊鏈中的域名和 WEB2 世界中的域名概念其實是類似的,都是對某一復雜不易記的地址的別名,在區塊鏈中是代表了用戶的地址,在 WEB2 中則是服務的 IP 地址。
購買域名
以 TON 為例,域名的官方購買地址是 https://dns.ton.org/,以 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。
總而言之,目前體驗其實一般般,後面還有很多可以提升改進的地方,但是這個方向筆者覺得挺好挺創新的,嘗試一下也是不錯的。
關於 ZAN
ZAN 是螞蟻數科旗下 Web3 科技品牌,致力於 Web3 應用優化--降低成本、增強安全和提升效能,圍繞 Web3 應用全生命週期,提供可靠、穩定安全、客製化的產品和服務。依托 AntChain OpenLabs 的 TrustBase 開源開放技術體系,ZAN 擁有 Web3 領域獨特的優勢和創新能力,為 Web3 社群的區塊鏈應用開發、企業和開發者的 Web3 應用提供了全面的技術產品和服務,其中包括節點服務(ZAN Node Service)、zk 加速(ZAN PowerZebra)、身分驗證eKYC(ZAN Identity)以及智慧合約稽核(ZAN Smart Contract Review)等。