.bit 数据容器

.bit 数据容器(Data Container)是 .bit 的核心能力,.bit 的强大扩展能力也来源于解析记录的灵活性。 每个 .bit 账户都带有一个数据容器,用户可以在其中存入不同的数据,这些数据被称为解析记录。

其基本结构如下:

.bit 解析记录

开发者可以通过 API 或 SDK 读取不同的解析记录,以完成不同的工作,如钱包转账,社区身份,Dweb等等。开发者获取的数据结构一般如下:

[
  {
    "key": "address.60",
    "value": "0x1D643FAc9a463c9d544506006a6348c234dA485f",
    "label": "personal",
    "ttl": "300"
  },
  {
    "key": "address.60",
    "value": "0xf0e630b51f1d9ef735b956bc10fedb813cb78002",
    "label": "business",
    "ttl": ""
  },
  {
    "key": "profile.twitter",
    "value": "dotbithq",
    "label": "",
    "ttl": ""
  }
]

解析记录(record)

.bit 账户上所关联的每一条数据,如果一个 BTC 地址,一个 Twitter 账户,称之为一条解析记录。

每条解析记录都是一对键(key)和值(value)的组合。除此之外还有标签(label)和有效时间(ttl)。

解析记录命名空间(namespace)

因为解析记录本质上是字符串的键值对,理论上你可以设置任何类型的数据。

但是为了生态的统一和协作,我们规范了解析记录的命名空间,其本质是一个协议,遵循这个协议,应用程序之间可以实现良好的协作。 主要有以下三种:

  • address
    该类型的解析记录主要用来记录用户的区块链地址,包括 ETH,BTC,DogeCoin 等等。形如:address.0address.60
    其中,0, 60 代表了特定的区块链,遵循了 SLIP-0044 规范。其具体定义详见:SLIP-0044open in new window

  • profile
    该类型的记录主要用来记录用户的个人社交信息,包括 Twitter,Email,Telegram 等等。形如:profile.twitterprofile.email 等等。

  • dweb
    该类型的记录主要用来记录用户的去中心化存储信息,包括 IPFS,Arweave 等等。形如 dweb.ipfsdweb.arweave

以上三种类型的 key 都只能设置指定命名空间里面的解析记录。

查看具体的白名单:.bit 解析记录命名空间open in new window

  • custom_key

为了满足开发者的个性化需求,我们增加了 custom_key 类型。
该命名空间没有约束,开发者可以在这个空间下创建任意名字和数量的次级命名空间,并定义其含义。如custom_key.bitcc_configcustom_key.pgp.master_key等。

解析记录的键(key)

命名空间和自类型共同组成了解析记录的 key。

一个 .bit 账户中,可以存在多个相同的 key。如果要区分不同的解析记录,需要用标签(label)来区分。

解析记录的值(value)

.bit 合约并不会校验解析记录的值的合法性,.bit 只是提供了一种约定。例如,一般情况下用户都会将 address.btc 的值设置为一个 BTC 地址。但应用程序在使用这个值时,应该检查这个值是否真的是合法的 BTC 地址。

解析记录标签(label)

你甚至可以为不同的 BTC/ETH 的地址设置不同的标签。事实上,.bit 中相同类型的记录都可以添加多条,通过不同的自定义标签来区分。

FAQ

一个 .bit 可以添加多个 BTC/ETH 地址作为解析记录吗?

可以。你可以添加多个相同的 key,如多个 ETH 地址,多个 Twitter 账户。

以 ETH 地址为例,从现实中考虑,我们每个人都有多个地址:个人地址,公司地址,家庭地址等等。如果对一个 key 只有一个记录,那显然无法完全反应现实生活。

为了反应用户的实际情况,我们允许一个 .bit 账户下存在多个相同的 key。

相同 key 的解析记录如何区分?

使用标签(label)来区分。详细见上:解析记录标签

如何增加解析类型?

目前 .bit 只提供了addressprofiledwebcustom_key四个一级命名空间,但这不是最终结果。.bit 团队会根据情况,逐渐增加一级命名空间。同时,我们也需要社区的开发者给我们提供有效的建议。如果您认为应该增加某些命名空间,使得应用程序之间可以更好的协作。可以在 Github 中给我们提 Issuesopen in new window

一个 .bit 账户可以有多少条解析记录?

这取决于单笔 CKB 交易可容纳的 Witness 数据大小。

一般而言,一个 .bit 账户可以存储数百条解析记录——这对普通用户来说完全足够。

解析记录可以修改吗?

可以随时修改。但为了避免滥用,不同的操作会有不同的频率限制,具体以操作时的提示为准。

什么是自定义键?

.bit 内置了一些解析记录类型,如区块链地址,个人信息等。同时也支持用户和开发者自定义解析记录类型,以支持丰富的应用场景。 详见:解析记录命名空间