Alert Source Discuss
🚧 Stagnant Standards Track: ERC

ERC-634: 在 ENS 中存储文本记录

ENS 解析器的配置文件,用于存储任意文本的键/值对。

Authors Richard Moore (@ricmoo)
Created 2017-05-17
Discussion Link https://github.com/ethereum/EIPs/issues/2439
Requires EIP-137, EIP-165

摘要

本 EIP 定义了一个 ENS 解析器配置文件,允许查找任意键-值文本数据。这允许 ENS 名称持有者将电子邮件地址、URL 和其他信息数据与 ENS 名称相关联。

动机

通常需要将人类可读的元数据与机器驱动的数据相关联;用于调试、维护、报告和一般信息。

在本 EIP 中,我们为 ENS 定义了一个简单的解析器配置文件,允许 ENS 名称关联任意键-值文本。

规范

解析器配置文件

定义了一个新的解析器接口,包含以下方法:

interface IERC634 {
  /// @notice 返回与 ENS 名称的键关联的文本数据
  /// @param node ENS 名称的 nodehash
  /// @param key 用于查找文本数据的键
  /// @return 文本数据
  function text(bytes32 node, string key) view returns (string text);
}

此接口的 EIP-165 接口 ID 为 0x59d1d43c

text 数据可以是任何任意的 UTF-8 字符串。如果键不存在,则必须返回空字符串。

全局键

全局键必须由小写字母、数字和连字符 (-) 组成。

  • avatar - 用作头像或徽标的图像的 URL
  • description - 名称的描述
  • display - ENS 名称的规范显示名称;当其大小写折叠时,这必须与 ENS 名称匹配,如果它不匹配,客户端应忽略此值(例如,"ricmoo.eth" 可以将其设置为 "RicMoo.eth"
  • email - 电子邮件地址
  • keywords - 以逗号分隔的关键字列表,按最重要排序;解释此字段的客户端可以选择一个阈值,超过该阈值则忽略
  • mail - 实际的邮件地址
  • notice - 关于此名称的通知
  • location - 通用位置(例如 "Toronto, Canada"
  • phone - 作为 E.164 字符串的电话号码
  • url - 网站 URL

服务键

服务键必须由服务拥有的命名空间的反向点表示法组成,例如 DNS 名称(例如 .com.io 等)或 ENS 名称(即 .eth)。服务键必须至少包含一个点。

这允许新服务开始使用自己的密钥,而无需担心与现有服务冲突,并且还意味着新服务不需要更新此文档。

以下服务很常见,这就是为什么在此处提供建议的原因,但理想情况下,服务会声明自己的密钥。

  • com.github - GitHub 用户名
  • com.peepeth - Peepeth 用户名
  • com.linkedin - LinkedIn 用户名
  • com.twitter - Twitter 用户名
  • io.keybase - Keybase 用户名
  • org.telegram - Telegram 用户名

此技术还允许服务所有者为其密钥指定层次结构,例如:

  • com.example.users
  • com.example.groups
  • com.example.groups.public
  • com.example.groups.private

遗留键

以下键在本 EIP 的早期版本中指定,该版本仍在草案中。

它们的使用可能不是很广泛,但尝试最大兼容性的应用程序可能希望查询这些键作为回退,如果上述替换键失败。

  • vnd.github - GitHub 用户名(重命名为 com.github
  • vnd.peepeth - peepeth 用户名(重命名为 com.peepeth
  • vnd.twitter - twitter 用户名(重命名为 com.twitter

理由

应用程序特定与通用记录类型

我们没有定义大量特定记录类型(每个记录类型通常都是人类可读的数据),例如 urlemail,而是遵循 DNS 的 TXT 记录的改编模型,该模型允许通用键和值,从而允许将来扩展而无需调整解析器,同时允许应用程序使用自定义键来实现自己的目的。

向后兼容性

不适用。

安全注意事项

无。

版权

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

Citation

Please cite this document as:

Richard Moore (@ricmoo), "ERC-634: 在 ENS 中存储文本记录 [DRAFT]," Ethereum Improvement Proposals, no. 634, May 2017. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-634.