Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【提案】穿梭器 Hyper #234

Open
Gaubee opened this issue Jan 21, 2025 · 0 comments
Open

【提案】穿梭器 Hyper #234

Gaubee opened this issue Jan 21, 2025 · 0 comments

Comments

@Gaubee
Copy link
Contributor

Gaubee commented Jan 21, 2025

介绍

在现有的桌面上新增一个原生应用:Hyper。
和 Browser 类似,它也是一个解释 Http 的浏览器,
但是不同的是,它不使用传统 https 协议来解释域名甚至内容。

比如浏览器中的链接是 https://example.com ,在穿梭器中的链接则是 http3://example.com

目的是以一种更加去中心的方式来解析 example.com,
比如“穿梭器”中,允许同时自定义多个服务商,
比如我有 https://http3.a.comhttps://http3.b.com 两个服务商,
在访问的 http3://example.com 的时候,会同时询问 https://http3.a.comhttps://http3.b.comhttps://http3.example.com 是否能够提供数据源,
如果没有,就会自动转化成访问传统 https://example.com。
如果要强制供应商,可以使用 http3+a.com://example.com ,这样就能强制使用 http3.a.com 作为服务供应商了。

关于供应商的技术实现方案

方案一:使用 http 协议来提供查询

查询行为,就是通过请求 https://http3.example.com/query?host=example.com:443

这里要不要携带端口,有待商榷

查询请求返回的内容,大概是这样的格式:

type: "http"
uri: "https://ipfs.io/ipns/k51qzi5uqu5dlj8n09qhjk7czfmqqlsbkuzyn5xp6a2qoti8u6pypk1ibise1y" # 这是传统 https 链接,任何 example.com:443 都会转发到这个入口来

也可以是:

type: "ipfs", # https://ipfs.tech/
uri:"QmdpDCxkKZT68pjr9rQvqPRUiGDkCVUYDC9P4NuT1FkF11" # 这是IPFS的CID,默认使用网关:https://dweb.link/ipfs/$CID 就可以进行访问,用户可以在 穿梭器的设置里,配置ipfs的网关

或者是:

type: "bare", # https://dat-ecosystem.org/
uri:"QmdpDCxkKZT68pjr9rQvqPRUiGDkCVUYDC9P4NuT1FkF11" # 这是IPFS的CID,默认使用网关:https://dweb.link/ipfs/$CID 就可以进行访问,用户可以在 穿梭器的设置里,配置ipfs的网关

方案二:使用 DNS TXT 记录来提供查询

  1. 首先确定供应商是否支持 dweb-http3 协议,如果支持,加入到供应商列表中
dig +noall +answer TXT http3.dweb.xin
# http3.dweb.xin.		600	IN	TXT	"dweb-http3"
  1. 这个用来向供应商查询即将要访问的域名是否有 http3 的记录
dig +noall +answer TXT example.com.http3.dweb.xin
# example.com.http3.dweb.xin. 600	IN	TXT	"dweb-http3://ipfs/QmdpDCxkKZT68pjr9rQvqPRUiGDkCVUYDC9P4NuT1FkF11"

总结两种方案

  1. http3 over https
    1. 优点是灵活性好,可以高度动态,可以继承混合聚合其它服务。
    2. 缺点是成本高,需要动态服务器提供查询服务;性能低,容易被攻击。
  2. http3 over dns
    1. 优点是性能好,且由传统域名服务商提供查询服务,没有额外成本,符合开发人员的思维和习惯
    2. 缺点是动态特性低,想要做动态开发,需要对接服务商的API

安全设计

不同于传统的 https 服务,是一个大型的统一的分布式网络。这些根域名服务器之间彼此同步,有些根域名服务器属于国家,有些根域名服务器属于组织,但是他们都在努力避免 DNS 污染的问题。

dweb-http3 是将这个事情完全开放出来,利用现代网络的能力,本地设备同时发起数十个 dns 查询,成本很低。
用户可以在本地安装配置多个 服务商,来同时做查询。
这里其实就变成了一个“域名搜索引擎”。访问之后,首先展示的是一个 “搜索结果”的界面。
界面上需要明确标明服务商,界面上会列出有响应的服务商,进一步地,可以根据响应,预取 title、icon、description 等信息。
然后用户可以点击进入到具体的服务商的页面。

进入页面后,并不是像传统浏览器一样展示 example.com 这样的域名,而是展示 http3+a.com://example.com 这样的域名。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant