Alert Source Discuss
🚧 Stagnant Standards Track: ERC

ERC-1710: Web3 浏览器 URL 格式

Authors Bruno Barbieri (@brunobar79)
Created 2019-01-13
Discussion Link https://ethereum-magicians.org/t/standarize-url-format-for-web3-browsers/2422
Requires EIP-155

简要概括

一种用于表示去中心化应用程序的 web3 浏览器 URL 的标准方法。

摘要

由于大多数普通 Web 浏览器(尤其是在移动设备上)由于缺乏 web3 支持而无法正确运行去中心化应用程序,因此有必要将它们与普通 URL 区分开来,以便它们可以在可用的 web3 浏览器中打开。

动机

许多试图改善其移动体验的 dApp 当前(深度)链接到特定的移动 web3 浏览器,这些浏览器目前使用它们自己的 URL 方案。

为了使体验更加无缝,dApp 仍然应该能够通过延迟深度链接推荐特定的移动 web3 浏览器,但是通过拥有标准的 URL 格式,如果用户已经安装了实现此标准的 web3 浏览器,它将自动链接到它。

当前的 ethereum: URL 方案在 EIP-831 中进行了描述,它也存在兼容性问题,任何以太坊相关应用程序(钱包、身份管理等)已经注册了它,并且由于 iOS 对于多个应用程序处理单个 URL 方案的不可预测行为,用户最终可能会在不包含 web3 浏览器的应用程序中打开一个 ethereum: 链接,并且将无法正确处理深度链接。

规范

语法

Web3 浏览器 URL 在它们的方案(协议)部分包含 “dapp”,并构造如下:

request                 = "dapp" ":" [chain_id "@"] dapp_url
chain_id                = 1*DIGIT
dapp_url                = URI

语义

chain_id 是可选的,它是浏览器自动选择相应的链 ID 的参数,如 EIP-155 中所指定的那样,在打开 dApp 之前。

dapp_url 是一个有效的 RFC3986 URI

这是一个完整的示例 URL:

dapp:1@peepeth.com/brunobar79?utm_source=github

它将打开 web3 浏览器,选择 mainnet (chain_id = 1),然后导航到:

https://peepeth.com/brunobar79?utm_source=github

理由

所提出的格式试图解决 web3 浏览器的供应商特定协议的问题,避免与现有的 ‘ethereum:’ URL 方案冲突,同时还增加了一个额外的功能:chain_id,这将有助于 dApp 在预先选择正确的网络的情况下被访问,可以选择性地从最终用户那里提取出这种复杂性。

版权

版权及相关权利通过 CC0 放弃。

Citation

Please cite this document as:

Bruno Barbieri (@brunobar79), "ERC-1710: Web3 浏览器 URL 格式 [DRAFT]," Ethereum Improvement Proposals, no. 1710, January 2019. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-1710.