data.did.id
以一种前所未有的优雅方式管理您的所有 .bit 数据。
介绍
data.did.id 是一个优雅的 .bit 账户数据管理工具。
在这里,你可以查看任意一个 .bit 账户的数据,包括且不限于以下数据:
- 个人资料(profile)
- 数字货币地址(address)
- 去中心化网站(dweb)
- 自定义数据(custom)
- 权限(owner/manager)
- ...
如果您是某个账户的管理员或者拥有者,您还可以管理这些数据或者更改该账户的权限。
如果您是开发者,您甚至可以让用户通过 URL 改变 .bit 数据
一句话,涉及对于账户数据的管理,来这里就对了。
通过 URL 改变 .bit 数据
每天,都有很多开发者在探索如何开发和 .bit 结合的有趣应用。
在这个快速变化的区块链时代,最重要的是快速验证业务的可行性,而不是把时间花在对基础设施的研究上。
通过 data.did.id ,开发者可以以一种非常简单、优雅的方式去改变用户的数据,而不用考虑复杂的链上操作。
快速开始
data.did.id 会读取 URL 上的 records
参数。
开发者只需要根据规范来填入特定的参数,并引导用户访问相应的链接,待用户确定后即可完成对用户数据的更改。
其大致流程如下:
const records = [{
action: 'add',
key: 'profile.website',
value: 'https://did.id',
}, {
action: 'delete',
key: 'profile.twitter',
}, {
action: 'replace',
key: 'profile.avatar',
value: 'https://data.did.id/favicon.ico',
}]
const queryString = window.encodeURIComponent(JSON.stringify(records))
window.open(`https://data.did.id/bitdeveloper.bit?records=${queryString}`)
用户打开相应的链接之后,将会看到类似如下界面:
当用户点击确认后,将会完成数据的更新操作。
这个过程中,开发者完全不用考虑相对复杂的链上操作,同时完全不会损坏用户数据的安全性。
records
参数:records
参数是一个数组,其内容的每一项都是一个针对当前 .bit 账户的操作(action),包括如下操作:
- 新增(add)
- 删除(delete)
- 替换(replace)
注意,
records
参数的值,必须是一个有效的 JSON 字符串,并且经过encodeURIComponent
转义。
根据操作的不同,则会有不同的参数要求,要求见下:
增加数据: add
这将增加对应的 .bit 数据。
如果已有相同的 key,则之前的 key 不会被覆盖,新旧数据都会同时存在。
const records = [{
action: 'add',
key: 'profile.twitter',
value: 'dotbit',
label: 'dotbitHQ',
ttl: 300,
}, {
action: 'add',
key: 'profile.website',
value: 'https://did.id',
}]
删除数据: delete
这将删除对应的 .bit 数据。
如果有多个相同的 key,则将删除该相同 key 下所有的数据。
const records = [{
action: 'delete',
key: 'profile.twitter',
}, {
action: 'delete',
key: 'profile.website',
}]
修改数据: replace
这将替换对应的 .bit 数据。
由于 .bit 允许存在多个相同的 key,所以无法通过 URL 参数指定要修改哪个 key 的参数。
所以如果要修改 key,则通过完全替换的方式来完成"修改"操作。
这里是用新的 key 完全替换之前所有的 key,如果之前有多个相同的 key,则他们都会被新的数据给覆盖。
const records = [{
action: 'replace',
key: 'profile.avatar',
value: 'https://data.did.id/favicon.ico',
}]
因此,如果要修改某个 key 的数据,则需要通过使用 replace 操作来完成。
注意
鉴于多个操作(action)的语义二义性,我们不建议针对一个 key 使用多个不同的 action
,不然可能会造成和预期不一样的结果。
DWeb
.bit 支持多种去中心化存储协议,目前支持 IPFS、Arweave、Resilio、Skynet。可以让用户通过 .bit 账户对应的 bit.cc 子域名快速访问到去中心化存储上的内容。
DNSLink
.bit 账户支持设置 IPNS,并且已经支持 DNSLink。你可以参照 DNSLink 教程,在域名的 DNS 中添加 _dnslink
解析记录,然后将 .bit 账户的 IPNS 设置为你的域名,当你访问对应的 bit.cc 子域名,将会呈现出对应的 IPFS 内容。
以 .bit 账户 bestcase.bit
为例,先参照 DNSLink 教程,在域名 libp2p.io
中添加如下 DNS 解析记录
> my-dns-tool set \
--type=TXT \
--ttl=60 \
--domain=libp2p.io \
--name=_dnslink \
--value="dnslink=/ipfs/Qmc2o4ZNtbinEmRF9UGouBYTuiHbtCSShMFRbBY5ZiZDmU"
添加完 DNS 解析记录后,使用 data.did.id 设置 bestcase.bit
的 IPNS 值为 libp2p.io
,如下图:
设置好后就可以访问 bestcase.bit
对应的 bit.cc 子域名 bestcase.bit.cc 查看设置是否生效。
如需 DNSLink 的教程、使用示例和常见问题解答,请查看 dnslink.io。