集成 ENS 的最佳实践

  • EthFans
  • 更新于 2021-04-30 23:19
  • 阅读 2746

本文想展示一下 dApp 如何能好好利用 ENS

现在已经有超过 200 个服务集成了 ENS,所以本文想展示一下 dApp 如何能好好利用 ENS。

我们的文档中,我们列举了三种主要的集成 ENS 的办法。这里我们也使用同样的表述。

1. 解析 ENS 域名

在应用中支持 ENS 的第一步就是让你的应用能够理解 ENS 域名,在所有需要用到地址的地方都支持使用 ENS 域名。这对钱包服务来说尤其有用。

image-20210506200232686

- 请看 meyetherwallet.com 上的解析结果 -

Etherscan 是大家最常使用的以太坊相关网站之一,你可以在上面检阅自己所有的交易和账户余额。除了搜索 ENS 域名以外,一个比较少人知道的功能是,他们的 URL 也支持 ENS 域名,所以你可以直接在地址栏输入 “/address/matoken.eth”。

image-20210506200237853

有人问我的以太坊地址的时候,我总会给他们我的 ENS 域名,但不是所有人都知道什么是 ENS,怎么用这个名字。如果你有很多个以太坊地址,那给出带有你的域名的完整 Etherescan URL,会是一个弥合知识差的好拌饭。对你来说极为简单,输入或者复制带有你域名的 URL 就行了,你也不需要时刻谨记哪个地址是用来干什么的,而且要跟你交互的人也不需要知道什么是 ENS。

2. 反向解析

ENS 集成的第二个层级是反向解析,在你的应用显示地址的地方显示 ENS 域名。

可以在三种层面上实现这个特性。

2.1 用户登录状态下显示其 ENS 名

Uniswap 会把你的 ENS 名当成是你的用户名那样显示出来。这是又一个 ENS 帮助用户在使用多个以太坊地址时分辨清楚的案例,因为你到底在用哪个账户会很清楚地显示出来。

image-20210506200246737

2.2 展示资产 所有者/创建者 的 ENS 名

这个特性跟 NFT 市场有密切关系。每个 NFT 市场都有自己的用户名系统,但你在 Foundation 上的用户名就无法在别的 NFT 平台(比如 OpenSea 和 Rarible )上显示出来。

但在 KnownOrigin 平台上显示的 ENS 名也能在 OpenSea 上显示出来。换句话说,ENS 名是可移植的用户名。

image-20210506200258664

image-20210506200311906

不过,不是所有的 NFT 平台都做了这样的支持,但这对 NFT 艺术家来说是非常有用的,因为他们需要打造链上的品牌和身份。

如果你在一个尚未集成 ENS 的 NFT 平台上玩耍,请建议他们集成 ENS,因为这是你的自主身份!无 ENS,无链上姓名!

image-20210506200319115

2.3 在一系列的以太坊地址中展示 ENS 名

以太坊地址的列表可能是交易的历史,或者资产所有者的列表、DAO 成员的列表、投票人名单,等等。

Snapshot 在展示投票结果的时候优先使用用户在他们平台上选用的用户名,但如果还未有这样专用的用户名,就返回 ENS 名。

image-20210506200327119

3. 让用户自己命名

综合性 ENS 集成的最后一步是帮助用户把 ENS 域名和你的应用所创建或管理的资源关联起来。可以采取两种形式:

3.1 域名注册

让你的产品获得一个 ENS 名,并让用户可以容易地注册子域名,你的用户就能为在你的 dApp 中创建的资源命名。

许多钱包服务,比如 ArgentAuthereum 都曾帮助用户创建在产品域名下的子域名,但近期的 gas/eth 价格高涨让整件事情不可持续,因为他们要帮用户付 gas 费(我们正在开发 L2 规范,能够缓解这里面的困难)。Status 就不是让用户免费获得域名,而是以 SNT 代币作价卖给用户。

image-20210506200333647

一个更新颖的方法来自 Decentraland。他们不仅会在 dcl.eth 的主域名下发放子域名,还把这些域名都转成了 NFT,就像 .eth 顶级域名一样,所用用户可以在二级市场比如 OpenSea 上买卖这些子域名。

image-20210506200339389

3.2 域名更新

给用户提供简单的办法,能够让他们把自己已有的域名指向在你的应用中创建的资源,这样他们就能重新分配自己的域名。

SnapShot 也这样利用了 ENS,例如 https://snapshot.org/#/gnosis.eth

image-20210506200347878

他们在任何你指定 IPFS 端点的地方都用上了 ENS 纯文本记录。

image-20210506200357477

其它:跨链支持

虽然我们已经支持解析 100 中区块链的地址类型,但还是要钱包服务集成我们功能,这样用户才能用得上。

TrustWallet 是最早支持我们的多链特定的钱包之一,所以你可以发送 BNB 到 vikmeup.eth

image-20210506200406182

支持 ENS 的另一个用途是当你的应用部署在 侧链/L2 的时候。

Nifty.ink 是一种 NFT 涂鸦服务,部署在 xDAI 侧链上,而他们已经集成了 ENS。

image-20210506200414353

我们现在正在开发 L2 的办法,而这种架构的好处就是让任何人都能在 L1 上查询 ENS 名,但都能在 L2 上更新 ENS 记录,以节省 gas 费。

虽然我们还没找到从侧链更新 ENS 记录的简便方法,但能在 L1 上直接读取 ENS 信息还是很好的集成方法。

总结

我们展示了多个集成了 ENS、为终端用户提供了良好体验的 dApp 案例。虽然支持所有三种层级比较难,但所有钱包都应该支持 “1. 解析 ENS 域名”,所有 DeFi 项目都应该支持 “2.1 在用户登录状态下显示 ENS 名”,所有 NFT 平台都应该支持 “2.2 展示资产 所有者/创建者的 ENS 名”。

想了解更多关于集成方法的细节,请看我们的前端设计指南

(完)


原文链接: https://medium.com/the-ethereum-name-service/ens-integration-best-practices-313d6fbd358 作者: makoto_inoue 翻译: 阿剑

本文首发于https://ethfans.org/posts/ens-integration-best-practices

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
EthFans
EthFans
以太坊爱好者 https://ethfans.org