TON区块链网站部署实践:去中心化域名解析的机遇与挑战

robot
摘要生成中

近期发生的一起事件引发了人们对传统域名访问服务的重新思考。一直被认为极其稳定的域名解析服务竟然也会出现问题,这让人不禁考虑去中心化方案是否可能成为一个值得探索的替代选择。

在区块链上部署页面可能具有以下几个优势:

  1. 去中心化:所有修改需要集体共识,没有单一机构能够独断专行。

  2. 无需证书:区块链本身采用加密技术,无需额外配置证书。

之前接触过TON上的域名方案时,觉得其实用性有限,毕竟传统访问方式已经相当稳定和普及。但现在看来,这种方案可能确实有其适用场景,值得进一步研究。

在区块链中创建网站

本文将尝试在TON中部署一个网站,并使其可以通过浏览器访问。整个过程分为三个步骤:1. 购买域名;2. 准备前端页面;3. 绑定页面到域名。

区块链中的域名概念与WEB2世界类似,都是复杂地址的别名。在区块链中代表用户地址,在WEB2中则代表服务的IP地址。

购买域名

以TON为例,域名可以通过官方平台购买,以TON计价。与WEB2相似,字符越短的域名价格越高,范围在1-100 TON不等。

如果域名未被占用,可以低价出价,随后进入倒计时阶段,期间所有人都可以参与竞价。拍得的域名将以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端口。global.config.json是TON全局配置文件,可在官方渠道下载。

访问 .ton 域名

直接在浏览器中输入.ton域名无法访问网站,因为浏览器不知道如何解析这个域名。因此还需要进行一些额外操作。

请求 .ton 的过程

请求.ton域名时,首先会在链上查询对应的ANDL地址,这个地址类似于WEB2中的IP地址,在部署网站时自动生成。这个查询过程可以类比为DNS查询。

然后根据ANDL地址,请求会被转发到相应的机器上,此时可以指定返回的页面。整个过程与WEB2类似,主要区别在于地址和域名映射的查询方式不同。

通过代理访问页面

最推荐的方式是使用官方提供的代理工具Tonutils Reverse Proxy。下载安装并启动后,会在8080端口启动一个代理,之后就可以访问.ton域名了。

如何在「链上」访问网站

使用总结

目前使用中遇到了以下几个问题:

  1. 对网站运行环境有要求。系统需要支持glibc 2.34版本以上,部署前应先检查机器是否满足要求。

  2. 文档不够清晰。可能是因为TON运行网站的需求不多,文档不够完善,需要自行摸索。中文版本更新也不及时,落后于英文版本。

  3. 访问速度较慢。访问速度落后于传统网站,涉及因素众多,未来有很大改进空间。

  4. 未得到钱包支持。官方提供了一个简单的内嵌浏览器页面,可以不安装代理就能访问。但目前这个网站被所有主流钱包都认定为钓鱼网站。

总的来说,目前体验一般,还有很多可以提升改进的地方。不过这个方向很有创新性,值得尝试。

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 分享
评论
0/400
BearMarketSagevip
· 23小时前
就知道吹区块链
回复0
GateUser-a606bf0cvip
· 07-12 09:26
唉 跟玩似的还是不靠谱
回复0
LiquidityWitchervip
· 07-12 09:22
越来越离谱了吧
回复0
Crypto笑话王vip
· 07-12 09:19
传统域名原地去世,韭菜又要学新玩意了
回复0
metaverse_hermitvip
· 07-12 09:05
中心化域名真不安全
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)